Exemple #1
0
    def test__update_quotas_fn(self):
        tenant_id = "fake_tenant"
        quotas = {
            "metadata_items": 10,
            "key_pairs": 10,
            "injected_file_content_bytes": 1024,
            "injected_file_path_bytes": 1024,
            "ram": 5120,
            "instances": 10,
            "injected_files": 10,
            "cores": 10,
        }
        fake_nova = fakes.FakeNovaClient()
        fake_nova.quotas.update = mock.MagicMock(return_value=quotas)
        fake_clients = fakes.FakeClients()
        fake_clients._nova = fake_nova
        scenario = utils.QuotasScenario(admin_clients=fake_clients)
        scenario._generate_quota_values = mock.MagicMock(return_value=quotas)

        mock_quota = mock.Mock(return_value=quotas)

        result = scenario._update_quotas("nova",
                                         tenant_id,
                                         quota_update_fn=mock_quota)

        self.assertEqual(quotas, result)
        self._test_atomic_action_timer(scenario.atomic_actions(),
                                       "quotas.update_quotas")
Exemple #2
0
    def test__update_quotas(self):
        tenant_id = 'fake_tenant'
        quotas = {
            'metadata_items': 10,
            'key_pairs': 10,
            'injected_file_content_bytes': 1024,
            'injected_file_path_bytes': 1024,
            'ram': 5120,
            'instances': 10,
            'injected_files': 10,
            'cores': 10,
        }
        fake_nova = fakes.FakeNovaClient()
        fake_nova.quotas.update = mock.MagicMock(return_value=quotas)
        fake_clients = fakes.FakeClients()
        fake_clients._nova = fake_nova
        scenario = utils.QuotasScenario(admin_clients=fake_clients)
        scenario._generate_quota_values = mock.MagicMock(return_value=quotas)

        result = scenario._update_quotas('nova', tenant_id)

        self.assertEqual(quotas, result)
        fake_nova.quotas.update.assert_called_once_with(tenant_id, **quotas)
        self._test_atomic_action_timer(scenario.atomic_actions(),
                                       'quotas.update_quotas')
    def test_create_and_list_keypairs(self):

        fake_nova_client = fakes.FakeNovaClient()
        fake_nova_client.keypairs.create("keypair")
        fake_keypair = list(fake_nova_client.keypairs.cache.values())[0]

        scenario = keypairs.CreateAndListKeypairs(self.context)
        scenario._create_keypair = mock.MagicMock()
        scenario._list_keypairs = mock.MagicMock()

        scenario._list_keypairs.return_value = [fake_keypair] * 3
        # Positive case:
        scenario._create_keypair.return_value = fake_keypair.id
        scenario.run(fakearg="fakearg")

        scenario._create_keypair.assert_called_once_with(fakearg="fakearg")
        scenario._list_keypairs.assert_called_once_with()

        # Negative case1: keypair isn't created
        scenario._create_keypair.return_value = None
        self.assertRaises(exceptions.RallyAssertionError,
                          scenario.run,
                          fakearg="fakearg")
        scenario._create_keypair.assert_called_with(fakearg="fakearg")

        # Negative case2: new keypair not in the list of keypairs
        scenario._create_keypair.return_value = "fake_keypair"
        self.assertRaises(exceptions.RallyAssertionError,
                          scenario.run,
                          fakearg="fakearg")
        scenario._create_keypair.assert_called_with(fakearg="fakearg")
        scenario._list_keypairs.assert_called_with()
Exemple #4
0
 def test_nova(self):
     fake_nova = fakes.FakeNovaClient()
     mock_nova = mock.MagicMock()
     mock_nova.client.Client.return_value = fake_nova
     self.assertNotIn("nova", self.clients.cache)
     with mock.patch.dict("sys.modules", {"novaclient": mock_nova}):
         client = self.clients.nova()
         self.assertEqual(fake_nova, client)
         self.service_catalog.url_for.assert_called_once_with(
             service_type="compute",
             endpoint_type=consts.EndpointType.PUBLIC,
             region_name=self.credential.region_name)
         mock_nova.client.Client.assert_called_once_with(
             "2",
             auth_token=self.fake_keystone.auth_token,
             http_log_debug=False,
             timeout=cfg.CONF.openstack_client_http_timeout,
             insecure=False,
             cacert=None,
             username=self.credential.username,
             api_key=self.credential.password,
             project_id=self.credential.tenant_name,
             auth_url=self.credential.auth_url)
         client.set_management_url.assert_called_once_with(
             self.service_catalog.url_for.return_value)
         self.assertEqual(fake_nova, self.clients.cache["nova"])
