Example #1
0
 def test_delete_multiple_bay_by_name(self):
     obj_utils.create_test_bay(self.context, name="test_bay", uuid=utils.generate_uuid())
     obj_utils.create_test_bay(self.context, name="test_bay", uuid=utils.generate_uuid())
     response = self.delete("/bays/test_bay", expect_errors=True)
     self.assertEqual(409, response.status_int)
     self.assertEqual("application/json", response.content_type)
     self.assertTrue(response.json["error_message"])
Example #2
0
    def test_get_pod_list_with_filters(self):
        bay1 = utils.get_test_bay(id=11, uuid=magnum_utils.generate_uuid())
        bay2 = utils.get_test_bay(id=12, uuid=magnum_utils.generate_uuid())
        self.dbapi.create_bay(bay1)
        self.dbapi.create_bay(bay2)

        pod1 = utils.create_test_pod(
            name="pod-one", uuid=magnum_utils.generate_uuid(), bay_uuid=bay1["uuid"], status="status1"
        )
        pod2 = utils.create_test_pod(
            name="pod-two", uuid=magnum_utils.generate_uuid(), bay_uuid=bay2["uuid"], status="status2"
        )

        res = self.dbapi.get_pod_list(self.context, filters={"bay_uuid": bay1["uuid"]})
        self.assertEqual([pod1.id], [r.id for r in res])

        res = self.dbapi.get_pod_list(self.context, filters={"bay_uuid": bay2["uuid"]})
        self.assertEqual([pod2.id], [r.id for r in res])

        res = self.dbapi.get_pod_list(self.context, filters={"name": "pod-one"})
        self.assertEqual([pod1.id], [r.id for r in res])

        res = self.dbapi.get_pod_list(self.context, filters={"name": "bad-pod"})
        self.assertEqual([], [r.id for r in res])

        res = self.dbapi.get_pod_list(self.context, filters={"status": "status1"})
        self.assertEqual([pod1.id], [r.id for r in res])

        res = self.dbapi.get_pod_list(self.context, filters={"status": "status2"})
        self.assertEqual([pod2.id], [r.id for r in res])
Example #3
0
    def test_get_x509keypair_list_with_filters(self):
        bay1 = utils.get_test_bay(id=1, uuid=magnum_utils.generate_uuid())
        bay2 = utils.get_test_bay(id=2, uuid=magnum_utils.generate_uuid())
        self.dbapi.create_bay(bay1)
        self.dbapi.create_bay(bay2)

        x509keypair1 = utils.create_test_x509keypair(
            name='x509keypair-one',
            uuid=magnum_utils.generate_uuid(),
            bay_uuid=bay1['uuid'])
        x509keypair2 = utils.create_test_x509keypair(
            name='x509keypair-two',
            uuid=magnum_utils.generate_uuid(),
            bay_uuid=bay2['uuid'])
        x509keypair3 = utils.create_test_x509keypair(
            name='x509keypair-three',
            bay_uuid=bay2['uuid'])

        res = self.dbapi.get_x509keypair_list(
            self.context, filters={'bay_uuid': bay1['uuid']})
        self.assertEqual([x509keypair1.id], [r.id for r in res])

        res = self.dbapi.get_x509keypair_list(
            self.context, filters={'bay_uuid': bay2['uuid']})
        self.assertEqual([x509keypair2.id, x509keypair3.id],
                         [r.id for r in res])

        res = self.dbapi.get_x509keypair_list(
            self.context, filters={'name': 'x509keypair-one'})
        self.assertEqual([x509keypair1.id], [r.id for r in res])

        res = self.dbapi.get_x509keypair_list(
            self.context, filters={'name': 'bad-x509keypair'})
        self.assertEqual([], [r.id for r in res])
Example #4
0
    def test_get_container_list_with_filters(self):
        container1 = utils.create_test_container(
            name='container-one',
            uuid=magnum_utils.generate_uuid(),
            bay_uuid=magnum_utils.generate_uuid())
        container2 = utils.create_test_container(
            name='container-two',
            uuid=magnum_utils.generate_uuid(),
            bay_uuid=magnum_utils.generate_uuid())

        res = self.dbapi.get_container_list(self.context,
                                            filters={'name': 'container-one'})
        self.assertEqual([container1.id], [r.id for r in res])

        res = self.dbapi.get_container_list(self.context,
                                            filters={'name': 'container-two'})
        self.assertEqual([container2.id], [r.id for r in res])

        res = self.dbapi.get_container_list(self.context,
                                            filters={'name': 'bad-container'})
        self.assertEqual([], [r.id for r in res])

        res = self.dbapi.get_container_list(
            self.context,
            filters={'bay_uuid': container1.bay_uuid})
        self.assertEqual([container1.id], [r.id for r in res])
