Exemple #1
0
 def setUp(self):
     super(ImageResourceTypeTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     image1 = fakes.FakeResource(name="cirros-0.3.1-uec", id="100")
     self.clients.glance().images._cache(image1)
     image2 = fakes.FakeResource(name="cirros-0.3.1-uec-ramdisk", id="101")
     self.clients.glance().images._cache(image2)
 def test_destroy_servers(self, mock_osclients):
     prov = OSProvider(mock.MagicMock(), self._get_valid_config())
     prov.resources.get_all.side_effect = [
         [
             fakes.FakeResource(
                 id=1,
                 items={
                     "info": {
                         "id": "35FC0503-FED6-419F-B6EE-B704198CE642"
                     }
                 })
         ],
         [fakes.FakeResource(id=2, items={"info": {
             "id": "keypair_name"
         }})],
     ]
     prov.destroy_servers()
     prov.resources.get_all.assert_has_calls([
         mock.call(type="server"),
         mock.call(type="keypair"),
     ])
     prov.nova.servers.delete.assert_called_once_with(
         "35FC0503-FED6-419F-B6EE-B704198CE642")
     prov.nova.keypairs.delete.assert_called_once_with("keypair_name")
     prov.resources.delete.assert_has_calls([
         mock.call(1),
         mock.call(2),
     ])
Exemple #3
0
 def setUp(self):
     super(FlavorResourceTypeTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.clients.nova().flavors._cache(
         fakes.FakeResource(name='m1.tiny', id="1"))
     self.clients.nova().flavors._cache(
         fakes.FakeResource(name='m1.nano', id="42"))
Exemple #4
0
    def test_is_temporary(self):
        prefix = utils.KeystoneScenario.RESOURCE_NAME_PREFIX
        tests = [(fakes.FakeResource(name=prefix + "abc"), True),
                 (fakes.FakeResource(name="another"), False),
                 (fakes.FakeResource(name=prefix[:-3] + "abc"), False)]

        for resource, is_valid in tests:
            self.assertEqual(utils.is_temporary(resource), is_valid)
 def setUp(self):
     super(EC2FlavorResourceTypeTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.tiny",
                                                           id="1"))
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.nano",
                                                           id="2"))
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.large",
                                                           id="3"))
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.xlarge",
                                                           id="3"))
Exemple #6
0
 def setUp(self):
     super(FlavorTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.tiny",
                                                           id="1"))
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.nano",
                                                           id="42"))
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.large",
                                                           id="44"))
     self.clients.nova().flavors._cache(fakes.FakeResource(name="m1.large",
                                                           id="45"))
Exemple #7
0
 def setUp(self):
     super(GlanceImageTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     image1 = fakes.FakeResource(name="cirros-0.3.4-uec", id="100")
     self.clients.glance().images._cache(image1)
     image2 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk", id="101")
     self.clients.glance().images._cache(image2)
     image3 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                 id="102")
     self.clients.glance().images._cache(image3)
     image4 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                 id="103")
     self.clients.glance().images._cache(image4)
Exemple #8
0
    def setUp(self):
        super(EC2ImageTestCase, self).setUp()
        self.clients = fakes.FakeClients()
        image1 = fakes.FakeResource(name="cirros-0.3.4-uec", id="100")
        self.clients.glance().images._cache(image1)
        image2 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk", id="102")
        self.clients.glance().images._cache(image2)
        image3 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                    id="102")
        self.clients.glance().images._cache(image3)
        image4 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                    id="103")
        self.clients.glance().images._cache(image4)

        ec2_image1 = fakes.FakeResource(name="cirros-0.3.4-uec", id="200")
        ec2_image2 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk",
                                        id="201")
        ec2_image3 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                        id="202")
        ec2_image4 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                        id="203")

        self.clients.ec2().get_all_images = mock.Mock(
            return_value=[ec2_image1, ec2_image2, ec2_image3, ec2_image4])

        self.type_cls = types.EC2Image(
            context={"admin": {
                "credential": mock.Mock()
            }})
        self.type_cls._clients = self.clients
Exemple #9
0
    def test__find_resource(self):
        @types.configure(name=self.id())
        class FooType(types.OpenStackResourceType):
            def pre_process(self, resource_spec, config):
                pass

        ftype = FooType({})

        resources = dict((name, fakes.FakeResource(name=name))
                         for name in ["Fake1", "Fake2", "Fake3"])
        # case #1: 100% name match
        self.assertEqual(
            resources["Fake2"],
            ftype._find_resource({"name": "Fake2"}, resources.values()))

        # case #2: pick the latest one
        self.assertEqual(
            resources["Fake3"],
            ftype._find_resource({"name": "Fake"}, resources.values()))

        # case #3: regex one match
        self.assertEqual(
            resources["Fake2"],
            ftype._find_resource({"regex": ".ake2"}, resources.values()))

        # case #4: regex, pick the latest one
        self.assertEqual(
            resources["Fake3"],
            ftype._find_resource({"regex": "Fake"}, resources.values()))
