Skip to content
Snippets Groups Projects
Commit 1320bd42 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

TMSS-189: use RAService in RATestEnvironment

parent 5fc7bb2e
Branches
Tags
1 merge request!182Resolve TMSS-189 (and TMSS-192)
......@@ -31,24 +31,25 @@ from lofar.common.util import find_free_port, waitForInterrupt
from lofar.messaging.config import DEFAULT_BROKER, DEFAULT_BUSNAME
from lofar.common.testing.dbcredentials import TemporaryCredentials
from lofar.sas.resourceassignment.database.testing.radb_common_testing import RADBTestDatabaseInstance
from lofar.sas.resourceassignment.resourceassigner.resource_assigner import ResourceAssigner
from lofar.sas.resourceassignment.resourceassigner.raservice import RAService
from lofar.sas.resourceassignment.resourceassignmentservice.service import createService as createRADBService
class RATestEnvironment:
'''Create and run a several ResourrceAssigner services in an isolated test environment'''
def __init__(self,
exchange: str=os.environ.get("RA_EXCHANGE", DEFAULT_BUSNAME), broker: str=os.environ.get("RA_BROKER", DEFAULT_BROKER)):
self.radb = RADBTestDatabaseInstance()
self.resource_assigner = ResourceAssigner(radb_dbcreds=self.radb.dbcreds, exchange=exchange, broker=broker)
self.radb_service = createRADBService(dbcreds=self.radb.dbcreds, exchange=exchange, broker=broker)
self.ra_service = RAService(radbcreds=self.radb.dbcreds, exchange=exchange, broker=broker)
def start(self):
self.radb.create()
self.resource_assigner.open()
# self.resource_assigner.do_assignment(0,{ 'task_type': 'observation',
# 'task_subtype': 'bfmeasurement',
# 'status': 'approved'})
self.radb_service.start_listening()
self.ra_service.start_listening()
def stop(self):
self.resource_assigner.close()
self.ra_service.stop_listening()
self.radb_service.stop_listening()
self.radb.destroy()
def __enter__(self):
......@@ -78,7 +79,18 @@ def main():
logging.basicConfig(format = '%(asctime)s %(levelname)s %(message)s', level = logging.INFO)
from lofar.sas.resourceassignment.resourceassigner.rarpc import RARPC
from datetime import datetime, timedelta
with RATestEnvironment(exchange=options.exchange, broker=options.broker) as instance:
with RARPC.create(exchange=options.exchange, broker=options.broker) as rarpc:
rarpc.do_assignment(2000000, { 'otdb_id': 2000000,
'task_type': 'observation',
'task_subtype': 'bfmeasurement',
'status': 'approved',
'starttime': datetime.utcnow()+timedelta(hours=1),
'endtime': datetime.utcnow()+timedelta(hours=2)})
# print some nice info for the user to use the test servers...
# use print instead of log for clean lines.
for h in logging.root.handlers:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment