Beispiel #1
0
 def test_fields_defaulted_at_create(self):
     rg = request_spec.RequestGroup(self.context)
     self.assertTrue(True, rg.use_same_provider)
     self.assertEqual({}, rg.resources)
     self.assertEqual(set(), rg.required_traits)
     self.assertEqual(set(), rg.forbidden_traits)
     self.assertEqual([], rg.aggregates)
Beispiel #2
0
    def test_from_components_with_port_resource_request(self, ):
        ctxt = context.RequestContext(fakes.FAKE_USER_ID,
                                      fakes.FAKE_PROJECT_ID)
        instance = fake_instance.fake_instance_obj(ctxt)
        image = {
            'id': uuids.image_id,
            'properties': {
                'mappings': []
            },
            'status': 'fake-status',
            'location': 'far-away'
        }
        flavor = fake_flavor.fake_flavor_obj(ctxt)
        filter_properties = {'fake': 'property'}

        rg = request_spec.RequestGroup()

        spec = objects.RequestSpec.from_components(ctxt,
                                                   instance.uuid,
                                                   image,
                                                   flavor,
                                                   instance.numa_topology,
                                                   instance.pci_requests,
                                                   filter_properties,
                                                   None,
                                                   instance.availability_zone,
                                                   port_resource_requests=[rg])

        self.assertListEqual([rg], spec.requested_resources)
Beispiel #3
0
    def test_create_does_not_persist_requested_resources(self):
        req_obj = fake_request_spec.fake_spec_obj(remove_id=True)
        rg = request_spec.RequestGroup(resources={'fake-rc': 13})
        req_obj.requested_resources = [rg]
        orig_create_in_db = request_spec.RequestSpec._create_in_db
        with mock.patch.object(request_spec.RequestSpec, '_create_in_db') \
                as mock_create_in_db:
            mock_create_in_db.side_effect = orig_create_in_db
            req_obj.create()
            mock_create_in_db.assert_called_once()
            updates = mock_create_in_db.mock_calls[0][1][1]
            # assert that the requested_resources field is not stored in the db
            data = jsonutils.loads(updates['spec'])['nova_object.data']
            self.assertIsNone(data['requested_resources'])
            self.assertIsNotNone(data['instance_uuid'])

        # also we expect that requested_resources field does not reset after
        # create
        self.assertEqual(13,
                         req_obj.requested_resources[0].resources['fake-rc'])
Beispiel #4
0
    def test_get_device_profile_groups(self, mock_get_dp_list):
        mock_get_dp_list.return_value = [{
            "groups": [{
                "resources:FPGA": "1",
                "trait:CUSTOM_FPGA_CARD": "required"
            }],
            "name":
            "mydp",
            "uuid":
            "307076c2-5aed-4f72-81e8-1b42f9aa2ec6"
        }]
        rg = request_spec.RequestGroup(requester_id='device_profile_0')
        rg.add_resource(rclass='FPGA', amount='1')
        rg.add_trait(trait_name='CUSTOM_FPGA_CARD', trait_type='required')
        expected_groups = [rg]

        actual_groups = self.client.get_device_profile_groups('mydp')
        self.assertEqual(len(expected_groups), len(actual_groups))
        self.assertEqual(expected_groups[0].__dict__,
                         actual_groups[0].__dict__)