Example #5
0
    def test_get_baymodel_list_with_filters(self):
        bm1 = self._create_test_baymodel(
            id=1,
            name='bm-one',
            uuid=magnum_utils.generate_uuid(),
            image_id='image1')
        bm2 = self._create_test_baymodel(
            id=2,
            name='bm-two',
            uuid=magnum_utils.generate_uuid(),
            image_id='image2')

        res = self.dbapi.get_baymodel_list(self.context,
                                           filters={'name': 'bm-one'})
        self.assertEqual([bm1['id']], [r.id for r in res])

        res = self.dbapi.get_baymodel_list(self.context,
                                           filters={'name': 'bad-name'})
        self.assertEqual([], [r.id for r in res])

        res = self.dbapi.get_baymodel_list(self.context,
                                           filters={'image_id': 'image1'})
        self.assertEqual([bm1['id']], [r.id for r in res])

        res = self.dbapi.get_baymodel_list(self.context,
                                           filters={'image_id': 'image2'})
        self.assertEqual([bm2['id']], [r.id for r in res])
Example #6
0
 def test_get_one_by_name_multiple_service(self):
     obj_utils.create_test_service(self.context, name="test_service", uuid=utils.generate_uuid())
     obj_utils.create_test_service(self.context, name="test_service", uuid=utils.generate_uuid())
     response = self.get_json("/services/test_service", expect_errors=True)
     self.assertEqual(409, response.status_int)
     self.assertEqual("application/json", response.content_type)
     self.assertTrue(response.json["error_message"])
Example #7
0
 def test_update_node_already_associated(self):
     node = utils.create_test_node()
     new_i_uuid_one = magnum_utils.generate_uuid()
     self.dbapi.update_node(node.id, {'ironic_node_id': new_i_uuid_one})
     new_i_uuid_two = magnum_utils.generate_uuid()
     self.assertRaises(exception.NodeAssociated,
                       self.dbapi.update_node, node.id,
                       {'ironic_node_id': new_i_uuid_two})
Example #8
0
 def test_policy_disallow_delete(self):
     service = obj_utils.create_test_service(self.context,
                                             desc='test_service',
                                             uuid=utils.generate_uuid())
     self._common_policy_check(
         'service:delete', self.delete,
         '/services/%s/%s' % (service.uuid, utils.generate_uuid()),
         expect_errors=True)
Example #9
0
 def setUp(self):
     super(TestPatch, self).setUp()
     self.bay = obj_utils.create_test_bay(self.context,
                                          uuid=utils.generate_uuid())
     self.bay2 = obj_utils.create_test_bay(self.context,
                                           uuid=utils.generate_uuid())
     self.service = obj_utils.create_test_service(self.context,
                                                  bay_uuid=self.bay.uuid)
Example #10
0
 def test_update_node_instance_already_associated(self):
     node1 = utils.create_test_node(uuid=magnum_utils.generate_uuid())
     new_i_uuid = magnum_utils.generate_uuid()
     self.dbapi.update_node(node1.id, {'ironic_node_id': new_i_uuid})
     node2 = utils.create_test_node(uuid=magnum_utils.generate_uuid())
     self.assertRaises(exception.InstanceAssociated,
                       self.dbapi.update_node, node2.id,
                       {'ironic_node_id': new_i_uuid})
Example #11
0
 def test_create_node_instance_already_associated(self):
     instance_uuid = magnum_utils.generate_uuid()
     utils.create_test_node(uuid=magnum_utils.generate_uuid(),
                            ironic_node_id=instance_uuid)
     self.assertRaises(exception.InstanceAssociated,
                       utils.create_test_node,
                       uuid=magnum_utils.generate_uuid(),
                       ironic_node_id=instance_uuid)
 def test_policy_disallow_delete(self):
     rc = obj_utils.create_test_rc(self.context,
                                   name='test_rc',
                                   uuid=utils.generate_uuid())
     self._common_policy_check(
         'rc:delete', self.delete,
         '/rcs/%s/%s' % (rc.uuid, utils.generate_uuid()),
         expect_errors=True)
