Exemple #1
0
 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)
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #5
0
 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())
Exemple #7
0
 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())
Exemple #8
0
    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])
Exemple #9
0
    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])