From 1320bd427a2b33efd5a16580c54aee6a0eca0cf0 Mon Sep 17 00:00:00 2001 From: Jorrit Schaap <schaap@astron.nl> Date: Fri, 3 Jul 2020 16:02:45 +0200 Subject: [PATCH] TMSS-189: use RAService in RATestEnvironment --- .../test/ra_test_environment.py | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py b/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py index 3584b48f0f4..03a0a4db19a 100644 --- a/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py +++ b/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py @@ -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: -- GitLab