Exemple #5
0
    def _prepare_boot(self, mock_osclients, nic=None, assert_nic=False):
        fake_server = mock.MagicMock()

        fc = fakes.FakeClients()
        mock_osclients.Clients.return_value = fc
        nova = fakes.FakeNovaClient()
        fc.nova = lambda: nova

        user_endpoint = objects.Endpoint("url", "user", "password", "tenant")
        clients = osclients.Clients(user_endpoint)
        scenario = servers.NovaServers(clients=clients)

        scenario._boot_server = mock.MagicMock(return_value=fake_server)
        scenario._generate_random_name = mock.MagicMock(return_value="name")

        kwargs = {"fakearg": "f"}
        expected_kwargs = {"fakearg": "f"}

        assert_nic = nic or assert_nic
        if nic:
            kwargs["nics"] = nic
        if assert_nic:
            nova.networks.create("net-1")
            expected_kwargs["nics"] = nic or [{"net-id": "net-2"}]

        print(kwargs)
        print(expected_kwargs)

        return scenario, kwargs, expected_kwargs
Exemple #6
0
 def test_create_image_and_boot_instances(self,
                                          mock_osclients,
                                          mock_create_image,
                                          mock_boot_servers,
                                          mock_random_name):
     glance_scenario = images.GlanceImages()
     nova_scenario = servers.NovaServers()
     fc = fakes.FakeClients()
     mock_osclients.Clients.return_value = fc
     fake_glance = fakes.FakeGlanceClient()
     fc.glance = lambda: fake_glance
     fake_nova = fakes.FakeNovaClient()
     fc.nova = lambda: fake_nova
     user_endpoint = endpoint.Endpoint("url", "user", "password", "tenant")
     nova_scenario._clients = osclients.Clients(user_endpoint)
     fake_image = fakes.FakeImage()
     fake_servers = [object() for i in range(5)]
     mock_create_image.return_value = fake_image
     mock_boot_servers.return_value = fake_servers
     mock_random_name.return_value = "random_name"
     kwargs = {'fakearg': 'f'}
     with mock.patch("rally.benchmark.scenarios.glance.utils.time.sleep"):
         glance_scenario.create_image_and_boot_instances("cf", "url",
                                                         "df", "fid",
                                                         5, **kwargs)
         mock_create_image.assert_called_once_with("random_name", "cf",
                                                   "url", "df", **kwargs)
         mock_boot_servers.assert_called_once_with("random_name",
                                                   "image-id-0",
                                                   "fid", 5, **kwargs)
Exemple #7
0
 def setUp(self):
     super(ShowCommandsTestCase, self).setUp()
     self.show = show.ShowCommands()
     self.fake_endpoint = {"username": "******",
                           "password": "******",
                           "tenant_name": "fake_tenant_name",
                           "auth_url": "http://fake.auth.url"}
     self.fake_deployment_id = "7f6e88e0-897e-45c0-947c-595ce2437bee"
     self.fake_clients = fakes.FakeClients()
     self.fake_glance_client = fakes.FakeGlanceClient()
     self.fake_nova_client = fakes.FakeNovaClient()
Exemple #8
0
    def test__delete_quotas(self):
        tenant_id = "fake_tenant"
        fake_nova = fakes.FakeNovaClient()
        fake_nova.quotas.delete = mock.MagicMock()
        fake_clients = fakes.FakeClients()
        fake_clients._nova = fake_nova
        scenario = utils.QuotasScenario(admin_clients=fake_clients)

        scenario._delete_quotas("nova", tenant_id)

        fake_nova.quotas.delete.assert_called_once_with(tenant_id)
        self._test_atomic_action_timer(scenario.atomic_actions(),
                                       "quotas.delete_quotas")
