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)
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)
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'])
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__)