diff --git a/.gitattributes b/.gitattributes index 52b07a6c089b001b50a084ebf9dc357891f023ee..66db0e48b4d5336f06e27d1389f7b8eafb9ffd51 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2946,6 +2946,7 @@ LTA/LTAIngest/bin/CMakeLists.txt -text LTA/LTAIngest/bin/ingestservice -text LTA/LTAIngest/bin/ingestservice.ini -text LTA/LTAIngest/lib/CMakeLists.txt -text +LTA/LTAIngest/lib/config.py -text LTA/LTAIngest/lib/ingestservice.py -text LTA/LTAIngest/old/ClientForm-0.1.17/ClientForm-0.1.17/PKG-INFO -text LTA/LTAIngest/old/ClientForm-0.1.17/PKG-INFO -text diff --git a/LTA/LTAIngest/bin/ingestservice b/LTA/LTAIngest/bin/ingestservice index a168b0b46f1e896f97cf51c7d776dc4742bfa5a5..2a4ddf119221fadc347a444822f8e8e6375e7631 100755 --- a/LTA/LTAIngest/bin/ingestservice +++ b/LTA/LTAIngest/bin/ingestservice @@ -5,5 +5,5 @@ runs the ingest service ''' if __name__ == '__main__': - from lofar.lta.ltaingest.ingestservice import main + from lofar.lta.ingest.ingestservice import main main() diff --git a/LTA/LTAIngest/lib/CMakeLists.txt b/LTA/LTAIngest/lib/CMakeLists.txt index a8cb524a8b7d284973d2d5367f25aae1cbd977c3..f976f966c26304ad02cbeeb87d0171df38f436e5 100644 --- a/LTA/LTAIngest/lib/CMakeLists.txt +++ b/LTA/LTAIngest/lib/CMakeLists.txt @@ -1,4 +1,5 @@ python_install(ingestservice.py - DESTINATION lofar/lta/ltaingest) + config.py + DESTINATION lofar/lta/ingest) diff --git a/LTA/LTAIngest/lib/config.py b/LTA/LTAIngest/lib/config.py new file mode 100644 index 0000000000000000000000000000000000000000..a0dffda10354e3290c9e8b10ff7317c61df19fe2 --- /dev/null +++ b/LTA/LTAIngest/lib/config.py @@ -0,0 +1,4 @@ +from lofar.messaging import adaptNameToEnvironment + +DEFAULT_INGEST_BUSNAME = adaptNameToEnvironment('lofar.lta.ingest.command') +DEFAULT_INGEST_SERVICENAME = 'IngestService' diff --git a/LTA/LTAIngest/lib/ingestservice.py b/LTA/LTAIngest/lib/ingestservice.py index 94cf1505454aa1c0b1be7943c3845639cad8c93d..33a09e792d1127ea76d5d8fa74c1f7a156d29f51 100644 --- a/LTA/LTAIngest/lib/ingestservice.py +++ b/LTA/LTAIngest/lib/ingestservice.py @@ -26,10 +26,27 @@ import qpid.messaging import logging from datetime import datetime import time +from lofar.messaging import Service +from lofar.messaging.Service import MessageHandlerInterface +from lofar.lta.ingest.config import DEFAULT_INGEST_BUSNAME, DEFAULT_INGEST_SERVICENAME logger = logging.getLogger(__name__) -__all__ = [] +class IngestServiceMessageHandler(MessageHandlerInterface): + def __init__(self, **kwargs): + super(IngestServiceMessageHandler, self).__init__(**kwargs) + + self.service2MethodMap = {} + +def createService(busname=DEFAULT_INGEST_BUSNAME, servicename=DEFAULT_INGEST_SERVICENAME, broker=None, verbose=False): + return Service(servicename, + IngestServiceMessageHandler, + busname=busname, + broker=broker, + use_service_methods=True, + numthreads=1, + handler_args={}, + verbose=verbose) def main(): # make sure we run in UTC timezone @@ -42,10 +59,16 @@ def main(): # Check the invocation arguments parser = OptionParser("%prog [options]", - description='runs the resourceassigner service') + description='runs the ingest service') parser.add_option('-q', '--broker', dest='broker', type='string', default=None, help='Address of the qpid broker, default: localhost') + parser.add_option("--ingest_busname", dest="ingest_busname", type="string", + default=DEFAULT_INGEST_BUSNAME, + help="Name of the bus on which the ingest service listens. [default: %default]") + parser.add_option("--ingest_servicename", dest="ingest_servicename", type="string", + default=DEFAULT_INGEST_SERVICENAME, + help="Name of the ingest service. [default: %default]") parser.add_option('-V', '--verbose', dest='verbose', action='store_true', help='verbose logging') (options, args) = parser.parse_args() @@ -53,7 +76,10 @@ def main(): logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.DEBUG if options.verbose else logging.INFO) - waitForInterrupt() + with createService(servicename=options.ingest_servicename, busname=options.ingest_busname, broker=options.broker, verbose=options.verbose) as ingest_service: + waitForInterrupt() if __name__ == '__main__': main() + +__all__ = ['main']