Exemple #9
0
 def setUp(self):
     super(ShowCommandsTestCase, self).setUp()
     self.show = show.ShowCommands()
     self.fake_endpoint = {
         'username': '******',
         'password': '******',
         'tenant_name': 'fake_tenant_name',
         'auth_url': 'http://fake.auth.url'
     }
     self.fake_deploy_id = '7f6e88e0-897e-45c0-947c-595ce2437bee'
     self.fake_clients = fakes.FakeClients()
     self.fake_glance_client = fakes.FakeGlanceClient()
     self.fake_nova_client = fakes.FakeNovaClient()
Exemple #10
0
    def test_prep_ssh_sec_group(self, mock_osclients):
        fake_nova = fakes.FakeNovaClient()
        self.assertEqual(len(fake_nova.security_groups.list()), 1)
        mock_cl = mock.MagicMock()
        mock_cl.nova.return_value = fake_nova
        mock_osclients.return_value = mock_cl

        secgroup._prepare_open_secgroup('endpoint')

        self.assertEqual(len(fake_nova.security_groups.list()), 2)
        self.assertTrue(secgroup.SSH_GROUP_NAME in
                        [sg.name for sg in fake_nova.security_groups.list()])

        # run prep again, check that another security group is not created
        secgroup._prepare_open_secgroup('endpoint')
        self.assertEqual(len(fake_nova.security_groups.list()), 2)
Exemple #11
0
    def test__prepare_open_secgroup(self, mock_osclients):
        fake_nova = fakes.FakeNovaClient()
        self.assertEqual(len(fake_nova.security_groups.list()), 1)
        mock_cl = mock.MagicMock()
        mock_cl.nova.return_value = fake_nova
        mock_osclients.return_value = mock_cl

        ret = secgroup._prepare_open_secgroup("endpoint", self.secgroup_name)
        self.assertEqual(self.secgroup_name, ret["name"])

        self.assertEqual(2, len(fake_nova.security_groups.list()))
        self.assertIn(self.secgroup_name,
                      [sg.name for sg in fake_nova.security_groups.list()])

        # run prep again, check that another security group is not created
        secgroup._prepare_open_secgroup("endpoint", self.secgroup_name)
        self.assertEqual(2, len(fake_nova.security_groups.list()))
Exemple #12
0
    def test__prepare_open_secgroup_rules(self, mock_osclients):
        fake_nova = fakes.FakeNovaClient()

        # NOTE(hughsaunders) Default security group is precreated
        self.assertEqual(1, len(fake_nova.security_groups.list()))
        mock_cl = mock.MagicMock()
        mock_cl.nova.return_value = fake_nova
        mock_osclients.return_value = mock_cl

        secgroup._prepare_open_secgroup("endpoint", self.secgroup_name)

        self.assertEqual(2, len(fake_nova.security_groups.list()))
        rally_open = fake_nova.security_groups.find(self.secgroup_name)
        self.assertEqual(3, len(rally_open.rules))

        # run prep again, check that extra rules are not created
        secgroup._prepare_open_secgroup("endpoint", self.secgroup_name)
        rally_open = fake_nova.security_groups.find(self.secgroup_name)
        self.assertEqual(3, len(rally_open.rules))
Exemple #13
0
    def test_prep_ssh_sec_group_rules(self, mock_osclients):
        fake_nova = fakes.FakeNovaClient()

        # NOTE(hughsaunders) Default security group is precreated
        self.assertEqual(len(fake_nova.security_groups.list()), 1)
        mock_cl = mock.MagicMock()
        mock_cl.nova.return_value = fake_nova
        mock_osclients.return_value = mock_cl

        secgroup._prepare_open_secgroup('endpoint')

        self.assertEqual(len(fake_nova.security_groups.list()), 2)
        rally_open = fake_nova.security_groups.find(secgroup.SSH_GROUP_NAME)
        self.assertEqual(len(rally_open.rules), 3)

        # run prep again, check that extra rules are not created
        secgroup._prepare_open_secgroup('endpoint')
        rally_open = fake_nova.security_groups.find(secgroup.SSH_GROUP_NAME)
        self.assertEqual(len(rally_open.rules), 3)
