def testRunningWithSpecificResource(self): shard = self.agent.get_shard_id() res = dict(epu=20, core=1) recp = yield self.agent.request(shard, res) db = self.driver._database_connection doc = yield db.get_document(IRecipient(recp).key) self.assertIsInstance(doc.resources, dict) for key, val in res.iteritems(): self.assertEqual(val, doc.resources[key].value) yield self.wait_for_idle(20) doc = yield db.reload_document(doc) host_id = doc.partners[0].recipient.key host_medium = yield self.driver.find_agent(host_id) host = host_medium.get_agent() _, allocated = yield host.list_resource() self.assertEqual(1, allocated['core']) # now use start_agent directly desc = Descriptor3(resources=dict(core=resource.AllocatedScalar(1))) desc = yield self.driver._database_connection.save_document(desc) self.info('starting') recp = yield host.start_agent(desc) desc = yield self.driver._database_connection.reload_document(desc) self.assertIsInstance(desc.resources, dict) self.assertEqual(['core'], desc.resources.keys()) _, allocated = yield host.list_resource() self.assertEqual(2, allocated['core'])
def testRunningWithSpecificResource(self): shard = self.agent.get_own_address().shard res = dict(epu=20, core=1) recp = yield self.agent.request(shard, res) doc = yield self.driver._database_connection.get_document( IRecipient(recp).key) self.assertIsInstance(doc.resources, resource.ScalarResource) self.assertEqual(res, doc.resources.values) host_id = doc.partners[0].recipient.key host_medium = yield self.driver.find_agent(host_id) host = host_medium.get_agent() _, allocated = yield host.list_resource() self.assertEqual(1, allocated['core']) # now use start_agent directly desc = Descriptor3(resources=resource.ScalarResource(core=1)) desc = yield self.driver._database_connection.save_document(desc) self.info('starting') recp = yield host.start_agent(desc) desc = yield self.driver._database_connection.reload_document(desc) self.assertIsInstance(desc.resources, resource.ScalarResource) self.assertEqual({'core': 1}, desc.resources.values) _, allocated = yield host.list_resource() self.assertEqual(2, allocated['core'])