Exemple #10
0
 def setUp(self):
     super(EC2FlavorTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.clients.nova().flavors._cache(
         fakes.FakeResource(name="m1.tiny", id="1"))
     self.clients.nova().flavors._cache(
         fakes.FakeResource(name="m1.nano", id="2"))
     self.clients.nova().flavors._cache(
         fakes.FakeResource(name="m1.large", id="3"))
     self.clients.nova().flavors._cache(
         fakes.FakeResource(name="m1.xlarge", id="3"))
     self.type_cls = types.EC2Flavor(
         context={"admin": {
             "credential": mock.Mock()
         }})
     self.type_cls._clients = self.clients
Exemple #11
0
 def test_get_from_manager_in_deleted_state(self):
     get_from_manager = utils.get_from_manager()
     manager = fakes.FakeManager()
     resource = fakes.FakeResource(manager=manager, status="DELETED")
     manager._cache(resource)
     self.assertRaises(exceptions.GetResourceNotFound, get_from_manager,
                       resource)
Exemple #12
0
 def test_get_from_manager_in_error_state(self):
     get_from_manager = utils.get_from_manager()
     manager = fakes.FakeManager()
     resource = fakes.FakeResource(manager=manager, status="ERROR")
     manager._cache(resource)
     self.assertRaises(exceptions.GetResourceFailure, get_from_manager,
                       resource)
Exemple #13
0
    def setUp(self):
        super(WaitForTestCase, self).setUp()

        self.resource = fakes.FakeResource()
        self.load_secs = 0.01
        self.fake_checker_delayed = self.get_fake_checker_delayed(
            seconds=self.load_secs)
Exemple #14
0
    def test_user_delete(self):
        resource = fakes.FakeResource()
        resource.delete = mock.MagicMock()

        scenario = utils.KeystoneScenario()
        scenario._resource_delete(resource)
        resource.delete.assert_called_once_with()
        self._test_atomic_action_timer(scenario.atomic_actions(),
                                       'keystone.delete_resource')
    def test_user_delete(self):
        resource = fakes.FakeResource()
        resource.delete = mock.MagicMock()

        scenario = utils.KeystoneScenario(self.context)
        scenario._resource_delete(resource)
        resource.delete.assert_called_once_with()
        r = "keystone.delete_%s" % resource.__class__.__name__.lower()
        self._test_atomic_action_timer(scenario.atomic_actions(), r)
Exemple #16
0
 def setUp(self):
     super(GlanceImageTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     image1 = fakes.FakeResource(name="cirros-0.3.4-uec", id="100")
     self.clients.glance().images._cache(image1)
     image2 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk", id="101")
     self.clients.glance().images._cache(image2)
     image3 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                 id="102")
     self.clients.glance().images._cache(image3)
     image4 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                 id="103")
     self.clients.glance().images._cache(image4)
     self.type_cls = types.GlanceImage(
         context={"admin": {
             "credential": mock.Mock()
         }})
     self.type_cls._clients = self.clients
Exemple #17
0
 def setUp(self):
     super(WatcherGoalTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.goal = self.clients.watcher().goal._cache(
         fakes.FakeResource(name="dummy", id="1"))
     self.type_cls = types.WatcherGoal(
         context={"admin": {
             "credential": mock.Mock()
         }})
     self.type_cls._clients = self.clients
Exemple #18
0
    def test__update_resource_with_http_exception(self):
        manager = mock.MagicMock()
        resource = fakes.FakeResource(manager=manager, status="ERROR")

        class HTTPException(Exception):
            pass

        manager.get = mock.MagicMock(side_effect=HTTPException)
        self.assertRaises(exceptions.GetResourceFailure,
                          self.service._update_resource, resource)
Exemple #19
0
    def test__update_resource_with_not_found(self):
        manager = mock.MagicMock()
        resource = fakes.FakeResource(manager=manager, status="ERROR")

        class NotFoundException(Exception):
            http_status = 404

        manager.get = mock.MagicMock(side_effect=NotFoundException)
        self.assertRaises(exceptions.GetResourceNotFound,
                          self.service._update_resource, resource)
Exemple #20
0
    def test_get_from_manager_not_found(self):
        get_from_manager = utils.get_from_manager()
        manager = mock.MagicMock()
        resource = fakes.FakeResource(manager=manager, status="ERROR")

        class NotFoundException(Exception):
            http_status = 404

        manager.get = mock.MagicMock(side_effect=NotFoundException)
        self.assertRaises(exceptions.GetResourceNotFound, get_from_manager,
                          resource)
Exemple #21
0
    def test_get_from_manager_http_exception(self):
        get_from_manager = utils.get_from_manager()
        manager = mock.MagicMock()
        resource = fakes.FakeResource(manager=manager, status="ERROR")

        class HTTPException(Exception):
            pass

        manager.get = mock.MagicMock(side_effect=HTTPException)
        self.assertRaises(exceptions.GetResourceFailure, get_from_manager,
                          resource)
Exemple #22
0
    def setUp(self):
        super(VolumeTypeTestCase, self).setUp()
        cinder = mock.patch("rally_openstack.types.block.BlockStorage")
        self.service = cinder.start().return_value
        self.addCleanup(cinder.stop)

        volume_type1 = fakes.FakeResource(name="lvmdriver-1", id=100)

        self.type_cls = types.VolumeType(
            context={"admin": {
                "credential": mock.Mock()
            }})
        self.service.list_types.return_value = [volume_type1]
    def setUp(self):
        super(EC2ImageResourceTypeTestCase, self).setUp()
        self.clients = fakes.FakeClients()
        image1 = fakes.FakeResource(name="cirros-0.3.4-uec", id="100")
        self.clients.glance().images._cache(image1)
        image2 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk", id="102")
        self.clients.glance().images._cache(image2)
        image3 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                    id="102")
        self.clients.glance().images._cache(image3)
        image4 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                    id="103")
        self.clients.glance().images._cache(image4)

        ec2_image1 = fakes.FakeResource(name="cirros-0.3.4-uec", id="200")
        ec2_image2 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk",
                                        id="201")
        ec2_image3 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                        id="202")
        ec2_image4 = fakes.FakeResource(name="cirros-0.3.4-uec-ramdisk-copy",
                                        id="203")

        self.clients.ec2().get_all_images = mock.Mock(
            return_value=[ec2_image1, ec2_image2, ec2_image3, ec2_image4])
