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), ])
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"))
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"))
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"))
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)
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
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()))
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
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)
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)
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)
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)
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
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
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)
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)
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)
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)
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])
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)
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())
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"))
def setUp(self): super(WatcherGoalTestCase, self).setUp() self.clients = fakes.FakeClients() self.goal = self.clients.watcher().goal._cache( fakes.FakeResource(name="dummy", id="1"))
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))
def setUp(self): super(WatcherStrategyTestCase, self).setUp() self.clients = fakes.FakeClients() self.strategy = self.clients.watcher().strategy._cache( fakes.FakeResource(name="dummy", id="1"))