async def test_update_contact_no_contact_data(data_store_mgr: DataStoreMgr): """Updating contact with no contact data results in default values for the workflow in the data store, like the API version set to zero.""" w_id = 'user|workflow_id' api_version = 0 await data_store_mgr.register_workflow(w_id=w_id) data_store_mgr.update_contact(w_id=w_id, contact_data=None) assert api_version == data_store_mgr.data[w_id]['workflow'].api_version
async def test_update_contact_with_contact_data(data_store_mgr: DataStoreMgr): """Updating contact with contact data sets the values int he data store for the workflow.""" w_id = 'user|workflow_id' api_version = 1 await data_store_mgr.register_workflow(w_id=w_id) contact_data = { 'name': 'workflow_id', 'owner': 'cylc', CFF.HOST: 'localhost', CFF.PORT: 40000, CFF.API: api_version } data_store_mgr.update_contact(w_id=w_id, contact_data=contact_data) assert api_version == data_store_mgr.data[w_id]['workflow'].api_version
async def test_update_contact_no_workflow( data_store_mgr: DataStoreMgr ): """Ensure _update_contact doesn't error if the workflow is missing. This can happen if the workflow is removed. """ assert not data_store_mgr._update_contact(w_id='elephant')
async def test_stop_workflow(data_store_mgr: DataStoreMgr): """Telling a data store to stop a workflow, is the same as updating contact with no contact data.""" w_id = 'user|workflow_id' api_version = 1 await data_store_mgr.register_workflow(w_id=w_id) contact_data = { 'name': 'workflow_id', 'owner': 'cylc', CFF.HOST: 'localhost', CFF.PORT: 40000, CFF.API: api_version } data_store_mgr.update_contact(w_id=w_id, contact_data=contact_data) assert api_version == data_store_mgr.data[w_id]['workflow'].api_version data_store_mgr.stop_workflow(w_id=w_id) assert data_store_mgr.data[w_id]['workflow'].api_version == 0
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.workflows_mgr = WorkflowsManager(self, log=self.log) self.data_store_mgr = DataStoreMgr(self.workflows_mgr, self.log) self.resolvers = Resolvers( self.data_store_mgr, log=self.log, workflows_mgr=self.workflows_mgr, )
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.executor = ProcessPoolExecutor(max_workers=self.max_workers) self.workflows_mgr = WorkflowsManager(self, log=self.log) self.data_store_mgr = DataStoreMgr(self.workflows_mgr, self.log) self.resolvers = Resolvers( self.data_store_mgr, log=self.log, executor=self.executor, workflows_mgr=self.workflows_mgr, )
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.workflows_mgr = WorkflowsManager(self, log=self.log) self.data_store_mgr = DataStoreMgr(self.workflows_mgr, self.log) self.resolvers = Resolvers( self.data_store_mgr, log=self.log, workflows_mgr=self.workflows_mgr, ) self.subscription_server = TornadoSubscriptionServer( schema, backend=CylcGraphQLBackend(), middleware=[IgnoreFieldMiddleware], ) ioloop.IOLoop.current().add_callback(self.workflows_mgr.update)
def data_store_mgr(workflows_manager: WorkflowsManager) -> DataStoreMgr: return DataStoreMgr(workflows_mgr=workflows_manager)