Example #13
0
 def test_policy_disallow_delete(self):
     pod = obj_utils.create_test_pod(self.context,
                                     name='test_pod',
                                     uuid=utils.generate_uuid())
     self._common_policy_check(
         'pod:delete', self.delete,
         '/pods/%s/%s' % (pod.uuid, utils.generate_uuid()),
         expect_errors=True)
Example #14
0
 def test_get_one_by_name_multiple_service(self, mock_service_show):
     obj_utils.create_test_service(self.context, name="test_service", uuid=utils.generate_uuid())
     obj_utils.create_test_service(self.context, name="test_service", uuid=utils.generate_uuid())
     err = rest.ApiException(status=500)
     mock_service_show.side_effect = err
     response = self.get_json("/services/test_service/5d12f6fd-a196-4bf0-ae4c-1f639a523a52", expect_errors=True)
     self.assertEqual(500, response.status_int)
     self.assertEqual("application/json", response.content_type)
     self.assertTrue(response.json["error_message"])
Example #15
0
 def test_get_one_by_name_multiple_bay(self):
     obj_utils.create_test_bay(self.context, name='test_bay',
                               uuid=utils.generate_uuid())
     obj_utils.create_test_bay(self.context, name='test_bay',
                               uuid=utils.generate_uuid())
     response = self.get_json('/bays/test_bay', expect_errors=True)
     self.assertEqual(409, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['error_message'])
Example #16
0
 def test_delete_multiple_service_by_name(self):
     obj_utils.create_test_service(self.context, name='test_service',
                                   uuid=utils.generate_uuid())
     obj_utils.create_test_service(self.context, name='test_service',
                                   uuid=utils.generate_uuid())
     response = self.delete('/services/test_service', expect_errors=True)
     self.assertEqual(409, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['error_message'])
Example #17
0
 def test_get_baymodel_by_name_multiple_baymodel(self):
     self._create_test_baymodel(id=1, name='bm',
         uuid=magnum_utils.generate_uuid(),
         image_id='image1')
     self._create_test_baymodel(id=2, name='bm',
         uuid=magnum_utils.generate_uuid(),
         image_id='image2')
     self.assertRaises(exception.Conflict, self.dbapi.get_baymodel_by_name,
                       self.context, 'bm')
Example #18
0
    def test_policy_disallow_update(self):
        pod = obj_utils.create_test_pod(self.context,
                                        desc='test pod',
                                        uuid=utils.generate_uuid())

        self._common_policy_check(
            'pod:update', self.patch_json,
            '/pods/%s/%s' % (pod.uuid, utils.generate_uuid()),
            [{'path': '/desc', 'value': 'new test pod', 'op': 'replace'}],
            expect_errors=True)
 def test_delete_multiple_rc_by_name(self):
     obj_utils.create_test_rc(self.context, name='test_rc',
                              uuid=utils.generate_uuid())
     obj_utils.create_test_rc(self.context, name='test_rc',
                              uuid=utils.generate_uuid())
     response = self.delete(
         '/rcs/test_rc/5d12f6fd-a196-4bf0-ae4c-1f639a523a5',
         expect_errors=True)
     self.assertEqual(409, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['error_message'])
Example #20
0
 def test_delete_multiple_pod_by_name(self, mock_pod_delete):
     obj_utils.create_test_pod(self.context, name='test_pod',
                               uuid=utils.generate_uuid())
     obj_utils.create_test_pod(self.context, name='test_pod',
                               uuid=utils.generate_uuid())
     err = rest.ApiException(status=400)
     mock_pod_delete.side_effect = err
     response = self.delete('/pods/test_pod', expect_errors=True)
     self.assertEqual(400, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['errors'])
    def test_policy_disallow_update(self):
        rc = obj_utils.create_test_rc(self.context,
                                      desc='test rc',
                                      uuid=utils.generate_uuid())

        new_image = 'rc_example_B_image'
        self._common_policy_check(
            'rc:update', self.patch_json,
            '/rcs/%s/%s' % (rc.uuid, utils.generate_uuid()),
            [{'path': '/images/0', 'value': new_image, 'op': 'replace'}],
            expect_errors=True)
Example #22
0
    def test_policy_disallow_update(self):
        service = obj_utils.create_test_service(self.context,
                                                desc='test service',
                                                uuid=utils.generate_uuid())

        self._common_policy_check(
            'service:update', self.patch_json,
            '/services/%s' % service.uuid,
            [{'path': '/bay_uuid',
              'value': utils.generate_uuid(),
              'op': 'replace'}])
