diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py b/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py index 3584b48f0f47da973465821a6f54bb9bd5edb7c5..03a0a4db19a91eb245fb736d1ee017dd2fdc111c 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: