diff --git a/.gitattributes b/.gitattributes index 985f3647b9e3c390e8d0a3457a182f99eb9f2f00..34409cbffb70c1c9f499bd84776b1fc6678d59a6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4726,6 +4726,7 @@ SAS/MoM/MoMQueryService/momqueryrpc.py -text SAS/MoM/MoMQueryService/momqueryservice -text SAS/MoM/MoMQueryService/momqueryservice.ini -text SAS/MoM/MoMQueryService/momqueryservice.py -text +SAS/MoM/MoMQueryService/momrpc.py -text SAS/MoM/MoMQueryService/test/CMakeLists.txt -text SAS/MoM/MoMQueryService/test/test_momqueryservice.py -text SAS/MoM/MoMQueryService/test/test_momqueryservice.run -text diff --git a/SAS/MoM/MoMQueryService/CMakeLists.txt b/SAS/MoM/MoMQueryService/CMakeLists.txt index bb355d1c6eb212e65a497927f7da6a23b6f35245..7e6a3118ab4e47cdcab12a8f61108c73222d09b3 100644 --- a/SAS/MoM/MoMQueryService/CMakeLists.txt +++ b/SAS/MoM/MoMQueryService/CMakeLists.txt @@ -9,6 +9,7 @@ set(_py_files config.py momqueryservice.py momqueryrpc.py + momrpc.py ) python_install(${_py_files} DESTINATION lofar/mom/momqueryservice) diff --git a/SAS/MoM/MoMQueryService/config.py b/SAS/MoM/MoMQueryService/config.py index a5b66e022d8f044d04607ee5637fa55e1c0adebc..0098650466791f06d0e8147893aa440339278659 100644 --- a/SAS/MoM/MoMQueryService/config.py +++ b/SAS/MoM/MoMQueryService/config.py @@ -5,3 +5,6 @@ from lofar.messaging import adaptNameToEnvironment DEFAULT_MOMQUERY_BUSNAME = adaptNameToEnvironment('lofar.ra.command') DEFAULT_MOMQUERY_SERVICENAME = 'momqueryservice' + +DEFAULT_MOM_BUSNAME = adaptNameToEnvironment('lofar.mom.bus') +DEFAULT_MOM_SERVICENAME = '' diff --git a/SAS/MoM/MoMQueryService/momrpc.py b/SAS/MoM/MoMQueryService/momrpc.py new file mode 100644 index 0000000000000000000000000000000000000000..94d01c9aeaa66d88663ec97edf24d2b66857807f --- /dev/null +++ b/SAS/MoM/MoMQueryService/momrpc.py @@ -0,0 +1,42 @@ +#!/usr/bin/python + +import sys +import logging +from optparse import OptionParser +from lofar.messaging.RPC import RPC, RPCException, RPCWrapper +from lofar.mom.momqueryservice.config import DEFAULT_MOM_BUSNAME, DEFAULT_MOM_SERVICENAME + +logger = logging.getLogger(__file__) + +class MoMRPC(RPCWrapper): + def copyTask(self, mom2id, newTaskName=None, newTaskDescription=None): + logger.info("calling copyTask rpc for mom2id %s" % (mom2id)) + new_task_mom2id = self.rpc('TaskCopy', mom2Id=mom2id) #, newTaskName=newTaskName, newTaskDescription=newTaskDescription) + logger.info("mom2id of copied task = %s" % (new_task_mom2id)) + return new_task_mom2id + +def main(): + # Check the invocation arguments + parser = OptionParser('%prog [options]', + description='do rpc calls to the momservice from the commandline') + parser.add_option('-q', '--broker', dest='broker', type='string', default=None, help='Address of the qpid broker, default: localhost') + parser.add_option('-b', '--busname', dest='busname', type='string', default=DEFAULT_MOM_BUSNAME, help='Name of the bus exchange on the qpid broker [default: %default]') + parser.add_option('-s', '--servicename', dest='servicename', type='string', default=DEFAULT_MOM_SERVICENAME, help='Name for this service [default: %default]') + parser.add_option('--mom2id', dest='mom2id_to_copy', type='int', help='[REQUIRED] mom2id of the task to copy.') + parser.add_option('-V', '--verbose', dest='verbose', action='store_true', help='verbose logging') + (options, args) = parser.parse_args() + + if options.mom2id_to_copy == None: + parser.print_help() + parser.error('Missing required option mom2id') + + verbose = bool(options.verbose) + + logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', + level=logging.DEBUG if verbose else logging.INFO) + + with MoMRPC(busname=options.busname, servicename=options.servicename, broker=options.broker, verbose=verbose) as rpc: + print rpc.copyTask(options.mom2id_to_copy) + +if __name__ == '__main__': + main()