NAME¶
CipUX::RPC::Server - RPC server class for CipUX
VERSION¶
version 3.4.0.9
SYNOPSIS¶
use CipUX::RPC::Server;
DESCRIPTION¶
Provides the functions for CipUX RPC server.
ABSTRACT¶
The CipUX rpc server is a generic abstract class, which can be used by other
classes or scripts.
SUBROUTINES/METHODS¶
The following functions are implemented or supported by CipUX::RPC::Server.
BUILD¶
Constructor, see new.
DEMOLISH¶
Destructor.
new¶
Constructor
Syntax:
my $cipux_rpc = CipUX::RPC::Server->new();
check_authentication¶
Check weather the login has access or not.
is_ticket_bad¶
Return 1 if a ticket is OK otherwise 0;
signal_handler¶
Install signal_handler alias time to die.
Syntax:
$server->signal_handler({});
answer_requests¶
Answer Requests.
Syntax:
$server->answer_requests({
port=>8000,
address=>'localhost',
reuse=>0,
proto=>'tcp',
meth_hr=>TODO
task_hr=>TODO
});
check_access_to_task¶
Check the access for login to a task.
check_access_to_rpc_intern¶
Check the access for login to the rpc_intern section.
check_access_to_cat_module¶
Check the access for login to a CAT module.
error¶
Construct an error message.
evaluate_access¶
Evaluate the access to login or a given user depending on the sub command
(subcmd) of rpc_info or rpc_intern for one or more realms. Known realms are:
task, cat_module, rpc_intern.
update_task¶
Check and update tasks entries.
update_cat_module¶
Check and update CAT modules entries.
log2syslog¶
Log a given message to syslog.
get_config¶
Return the value for a given configuration variable.
rpc_list_functions¶
List the rpc functions.
rpc_start¶
Start the RPC server.
Syntax:
$server->rpc_start({});
ping¶
The function 'ping' is for testing the connection. It requires not to log in and
no arguments. It returns 'OK'.
version¶
Return the CipUX version.
sum¶
The function 'sum' is for testing the connection. It requires not to log in and
2 arguments. It returns the sum of the arguments as a hash reference with a
single line.
login¶
Perform a login.
logout¶
Perform a logout.
session¶
Check the ticket and if it is valid update and return a new ticket.
ttl¶
Return the Time To Live. Default 900 seconds.
rpc_task¶
Execute a CipUX::Task.
rpc_info¶
Execute a rpc_info sub-command.
task_access
Needs parameter: TASK
task_access_survey
Needs parameter: TASK [TASK] ...
cat_module_access
Needs parameter: MODULE
cat_module_access_survey
Needs parameter: MODULE [MODULE] ...
rpc_intern_access
Needs parameter: COMMAND
rpc_intern_access_survey
Needs parameter: COMMAND [COMMAND] ...
rpc_intern¶
Execute a rpc_intern sub-command.
ttl
Prints current TTL in seconds
cat_module_cache_size
Prints current cat module cache size
rpc_intern_cache_size
Prints current rpc intern cache size
task_cache_size
Prints current task_cache_size of cache
user_task_access
Needs parameter: USER TASK
user_task_access_survey
Needs parameter: $USER TASK [TASK] ...
user_cat_module_access
Needs parameter: USER MODULE
user_cat_module_access_survey
Needs parameter: USER MODULE [MODULE] ...
user_rpc_intern_access
Needs parameter: USER COMMAND
user_rpc_intern_access_survey
Needs parameter: USER COMMAND [COMMAND] ...
flush_cache
Flush RPC server RBAC cache
Public XML-RPC functions.¶
All the following CipUX::Task methods are public. Public means that they could
be executed remotely. Public means not that everybody can do this remotely.
There are two kinds of public functions:
(1) Functions without authorization
- login
- ping
- sum
(2) Every other function is available only after using 'login' function, with a
uid as first parameter and a valid ticket as second parameter.
Examples (pseudo code):
- (reference to user list) = cipux_task_list_users( uid, ticket );
- (true|false) = logout( uid, ticket );
- (new ticket|false) = session( uid, ticket );
If the uid do not match, or the uid has not the authorization to use the
function, or the group of the uid has not the authorization to use the
function, or the ticket is expired, or the ticket is not valid the request
will not be fulfilled.
In other words: if the uid match and has the right and the role also has the
right and the ticket is valid and is not expired, the request will be
executed.
To see real examples have a look at CipUX::RPC::Client client.
DIAGNOSTICS¶
TODO
CONFIGURATION AND ENVIRONMENT¶
Need no environment variables. But do need a configuration file. For example
cipux-rpc.ini
DEPENDENCIES¶
Authen::Simple::PAM
Authen::Simple::Password
Carp
CipUX::Task
CipUX::RBAC::Simple
Class::Std
Data::Dumper
English
Frontier::Daemon
Frontier::RPC2
List::MoreUtils
Log::Log4perl
Log::Dispatch
POSIX
Readonly
Ticket::Simple
INCOMPATIBILITIES¶
Not known.
BUGS AND LIMITATIONS¶
Not known.
SEE ALSO¶
See the CipUX webpage and the manual at <
http://www.cipux.org>
See the mailing list
http://sympa.cipworx.org/wws/info/cipux-devel
<
http://sympa.cipworx.org/wws/info/cipux-devel>
AUTHOR¶
Christian Kuelker <christian.kuelker@cipworx.org>
LICENSE AND COPYRIGHT¶
Copyright (C) 2007 - 2010 by Christian Kuelker
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA