common.services.xmlrpc package¶
Submodules¶
common.services.xmlrpc.ProtocolErrorHidePw module¶
just import module to replace xmlrpclib.ProtocolError with ProtocolErrorHidePw
-
exception
common.services.xmlrpc.ProtocolErrorHidePw.
ProtocolErrorHidePw
(url, errcode, errmsg, headers)¶ Bases:
xmlrpc.client.ProtocolError
xmlrpclib ProtocolError class for hiding the password in the url attrbute
common.services.xmlrpc.SecureXmlRpcRequestHandler module¶
(this file was moved from awlofar.services.archive in Sep 2012)
-
class
common.services.xmlrpc.SecureXmlRpcRequestHandler.
SecureXmlRpcRequestHandler
(request, client_ip_port, server, client_digest=None)¶ Bases:
xmlrpc.server.SimpleXMLRPCRequestHandler
Request handler class for a secure XML RPC server.
Storing _client_ip and _client_port
When Authorization is present in the headers, this should contain the username and password.
Defined do_GET for an HTML overview of some stats.
-
do_GET
()¶ handle HTTP GET
-
do_POST
()¶ handle HTTP POST
-
getActiveCount
()¶ return the number of active threads or processes
-
common.services.xmlrpc.SecureXmlRpcServerSsl module¶
SecureXmlRpcServerSsl.py - simple XML RPC server supporting SSL.
Based on this article :
and for SecureSocketServer :
This was previously implemented using M2Crypto, see SecureXmlRpcServer.py
WJ Vriend
-
class
common.services.xmlrpc.SecureXmlRpcServerSsl.
SecureForkedXmlRpcServer
(address, key, cert, handler=<class 'common.services.xmlrpc.SecureXmlRpcRequestHandler.SecureXmlRpcRequestHandler'>)¶ Bases:
socketserver.ForkingMixIn
,common.services.xmlrpc.SecureXmlRpcServerSsl.SecureXmlRpcServer
Forked version of the Secure Xml Rpc Server Each request is handled in separate process
-
collect_children
(finished_only=False)¶ This overwrties the method collect_children in SocketServer.py
If finished_only is set then only the finished (and defunct) processes are handled otherwise the original collect_children is called.
-
finish_request
(request, client_address)¶ Finish one request by instantiating RequestHandlerClass.
-
max_children
= 100¶
-
process_request
(request, client_address)¶ Raise call_counter and call base class process_request()
-
-
class
common.services.xmlrpc.SecureXmlRpcServerSsl.
SecureSocketServer
(addr, key_file, cert_file, requestHandler)¶ Bases:
socketserver.TCPServer
-
collect_children
(finished_only=False)¶ handle all child (forked) processes, see ForkingMixin implementation
-
-
class
common.services.xmlrpc.SecureXmlRpcServerSsl.
SecureThreadedXmlRpcServer
(address, key, cert, handler=<class 'common.services.xmlrpc.SecureXmlRpcRequestHandler.SecureXmlRpcRequestHandler'>)¶ Bases:
socketserver.ThreadingMixIn
,common.services.xmlrpc.SecureXmlRpcServerSsl.SecureXmlRpcServer
Threaded version of the Secure Xml Rpc Server Each request is handled in separate threat
-
process_request
(request, client_address)¶ Raise call_counter and call base class process_request()
-
-
class
common.services.xmlrpc.SecureXmlRpcServerSsl.
SecureXmlRpcServer
(address, key, cert, handler=<class 'common.services.xmlrpc.SecureXmlRpcRequestHandler.SecureXmlRpcRequestHandler'>)¶ Bases:
common.services.xmlrpc.SecureXmlRpcServerSsl.SecureSocketServer
,xmlrpc.server.SimpleXMLRPCServer
common.services.xmlrpc.Worker module¶
(this file was moved from awlofar.services.archive in Sep 2012)
-
class
common.services.xmlrpc.Worker.
Worker
(server)¶ Bases:
object
class for a worker thread, periodically doing some work
-
bytes_to_send
= 10000¶
-
destructor
()¶ cleanup
-
do_not_mail
= 'do_not_mail'¶
-
do_work
(last=False)¶ method which is called every X seconds, set last to make this the last work action
-
extra_work
()¶ (override) implement this method in derived class to do extra work Derive a class and point to it in the cfg file via worker_thread
-
log_filename
= 'worker_error.log'¶
-
mail_error_file
()¶ check if we need to mail the error file
-
send_mail
()¶ send the mail file using the local mail server or run mail over ssh
-
send_mail_to
= 'wjvriend@astro.rug.nl'¶
-
start_timer
()¶ start the timer
-
work_time
= 300¶
-
common.services.xmlrpc.XmlRpcMethods module¶
myMethods(MethodsBase) :
- def my_method(self):
- if <need_database>:
- self._connectDb(<project>, <privileges>)
return ‘my_method executed’
- def _getErrorReturn(self, msg) :
- # return error just as string, a bit more fancy would be a dictionary return ‘An error occured: ‘ + msg
(parts of this file were moved from awlofar.services.archive in Sep 2012)
-
class
common.services.xmlrpc.XmlRpcMethods.
MethodsBase
¶ Bases:
object
Base class for XmlRpc methods class For each XmlRpc method (that does not start with _) : * the log is initialized and attributes are logged * the method is tried, in case of Exception, the error log is written
-
arg_value_log_len
= 1000¶
-
-
exception
common.services.xmlrpc.XmlRpcMethods.
XmlRpcMethodsError
(message, error_nr=-1)¶ Bases:
Exception
The base class for all Errors in the xml-rpc server An error has a string message and optional number
common.services.xmlrpc.XmlRpcRequestHandler module¶
(this file was moved from awlofar.services.archive in Sep 2012)
-
class
common.services.xmlrpc.XmlRpcRequestHandler.
RequestHandler
(request, client_ip_port, server)¶ Bases:
xmlrpc.server.SimpleXMLRPCRequestHandler
Xml RequestHandler class stores the ip and port of the client,
common.services.xmlrpc.XmlRpcServerLock module¶
Different locking mechanisms for the xml-rpc server
For threads Lock from multiprocessing is used For process (forking) sqlite3 is used
-
class
common.services.xmlrpc.XmlRpcServerLock.
BaseLock
(verbose=True)¶ Bases:
object
base class for Locking
-
acquire
(*args, **kwargs)¶ acquire a lock
-
default_lock_name
= 'default_lock'¶
-
message
(msg)¶ Only Message when in verbose mode
-
release
(*args, **kwargs)¶ release a lock
-
-
class
common.services.xmlrpc.XmlRpcServerLock.
DummyLock
(verbose=True)¶ Bases:
common.services.xmlrpc.XmlRpcServerLock.BaseLock
-
acquire
(*args, **kwargs)¶
-
release
(*args, **kwargs)¶
-
-
class
common.services.xmlrpc.XmlRpcServerLock.
ProcessLock
(time_lock_wait_warning=10, lock_db_filename='', **kwargs)¶ Bases:
common.services.xmlrpc.XmlRpcServerLock.BaseLock
class for process locking, using sqlite3
-
acquire
(lock_name='')¶ acquire lock for the class and identifiers
-
database_path
= '/dev/shm'¶
-
date_format
= '%Y-%m-%d %H:%M:%S'¶
-
get_db_connection
()¶ make and return database connection
-
classmethod
get_db_filename
()¶ return the filename of the database, use name of the database
-
classmethod
get_lock_count
(cursor, lock_name)¶ get and return the count from Lock table
-
isolation_level
= 'EXCLUSIVE'¶
-
make_lock_database
()¶
-
release
(lock_name='')¶ release the lock
-
sql_create_lock_table
= 'CREATE TABLE IF NOT EXISTS Lock (\nlock_name TEXT NOT NULL UNIQUE,\ncreation_date TEXT )'¶
-
timeout
= 10¶
-
-
class
common.services.xmlrpc.XmlRpcServerLock.
ThreadLock
(lock_names=[], **kwargs)¶ Bases:
common.services.xmlrpc.XmlRpcServerLock.BaseLock
class for Thread Locking within a xml rpc service using Lock from multiprocessing
-
acquire
(lock_name='')¶ acquire a lock
-
release
(lock_name='')¶ release a lock
-
-
common.services.xmlrpc.XmlRpcServerLock.
main
()¶ show content of lock database
common.services.xmlrpc.XmlRpcStats module¶
Python class for storing xml-rpc calls in a sqlite database
-
class
common.services.xmlrpc.XmlRpcStats.
XmlRpcStats
(filepath, archive='', locker=None)¶ Bases:
object
-
archive_now_filename
= 'archive_now'¶
-
date_format
= '%Y-%m-%d %H:%M:%S'¶
-
get_db_connection
()¶ make and return database connection
-
insert_method_call
(method_name, method_start, method_end, method_duration, arguments)¶ insert entry for a method call
-
isolation_level
= 'EXCLUSIVE'¶
-
lock_name
= 'XmlRpcStats'¶
-
make_database
()¶ make the database strucuture
-
sql_create_stats_table
= 'CREATE TABLE IF NOT EXISTS Stats (\nid INTEGER PRIMARY KEY AUTOINCREMENT,\nxml_rpc_method TEXT,\ncall_start TEXT,\ncall_end TEXT,\ncall_duration REAL,\ncall_concurrency INTEGER,\nmethod_arguments TEXT )'¶
-
-
exception
common.services.xmlrpc.XmlRpcStats.
XmlRpcStatsError
¶ Bases:
Exception
common.services.xmlrpc.myXmlRpcServer module¶
import xmlrpclib client = xmlrpclib.ServerProxy(‘https://username:password@localhost:8080’) result = client.my_method(arg1, arg2, …)
(this file was moved from awlofar.services.archive in Sep 2012)
-
exception
common.services.xmlrpc.myXmlRpcServer.
StopRunning
¶ Bases:
Exception
-
common.services.xmlrpc.myXmlRpcServer.
main
()¶ the main method
-
class
common.services.xmlrpc.myXmlRpcServer.
myConfigParser
(defaults=None, dict_type=<class 'collections.OrderedDict'>, allow_no_value=False, *, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section='DEFAULT', interpolation=<object object>, converters=<object object>)¶ Bases:
configparser.RawConfigParser
-
get
(section, key)¶
-