Example #23
0
 def test_get_one_by_name_multiple_pod(self):
     obj_utils.create_test_pod(self.context, name='test_pod',
                               uuid=utils.generate_uuid())
     obj_utils.create_test_pod(self.context, name='test_pod',
                               uuid=utils.generate_uuid())
     response = self.get_json(
         '/pods/test_pod/5d12f6fd-a196-4bf0-ae4c-1f639a523a52',
         expect_errors=True)
     self.assertEqual(409, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['error_message'])
Example #24
0
 def test_get_bay_list_by_admin_all_tenants(self):
     uuids = []
     for i in range(1, 6):
         bay = utils.create_test_bay(
             uuid=magnum_utils.generate_uuid(),
             project_id=magnum_utils.generate_uuid(),
             user_id=magnum_utils.generate_uuid())
         uuids.append(six.text_type(bay['uuid']))
     ctx = context.make_admin_context()
     res = self.dbapi.get_bay_list(ctx, opts={'get_all_tenants': True})
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Example #25
0
    def test_replace_ok_by_name_multiple_bay(self, mock_utcnow):
        test_time = datetime.datetime(2000, 1, 1, 0, 0)
        mock_utcnow.return_value = test_time

        obj_utils.create_test_bay(self.context, name="test_bay", uuid=utils.generate_uuid())
        obj_utils.create_test_bay(self.context, name="test_bay", uuid=utils.generate_uuid())

        response = self.patch_json(
            "/bays/test_bay", [{"path": "/name", "value": "test_bay", "op": "replace"}], expect_errors=True
        )
        self.assertEqual("application/json", response.content_type)
        self.assertEqual(409, response.status_code)
Example #26
0
    def test_JSONEncodedDict_default_value(self):
        # Create pod w/o labels
        pod1_id = magnum_utils.generate_uuid()
        self.dbapi.create_pod({'uuid': pod1_id})
        pod1 = sa_api.model_query(models.Pod).filter_by(uuid=pod1_id).one()
        self.assertEqual({}, pod1.labels)

        # Create pod with labels
        pod2_id = magnum_utils.generate_uuid()
        self.dbapi.create_pod({'uuid': pod2_id, 'labels': {'bar': 'foo'}})
        pod2 = sa_api.model_query(models.Pod).filter_by(uuid=pod2_id).one()
        self.assertEqual('foo', pod2.labels['bar'])
Example #27
0
 def test_get_x509keypair_list_by_admin_all_tenants(self):
     uuids = []
     for i in range(1, 6):
         x509keypair = utils.create_test_x509keypair(
             uuid=magnum_utils.generate_uuid(),
             project_id=magnum_utils.generate_uuid(),
             user_id=magnum_utils.generate_uuid())
         uuids.append(six.text_type(x509keypair['uuid']))
     ctx = context.make_admin_context(all_tenants=True)
     res = self.dbapi.get_x509keypair_list(ctx)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Example #28
0
    def test_JSONEncodedList_default_value(self):
        # Create pod w/o images
        pod1_id = magnum_utils.generate_uuid()
        self.dbapi.create_pod({'uuid': pod1_id})
        pod1 = sa_api.model_query(models.Pod).filter_by(uuid=pod1_id).one()
        self.assertEqual([], pod1.images)

        # Create pod with images
        pod2_id = magnum_utils.generate_uuid()
        self.dbapi.create_pod({'uuid': pod2_id,
                               'images': ['myimage1', 'myimage2']})
        pod2 = sa_api.model_query(models.Pod).filter_by(uuid=pod2_id).one()
        self.assertEqual(['myimage1', 'myimage2'], pod2.images)
Example #29
0
 def test_get_one_by_name_multiple_pod(self, mock_pod_show):
     obj_utils.create_test_pod(self.context, name='test_pod',
                               uuid=utils.generate_uuid())
     obj_utils.create_test_pod(self.context, name='test_pod',
                               uuid=utils.generate_uuid())
     err = rest.ApiException(status=500)
     mock_pod_show.side_effect = err
     response = self.get_json(
         '/pods/test_pod/5d12f6fd-a196-4bf0-ae4c-1f639a523a52',
         expect_errors=True)
     self.assertEqual(500, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['errors'])
