Example #1
0
    def setUp(self):
        # Start container
        self._start_container()
        self.container.start_rel_from_url('res/deploy/r2deploy.yml')

        # Now create client to service
        self.rr = self.container.resource_registry
        fp = FakeProcess()

        self.rms = ResourceManagementServiceProcessClient(process=fp)
    def setUp(self):
        # Start container
        self._start_container()
        self.container.start_rel_from_url('res/deploy/r2deploy.yml')

        # Now create client to service
        self.rr = self.container.resource_registry
        fp = FakeProcess()

        self.rms = ResourceManagementServiceProcessClient(process=fp)
class TestResourceManagementServiceInterface(IonIntegrationTestCase):

    def setUp(self):
        # Start container
        self._start_container()
        self.container.start_rel_from_url('res/deploy/r2deploy.yml')

        # Now create client to service
        self.rr = self.container.resource_registry
        fp = FakeProcess()

        self.rms = ResourceManagementServiceProcessClient(process=fp)

    def test_resource_interface(self):
        rid1,_ = self.rr.create(IonObject('Resource', name='res1'))

        cap_list = self.rms.get_capabilities(rid1)
        log.warn("Capabilities: %s", cap_list)
        self.assertTrue(type(cap_list) is list)

        get_res = self.rms.get_resource(rid1, params=['object_size'])
        log.warn("Get result: %s", get_res)

        self.rms.set_resource(rid1, params={'description': 'NEWDESC'})
        res_obj = self.rr.read(rid1)
        self.assertEquals(res_obj.description, 'NEWDESC')

        self.rr.delete(rid1)

        # Test CRUD
        with self.assertRaises(BadRequest):
            self.rms.create_resource(IonObject('StreamConfiguration', stream_name='res2'))

        rid2 = self.rms.create_resource(IonObject('Resource', name='res2'))
        res_obj = self.rr.read(rid2)
        self.assertEquals(res_obj.name, 'res2')

        with self.assertRaises(BadRequest):
            self.rms.update_resource(IonObject('StreamConfiguration', stream_name='res2'))
        res_obj.description = 'DESC2'
        self.rms.update_resource(res_obj)
        res_obj = self.rr.read(rid2)
        self.assertEquals(res_obj.description, 'DESC2')

        res_obj2 = self.rms.read_resource(rid2)
        self.assertEquals(res_obj.description, res_obj2.description)

        with self.assertRaises(BadRequest):
            self.rms.get_resource_state(rid2)
        with self.assertRaises(BadRequest):
            self.rms.ping_resource(rid2)
        with self.assertRaises(BadRequest):
            self.rms.get_agent(rid2)
        with self.assertRaises(BadRequest):
            self.rms.get_agent_state(rid2)

        self.rms.delete_resource(rid2)

        rid3,_ = self.rr.create(IonObject('InstrumentAgent', name='res3'))
        rid3_r = self.rr.read(rid3)
        self.assertEquals(rid3_r.lcstate, "DRAFT")
        self.assertEquals(rid3_r.availability, "PRIVATE")

        self.rms.execute_lifecycle_transition(rid3, "plan")
        rid3_r = self.rr.read(rid3)
        self.assertEquals(rid3_r.lcstate, "PLANNED")
        self.assertEquals(rid3_r.availability, "PRIVATE")
Example #4
0
class TestResourceManagementServiceInterface(IonIntegrationTestCase):
    def setUp(self):
        # Start container
        self._start_container()
        self.container.start_rel_from_url('res/deploy/r2deploy.yml')

        # Now create client to service
        self.rr = self.container.resource_registry
        fp = FakeProcess()

        self.rms = ResourceManagementServiceProcessClient(process=fp)

    def test_resource_interface(self):
        rid1, _ = self.rr.create(IonObject('Resource', name='res1'))

        cap_list = self.rms.get_capabilities(rid1)
        log.warn("Capabilities: %s", cap_list)
        self.assertTrue(type(cap_list) is list)

        get_res = self.rms.get_resource(rid1, params=['object_size'])
        log.warn("Get result: %s", get_res)

        self.rms.set_resource(rid1, params={'description': 'NEWDESC'})
        res_obj = self.rr.read(rid1)
        self.assertEquals(res_obj.description, 'NEWDESC')

        self.rr.delete(rid1)

        # Test CRUD
        with self.assertRaises(BadRequest):
            self.rms.create_resource(
                IonObject('StreamConfiguration', stream_name='res2'))

        rid2 = self.rms.create_resource(IonObject('Resource', name='res2'))
        res_obj = self.rr.read(rid2)
        self.assertEquals(res_obj.name, 'res2')

        with self.assertRaises(BadRequest):
            self.rms.update_resource(
                IonObject('StreamConfiguration', stream_name='res2'))
        res_obj.description = 'DESC2'
        self.rms.update_resource(res_obj)
        res_obj = self.rr.read(rid2)
        self.assertEquals(res_obj.description, 'DESC2')

        res_obj2 = self.rms.read_resource(rid2)
        self.assertEquals(res_obj.description, res_obj2.description)

        with self.assertRaises(BadRequest):
            self.rms.get_resource_state(rid2)
        with self.assertRaises(BadRequest):
            self.rms.ping_resource(rid2)
        with self.assertRaises(BadRequest):
            self.rms.get_agent(rid2)
        with self.assertRaises(BadRequest):
            self.rms.get_agent_state(rid2)

        self.rms.delete_resource(rid2)

        rid3, _ = self.rr.create(IonObject('InstrumentAgent', name='res3'))
        rid3_r = self.rr.read(rid3)
        self.assertEquals(rid3_r.lcstate, "DRAFT")
        self.assertEquals(rid3_r.availability, "PRIVATE")

        self.rms.execute_lifecycle_transition(rid3, "plan")
        rid3_r = self.rr.read(rid3)
        self.assertEquals(rid3_r.lcstate, "PLANNED")
        self.assertEquals(rid3_r.availability, "PRIVATE")