def test_require_image_type_support_disabled(self): self.flags(query_placement_for_image_type_support=False, group='scheduler') reqspec = objects.RequestSpec(flavor=objects.Flavor(extra_specs={}), is_bfv=False) # Assert that we completely skip the filter if disabled request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({}, reqspec.flavor.extra_specs)
def test_require_image_type_support_volume_backed(self): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec(flavor=objects.Flavor(extra_specs={}), is_bfv=True) # Assert that we completely skip the filter if no image request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({}, reqspec.flavor.extra_specs)
def test_require_image_type_support_volume_backed(self): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec(flavor=objects.Flavor(extra_specs={}), is_bfv=True) # Assert that we completely skip the filter if no image request_filter.require_image_type_support(self.context, reqspec) self.assertEqual(0, len(reqspec.root_required)) self.assertEqual(0, len(reqspec.root_forbidden))
def test_require_image_type_support_unknown(self): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec( image=objects.ImageMeta(disk_format='danformat'), flavor=objects.Flavor(extra_specs={}), is_bfv=False) # Assert that we completely skip the filter if no matching trait request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({}, reqspec.flavor.extra_specs)
def test_require_image_type_support_unknown(self): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec( image=objects.ImageMeta(disk_format='danformat'), flavor=objects.Flavor(extra_specs={}), is_bfv=False) # Assert that we completely skip the filter if no matching trait request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({}, reqspec.flavor.extra_specs)
def test_require_image_type_support_adds_trait(self): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec( image=objects.ImageMeta(disk_format='raw'), flavor=objects.Flavor(extra_specs={}), is_bfv=False) # Assert that we add the trait to the flavor as required request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({'trait:COMPUTE_IMAGE_TYPE_RAW': 'required'}, reqspec.flavor.extra_specs) self.assertEqual(set(), reqspec.flavor.obj_what_changed())
def test_require_image_type_support_adds_trait(self): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec( image=objects.ImageMeta(disk_format='raw'), flavor=objects.Flavor(extra_specs={}), is_bfv=False) # Assert that we add the trait to the flavor as required request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({'trait:COMPUTE_IMAGE_TYPE_RAW': 'required'}, reqspec.flavor.extra_specs) self.assertEqual(set(), reqspec.flavor.obj_what_changed())
def test_require_image_type_support_adds_trait(self, mock_log): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec( image=objects.ImageMeta(disk_format='raw'), flavor=objects.Flavor(extra_specs={}), is_bfv=False) # Assert that we add the trait to the flavor as required request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({'trait:COMPUTE_IMAGE_TYPE_RAW': 'required'}, reqspec.flavor.extra_specs) self.assertEqual(set(), reqspec.flavor.obj_what_changed()) log_lines = [c[0][0] for c in mock_log.debug.call_args_list] self.assertIn('added required trait', log_lines[0]) self.assertIn('took %.1f seconds', log_lines[1])
def test_require_image_type_support_adds_trait(self, mock_log): self.flags(query_placement_for_image_type_support=True, group='scheduler') reqspec = objects.RequestSpec( image=objects.ImageMeta(disk_format='raw'), flavor=objects.Flavor(extra_specs={}), is_bfv=False) self.assertEqual(0, len(reqspec.root_required)) self.assertEqual(0, len(reqspec.root_forbidden)) # Request filter puts the trait into the request spec request_filter.require_image_type_support(self.context, reqspec) self.assertEqual({ot.COMPUTE_IMAGE_TYPE_RAW}, reqspec.root_required) self.assertEqual(0, len(reqspec.root_forbidden)) log_lines = [c[0][0] for c in mock_log.debug.call_args_list] self.assertIn('added required trait', log_lines[0]) self.assertIn('took %.1f seconds', log_lines[1])