Example #30
0
 def test_delete_multiple_service_by_name(self, mock_service_delete):
     obj_utils.create_test_service(self.context, name='test_service',
                                   uuid=utils.generate_uuid())
     obj_utils.create_test_service(self.context, name='test_service',
                                   uuid=utils.generate_uuid())
     err = rest.ApiException(status=409)
     mock_service_delete.side_effect = err
     response = self.delete(
         '/services/test_service/5d12f6fd-a196-4bf0-ae4c-1f639a523a52',
         expect_errors=True)
     self.assertEqual(500, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['errors'])
Example #31
0
 def test_delete_pod_not_found(self):
     uuid = utils.generate_uuid()
     response = self.delete('/pods/%s/%s' % (uuid, self.pod.bay_uuid),
                            expect_errors=True)
     self.assertEqual(404, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['error_message'])
Example #32
0
 def test_get_pod_that_does_not_exist(self):
     self.assertRaises(exception.PodNotFound, self.dbapi.get_pod_by_id,
                       self.context, 999)
     self.assertRaises(exception.PodNotFound, self.dbapi.get_pod_by_uuid,
                       self.context, magnum_utils.generate_uuid())
     self.assertRaises(exception.PodNotFound, self.dbapi.get_pod_by_name,
                       'bad-name')
Example #33
0
 def test_policy_disallow_delete(self):
     node = obj_utils.create_test_node(self.context,
                                       uuid=utils.generate_uuid())
     self._common_policy_check("node:delete",
                               self.delete,
                               '/nodes/%s' % node.uuid,
                               expect_errors=True)
Example #34
0
 def test_update_node_associate_and_disassociate(self):
     node = utils.create_test_node()
     new_i_uuid = magnum_utils.generate_uuid()
     res = self.dbapi.update_node(node.id, {'ironic_node_id': new_i_uuid})
     self.assertEqual(new_i_uuid, res.ironic_node_id)
     res = self.dbapi.update_node(node.id, {'ironic_node_id': None})
     self.assertIsNone(res.ironic_node_id)
Example #35
0
 def test_create_bay_with_non_existent_baymodel_id(self, mock_valid_os_res):
     bdict = apiutils.bay_post_data(baymodel_id=utils.generate_uuid())
     mock_valid_os_res.return_value = None
     response = self.post_json('/bays', bdict, expect_errors=True)
     self.assertEqual('application/json', response.content_type)
     self.assertEqual(400, response.status_int)
     self.assertTrue(response.json['error_message'])
Example #36
0
    def test_detail_with_pagination_marker(self):
        bm_list = []
        for id_ in range(4):
            baymodel = obj_utils.create_test_baymodel(
                self.context, id=id_, uuid=utils.generate_uuid())
            bm_list.append(baymodel)

        response = self.get_json('/baymodels/detail?limit=3&marker=%s' %
                                 bm_list[2].uuid)
        self.assertEqual(1, len(response['baymodels']))
        self.assertEqual(bm_list[-1].uuid, response['baymodels'][0]['uuid'])
        for key in ("flavor_id", "master_flavor_id", "dns_nameserver",
                    "keypair_id", "external_network_id", "fixed_network",
                    "docker_volume_size", "ssh_authorized_key", "coe"):
            self.assertIn(key, response['baymodels'][0])
            self.assertIn('flavor_id', response['baymodels'][0])
            self.assertIn('master_flavor_id', response['baymodels'][0])
            self.assertIn('dns_nameserver', response['baymodels'][0])
            self.assertIn('keypair_id', response['baymodels'][0])
            self.assertIn('external_network_id', response['baymodels'][0])
            self.assertIn('fixed_network', response['baymodels'][0])
            self.assertIn('docker_volume_size', response['baymodels'][0])
            self.assertIn('ssh_authorized_key', response['baymodels'][0])
            self.assertIn('coe', response['baymodels'][0])
            self.assertIn('http_proxy', response['baymodels'][0])
            self.assertIn('https_proxy', response['baymodels'][0])
            self.assertIn('no_proxy', response['baymodels'][0])
 def test_get_rc_list_bay_not_exist(self):
     rc = self.dbapi.get_rc_list(self.context,
                                 filters={'bay_uuid': self.bay.uuid})
     self.assertEqual(1, len(rc))
     rc = self.dbapi.get_rc_list(
         self.context, filters={'bay_uuid': magnum_utils.generate_uuid()})
     self.assertEqual(0, len(rc))