Exemple #14
0
    def setUp(self):
        super(ShowCommandsTestCase, self).setUp()
        self.show = show.ShowCommands()
        self.admin_credential = {
            "username": "******",
            "password": "******",
            "tenant_name": "admin",
            "auth_url": "http://fake.auth.url"
        }
        self.user_credentials = {
            "username": "******",
            "password": "******",
            "tenant_name": "user3",
            "auth_url": "http://fake.auth.url"
        }

        self.fake_deployment_id = "7f6e88e0-897e-45c0-947c-595ce2437bee"
        self.fake_clients = fakes.FakeClients()
        self.fake_glance_client = fakes.FakeGlanceClient()
        self.fake_nova_client = fakes.FakeNovaClient()
Exemple #15
0
 def test_nova(self):
     with mock.patch("rally.osclients.nova") as mock_nova:
         fake_nova = fakes.FakeNovaClient()
         mock_nova.Client = mock.MagicMock(return_value=fake_nova)
         self.assertTrue("nova" not in self.clients.cache)
         client = self.clients.nova()
         self.assertEqual(client, fake_nova)
         self.service_catalog.url_for.assert_called_once_with(
             service_type='compute',
             endpoint_type=consts.EndpointType.PUBLIC,
             region_name=self.endpoint.region_name)
         mock_nova.Client.assert_called_once_with(
             "2",
             auth_token=self.fake_keystone.auth_token,
             http_log_debug=False,
             timeout=cfg.CONF.openstack_client_http_timeout,
             insecure=False,
             cacert=None)
         client.set_management_url.assert_called_once_with(
             self.service_catalog.url_for.return_value)
         self.assertEqual(self.clients.cache["nova"], fake_nova)
Exemple #16
0
 def test__boot_server_with_network(self, mock_clients):
     mock_clients("nova").servers.create.return_value = self.server
     nova = fakes.FakeNovaClient()
     networks = [
         nova.networks.create('net-1'),
         nova.networks.create('net-2')
     ]
     mock_clients("nova").networks.list.return_value = networks
     nova_scenario = utils.NovaScenario(context={})
     return_server = nova_scenario._boot_server('server_name',
                                                'image_id',
                                                'flavor_id',
                                                auto_assign_nic=True)
     self._test_assert_called_once_with(
         self.wait_for.mock, self.server,
         CONF.benchmark.nova_server_boot_poll_interval,
         CONF.benchmark.nova_server_boot_timeout)
     self.res_is.mock.assert_has_calls(mock.call('ACTIVE'))
     self.assertEqual(self.wait_for.mock(), return_server)
     self._test_atomic_action_timer(nova_scenario.atomic_actions(),
                                    'nova.boot_server')
Exemple #17
0
 def test_nova(self, mock_nova__get_endpoint):
     fake_nova = fakes.FakeNovaClient()
     mock_nova__get_endpoint.return_value = "http://fake.to:2/fake"
     mock_nova = mock.MagicMock()
     mock_nova.client.Client.return_value = fake_nova
     mock_keystoneauth1 = mock.MagicMock()
     self.assertNotIn("nova", self.clients.cache)
     with mock.patch.dict("sys.modules",
                          {"novaclient": mock_nova,
                           "keystoneauth1": mock_keystoneauth1}):
         mock_keystoneauth1.discover.Discover.return_value = (
             mock.Mock(version_data=mock.Mock(return_value=[
                 {"version": (2, 0)}]))
         )
         client = self.clients.nova()
         self.assertEqual(fake_nova, client)
         kw = {
             "version": "2",
             "session": mock_keystoneauth1.session.Session(),
             "endpoint_override": mock_nova__get_endpoint.return_value}
         mock_nova.client.Client.assert_called_once_with(**kw)
         self.assertEqual(fake_nova, self.clients.cache["nova"])
Exemple #18
0
 def test_boot_server_no_nics(self, mock_osclients, mock_nova_clients):
     mock_nova_clients.return_value = fakes.FakeNovaClient()
     self._verify_boot_server(mock_osclients=mock_osclients,
                              nic=None,
                              assert_nic=False)