示例#1
0
 def test_isolate_agg_trait_on_flv_img_destination_not_set(
         self, mock_getnotmd):
     mock_getnotmd.return_value = []
     flavor_traits = set(['HW_GPU_API_DXVA'])
     image_traits = set(['HW_NIC_DCB_ETS'])
     fake_flavor = objects.Flavor(vcpus=1,
                                  memory_mb=1024,
                                  root_gb=10,
                                  ephemeral_gb=5,
                                  swap=0,
                                  extra_specs={
                                      'trait:' + trait: 'required'
                                      for trait in flavor_traits
                                  })
     fake_image = objects.ImageMeta(properties=objects.ImageMetaProps(
         traits_required=[trait for trait in image_traits]))
     reqspec = objects.RequestSpec(flavor=fake_flavor, image=fake_image)
     result = request_filter.isolate_aggregates(self.context, reqspec)
     self.assertTrue(result)
     self.assertNotIn('requested_destination', reqspec)
     keys = [
         'trait:%s' % trait for trait in flavor_traits.union(image_traits)
     ]
     mock_getnotmd.assert_called_once_with(self.context,
                                           utils.ItemsMatcher(keys),
                                           'trait:',
                                           value='required')
示例#2
0
 def test_isolate_aggregates(self, mock_getnotmd):
     agg4_traits = {
         'trait:HW_GPU_API_DXVA': 'required',
         'trait:HW_NIC_DCB_ETS': 'required'
     }
     mock_getnotmd.return_value = [
         objects.Aggregate(
             uuid=uuids.agg1,
             metadata={'trait:CUSTOM_WINDOWS_LICENSED_TRAIT': 'required'}),
         objects.Aggregate(uuid=uuids.agg2,
                           metadata={
                               'trait:CUSTOM_WINDOWS_LICENSED_TRAIT':
                               'required',
                               'trait:CUSTOM_XYZ_TRAIT': 'required'
                           }),
         objects.Aggregate(uuid=uuids.agg4, metadata=agg4_traits),
     ]
     fake_flavor = objects.Flavor(vcpus=1,
                                  memory_mb=1024,
                                  root_gb=10,
                                  ephemeral_gb=5,
                                  swap=0,
                                  extra_specs=agg4_traits)
     fake_image = objects.ImageMeta(properties=objects.ImageMetaProps(
         traits_required=[]))
     reqspec = objects.RequestSpec(flavor=fake_flavor, image=fake_image)
     result = request_filter.isolate_aggregates(self.context, reqspec)
     self.assertTrue(result)
     self.assertItemsEqual(
         set([uuids.agg1, uuids.agg2, uuids.agg4]),
         reqspec.requested_destination.forbidden_aggregates)
     mock_getnotmd.assert_called_once_with(self.context,
                                           utils.ItemsMatcher(agg4_traits),
                                           'trait:',
                                           value='required')