Example #38
0
    def test_remove_singular(self):
        baymodel = obj_utils.create_test_baymodel(self.context,
                                                  uuid=utils.generate_uuid())
        response = self.get_json('/baymodels/%s' % baymodel.uuid)
        self.assertIsNotNone(response['image_id'])

        response = self.patch_json('/baymodels/%s' % baymodel.uuid,
                                   [{
                                       'path': '/image_id',
                                       'op': 'remove'
                                   }])
        self.assertEqual('application/json', response.content_type)
        self.assertEqual(200, response.status_code)

        response = self.get_json('/baymodels/%s' % baymodel.uuid)
        self.assertIsNone(response['image_id'])
        # Assert nothing else was changed
        self.assertEqual(baymodel.uuid, response['uuid'])
        self.assertEqual(baymodel.name, response['name'])
        self.assertEqual(baymodel.apiserver_port, response['apiserver_port'])
        self.assertEqual(self.baymodel.fixed_network,
                         response['fixed_network'])
        self.assertEqual(self.baymodel.docker_volume_size,
                         response['docker_volume_size'])
        self.assertEqual(self.baymodel.ssh_authorized_key,
                         response['ssh_authorized_key'])
        self.assertEqual(self.baymodel.coe, response['coe'])
Example #39
0
    def test_detail_containers_with_pagination_marker(self,
                                                      mock_container_list,
                                                      mock_container_show):
        container_list = []
        for id_ in range(4):
            test_container = utils.create_test_container(
                id=id_, uuid=comm_utils.generate_uuid())
            container_list.append(
                objects.Container(self.context, **test_container))
        mock_container_list.return_value = container_list[-1:]
        mock_container_show.return_value = container_list[-1]
        response = self.app.get('/v1/containers/detail?limit=3&marker=%s' %
                                container_list[2].uuid)

        self.assertEqual(200, response.status_int)
        actual_containers = response.json['containers']
        self.assertEqual(1, len(actual_containers))
        self.assertEqual(container_list[-1].uuid,
                         actual_containers[0].get('uuid'))
        self.assertIn('name', actual_containers[0])
        self.assertIn('bay_uuid', actual_containers[0])
        self.assertIn('status', actual_containers[0])
        self.assertIn('image', actual_containers[0])
        self.assertIn('command', actual_containers[0])
        self.assertIn('memory', actual_containers[0])
Example #40
0
 def test_get_bay_list_baymodel_not_exist(self):
     utils.create_test_bay()
     self.assertEqual(1, len(self.dbapi.get_bay_list(self.context)))
     res = self.dbapi.get_bay_list(
         self.context,
         filters={'baymodel_id': magnum_utils.generate_uuid()})
     self.assertEqual(0, len(res))
Example #41
0
 def test_links(self):
     uuid = utils.generate_uuid()
     obj_utils.create_test_pod(self.context, id=1, uuid=uuid)
     response = self.get_json(
         '/pods/%s/%s' % (uuid, '5d12f6fd-a196-4bf0-ae4c-1f639a523a52'))
     self.assertIn('links', response.keys())
     self.assertEqual(2, len(response['links']))
     self.assertIn(uuid, response['links'][0]['href'])
Example #42
0
    def test_get_container_list_with_filters(self):
        container1 = utils.create_test_container(
            name='container-one', uuid=magnum_utils.generate_uuid())
        container2 = utils.create_test_container(
            name='container-two', uuid=magnum_utils.generate_uuid())

        res = self.dbapi.get_container_list(self.context,
                                            filters={'name': 'container-one'})
        self.assertEqual([container1.id], [r.id for r in res])

        res = self.dbapi.get_container_list(self.context,
                                            filters={'name': 'container-two'})
        self.assertEqual([container2.id], [r.id for r in res])

        res = self.dbapi.get_container_list(self.context,
                                            filters={'name': 'bad-container'})
        self.assertEqual([], [r.id for r in res])
