Select Git revision
ingestservice.py

Jorrit Schaap authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ingestservice.py 3.33 KiB
#!/usr/bin/env python
# Copyright (C) 2015
# ASTRON (Netherlands Institute for Radio Astronomy)
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# This file is part of the LOFAR software suite.
# The LOFAR software suite 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 3 of the
# License, or (at your option) any later version.
#
# The LOFAR software suite 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 the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
#
"""
"""
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__)
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
import os
os.environ['TZ'] = 'UTC'
from optparse import OptionParser
from lofar.messaging import setQpidLogLevel
from lofar.common.util import waitForInterrupt
# Check the invocation arguments
parser = OptionParser("%prog [options]",
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()
setQpidLogLevel(logging.INFO)
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
level=logging.DEBUG if options.verbose else logging.INFO)
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']