Exemple #24
0
 def test_resource_is(self):
     is_active = utils.resource_is("ACTIVE")
     self.assertEqual(is_active.status_getter, utils.get_status)
     self.assertTrue(is_active(fakes.FakeResource(status="active")))
     self.assertTrue(is_active(fakes.FakeResource(status="aCtIvE")))
     self.assertFalse(is_active(fakes.FakeResource(status="ERROR")))
 def setUp(self):
     super(VolumeTypeResourceTypeTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     volume_type1 = fakes.FakeResource(name="lvmdriver-1", id=100)
     self.clients.cinder().volume_types._cache(volume_type1)
Exemple #26
0
    def test__find_resource_negative(self):
        @types.configure(name=self.id())
        class FooType(types.OpenStackResourceType):
            def pre_process(self, resource_spec, config):
                pass

        ftype = FooType({})
        # case #1: the wrong resource spec
        e = self.assertRaises(exceptions.InvalidScenarioArgument,
                              ftype._find_resource, {}, [])
        self.assertIn("'id', 'name', or 'regex' not found", e.format_message())

        # case #2: two matches for one name
        resources = [
            fakes.FakeResource(name="Fake1"),
            fakes.FakeResource(name="Fake2"),
            fakes.FakeResource(name="Fake1")
        ]
        e = self.assertRaises(exceptions.InvalidScenarioArgument,
                              ftype._find_resource, {"name": "Fake1"},
                              resources)
        self.assertIn("with name 'Fake1' is ambiguous, possible matches",
                      e.format_message())

        # case #3: no matches at all
        resources = [
            fakes.FakeResource(name="Fake1"),
            fakes.FakeResource(name="Fake2"),
            fakes.FakeResource(name="Fake3")
        ]
        e = self.assertRaises(exceptions.InvalidScenarioArgument,
                              ftype._find_resource, {"name": "Foo"}, resources)
        self.assertIn("with pattern 'Foo' not found", e.format_message())

        # case #4: two matches for one name, but 'accurate' is True
        resources = [
            fakes.FakeResource(name="Fake1"),
            fakes.FakeResource(name="Fake2"),
            fakes.FakeResource(name="Fake3")
        ]
        e = self.assertRaises(exceptions.InvalidScenarioArgument,
                              ftype._find_resource, {
                                  "name": "Fake",
                                  "accurate": True
                              }, resources)
        self.assertIn("with name 'Fake' not found", e.format_message())

        # case #5: two matches for one name, but 'accurate' is True
        resources = [
            fakes.FakeResource(name="Fake1"),
            fakes.FakeResource(name="Fake2"),
            fakes.FakeResource(name="Fake3")
        ]
        e = self.assertRaises(exceptions.InvalidScenarioArgument,
                              ftype._find_resource, {
                                  "regex": "Fake",
                                  "accurate": True
                              }, resources)
        self.assertIn("with name 'Fake' is ambiguous, possible matches",
                      e.format_message())
Exemple #27
0
 def test_get_from_manager_with_uuid_field(self):
     get_from_manager = utils.get_from_manager()
     manager = fakes.FakeManager()
     resource = fakes.FakeResource(manager=manager)
     manager._cache(resource)
     self.assertEqual(resource, get_from_manager(resource, id_attr="uuid"))
Exemple #28
0
 def setUp(self):
     super(WatcherGoalTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.goal = self.clients.watcher().goal._cache(
         fakes.FakeResource(name="dummy", id="1"))
Exemple #29
0
 def test_get_from_manager(self):
     get_from_manager = utils.get_from_manager()
     manager = fakes.FakeManager()
     resource = fakes.FakeResource(manager=manager)
     manager._cache(resource)
     self.assertEqual(resource, get_from_manager(resource))
Exemple #30
0
 def setUp(self):
     super(WatcherStrategyTestCase, self).setUp()
     self.clients = fakes.FakeClients()
     self.strategy = self.clients.watcher().strategy._cache(
         fakes.FakeResource(name="dummy", id="1"))