Example #43
0
 def setUp(self):
     super(TestPatch, self).setUp()
     obj_utils.create_test_bay(self.context, coe='kubernetes')
     self.rc = obj_utils.create_test_rc(self.context,
                                        images=['rc_example_A_image'])
     self.another_bay = obj_utils.create_test_bay(
         self.context, uuid=utils.generate_uuid())
     self.manifest = '''{
Example #44
0
 def test_get_node_list(self):
     uuids = []
     for i in range(1, 6):
         node = utils.create_test_node(uuid=magnum_utils.generate_uuid())
         uuids.append(six.text_type(node['uuid']))
     res = self.dbapi.get_node_list(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Example #45
0
 def test_links(self, mock_pod_show):
     uuid = utils.generate_uuid()
     pod = obj_utils.create_test_pod(self.context, id=1, uuid=uuid)
     mock_pod_show.return_value = pod
     response = self.get_json('/pods/%s/%s' % (uuid, pod.bay_uuid))
     self.assertIn('links', response.keys())
     self.assertEqual(2, len(response['links']))
     self.assertIn(uuid, response['links'][0]['href'])
Example #46
0
    def test_get_service_list_with_filters(self):
        bay1 = utils.get_test_bay(id=11, uuid=magnum_utils.generate_uuid())
        bay2 = utils.get_test_bay(id=12, uuid=magnum_utils.generate_uuid())
        self.dbapi.create_bay(bay1)
        self.dbapi.create_bay(bay2)

        service1 = utils.create_test_service(name='service-one',
                                             uuid=magnum_utils.generate_uuid(),
                                             bay_uuid=bay1['uuid'],
                                             ports=[{
                                                 'port': 8000
                                             }])
        service2 = utils.create_test_service(name='service-two',
                                             uuid=magnum_utils.generate_uuid(),
                                             bay_uuid=bay2['uuid'],
                                             ports=[{
                                                 'port': 8001
                                             }])

        res = self.dbapi.get_service_list(self.context,
                                          filters={'bay_uuid': bay1['uuid']})
        self.assertEqual([service1.id], [r.id for r in res])

        res = self.dbapi.get_service_list(self.context,
                                          filters={'bay_uuid': bay2['uuid']})
        self.assertEqual([service2.id], [r.id for r in res])

        res = self.dbapi.get_service_list(self.context,
                                          filters={'name': 'service-one'})
        self.assertEqual([service1.id], [r.id for r in res])

        res = self.dbapi.get_service_list(self.context,
                                          filters={'name': 'bad-service'})
        self.assertEqual([], [r.id for r in res])

        res = self.dbapi.get_service_list(self.context,
                                          filters={'ports': [{
                                              'port': 8000
                                          }]})
        self.assertEqual([service1.id], [r.id for r in res])

        res = self.dbapi.get_service_list(self.context,
                                          filters={'ports': [{
                                              'port': 8001
                                          }]})
        self.assertEqual([service2.id], [r.id for r in res])
Example #47
0
 def test_collection_links(self, mock_rc_list):
     for id_ in range(5):
         rc = obj_utils.create_test_rc(self.context,
                                       id=id_,
                                       uuid=utils.generate_uuid())
     mock_rc_list.return_value = [rc]
     response = self.get_json('/rcs/?limit=1')
     self.assertEqual(1, len(response['rcs']))
Example #48
0
 def test_destroy_baymodel_by_uuid(self):
     uuid = magnum_utils.generate_uuid()
     utils.create_test_baymodel(uuid=uuid)
     self.assertIsNotNone(
         self.dbapi.get_baymodel_by_uuid(self.context, uuid))
     self.dbapi.destroy_baymodel(uuid)
     self.assertRaises(exception.BayModelNotFound,
                       self.dbapi.get_baymodel_by_uuid, self.context, uuid)
Example #49
0
 def test_get_bay_list(self):
     uuids = []
     for i in range(1, 6):
         bay = utils.create_test_bay(uuid=magnum_utils.generate_uuid())
         uuids.append(six.text_type(bay['uuid']))
     res = self.dbapi.get_bay_list(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(uuids.sort(), res_uuids.sort())
Example #50
0
    def test_replace_ok_by_name_multiple_service(self, mock_utcnow):
        test_time = datetime.datetime(2000, 1, 1, 0, 0)
        mock_utcnow.return_value = test_time

        obj_utils.create_test_service(self.context, name='test_service',
                                      uuid=utils.generate_uuid())
        obj_utils.create_test_service(self.context, name='test_service',
                                      uuid=utils.generate_uuid())

        response = self.patch_json(
            '/services/test_service/5d12f6fd-a196-4bf0-ae4c-1f639a523a52',
            [{'path': '/bay_uuid',
              'value': self.bay2.uuid,
              'op': 'replace'}],
            expect_errors=True)
        self.assertEqual('application/json', response.content_type)
        self.assertEqual(409, response.status_code)
 def test_collection_links(self, mock_rc_list):
     for id_ in range(5):
         rc = obj_utils.create_test_rc(self.context, id=id_,
                                       uuid=utils.generate_uuid())
     mock_rc_list.return_value = [rc]
     response = self.get_json('/rcs/?limit=1&bay_ident=5d12f6fd-a196-4bf0'
                              '-ae4c-1f639a523a52')
     self.assertEqual(1, len(response['rcs']))
Example #52
0
 def test_replace_non_existent_node(self):
     response = self.patch_json('/nodes/%s' % utils.generate_uuid(),
                                [{'path': '/image_id', 'value': 'Ubuntu',
                                  'op': 'replace'}],
                                expect_errors=True)
     self.assertEqual(404, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['error_message'])
Example #53
0
    def test_replace_ok_by_name_multiple_pod(self, mock_utcnow):
        test_time = datetime.datetime(2000, 1, 1, 0, 0)
        mock_utcnow.return_value = test_time

        obj_utils.create_test_pod(self.context,
                                  name='test_pod',
                                  uuid=utils.generate_uuid())
        obj_utils.create_test_pod(self.context,
                                  name='test_pod',
                                  uuid=utils.generate_uuid())

        response = self.patch_json('/pods/test_pod', [{
            'path': '/desc',
            'op': 'remove'
        }],
                                   expect_errors=True)
        self.assertEqual('application/json', response.content_type)
        self.assertEqual(409, response.status_code)
    def test_replace_ok_by_name_multiple_rc(self, mock_utcnow):
        new_image = 'rc_example_B_image'
        test_time = datetime.datetime(2000, 1, 1, 0, 0)
        mock_utcnow.return_value = test_time

        obj_utils.create_test_rc(self.context, name='test_rc',
                                 uuid=utils.generate_uuid())
        obj_utils.create_test_rc(self.context, name='test_rc',
                                 uuid=utils.generate_uuid())

        response = self.patch_json(
            '/rcs/test_rc/5d12f6fd-a196-4bf0-ae4c-1f639a523a52',
            [{'path': '/images/0',
              'value': new_image,
              'op': 'replace'}],
            expect_errors=True)
        self.assertEqual('application/json', response.content_type)
        self.assertEqual(400, response.status_code)
Example #55
0
 def test_replace_non_existent_baymodel_id(self):
     response = self.patch_json('/bays/%s' % self.bay.uuid,
                                [{'path': '/baymodel_id',
                                  'value': utils.generate_uuid(),
                                  'op': 'replace'}],
                                expect_errors=True)
     self.assertEqual('application/json', response.content_type)
     self.assertEqual(400, response.status_code)
     self.assertTrue(response.json['error_message'])
Example #56
0
 def test_collection_links(self, mock_pod_list):
     for id_ in range(5):
         pod = obj_utils.create_test_pod(self.context,
                                         id=id_,
                                         uuid=utils.generate_uuid())
     mock_pod_list.return_value = [pod]
     response = self.get_json('/pods/?limit=1&bay_ident=5d12f6fd-a196-'
                              '4bf0-ae4c-1f639a523a52')
     self.assertEqual(1, len(response['pods']))
Example #57
0
 def test_get_service_list(self):
     uuids = [self.service.uuid]
     for i in range(1, 6):
         service = utils.create_test_service(
             bay_uuid=self.bay.uuid, uuid=magnum_utils.generate_uuid())
         uuids.append(six.text_type(service.uuid))
     res = self.dbapi.get_service_list(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Example #58
0
    def test_collection_links(self):
        for id_ in range(5):
            obj_utils.create_test_node(self.context, id=id_,
                                       uuid=utils.generate_uuid())
        response = self.get_json('/nodes/?limit=3')
        self.assertEqual(3, len(response['nodes']))

        next_marker = response['nodes'][-1]['uuid']
        self.assertIn(next_marker, response['next'])
Example #59
0
 def test_collection_links_default_limit(self, mock_pod_list):
     cfg.CONF.set_override('max_limit', 3, 'api')
     for id_ in range(5):
         pod = obj_utils.create_test_pod(self.context, id=id_,
                                         uuid=utils.generate_uuid())
     mock_pod_list.return_value = [pod]
     response = self.get_json('/pods?bay_ident=5d12f6fd-a196-4bf0-ae4c-'
                              '1f639a523a52')
     self.assertEqual(1, len(response['pods']))
Example #60
0
 def test_delete_pod_not_found(self, mock_pod_delete):
     uuid = utils.generate_uuid()
     err = rest.ApiException(status=404)
     mock_pod_delete.side_effect = err
     response = self.delete('/pods/%s/%s' % (uuid, self.pod.bay_uuid),
                            expect_errors=True)
     self.assertEqual(500, response.status_int)
     self.assertEqual('application/json', response.content_type)
     self.assertTrue(response.json['errors'])