
This patchset is in preparation for a scenario for running a test/benchmark within an instance. Change-Id: I94276237fb5b453b194e58ed00df589a3420a6ed
94 lines
3.9 KiB
Python
94 lines
3.9 KiB
Python
# Copyright 2013: Mirantis Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import mock
|
|
|
|
from rally.benchmark.scenarios.nova import utils
|
|
from rally.benchmark import utils as butils
|
|
from rally import exceptions as rally_exceptions
|
|
from rally import test
|
|
from tests import fakes
|
|
|
|
|
|
class NovaScenarioTestCase(test.TestCase):
|
|
|
|
def setUp(self):
|
|
super(NovaScenarioTestCase, self).setUp()
|
|
|
|
def test_generate_random_name(self):
|
|
for length in [8, 16, 32, 64]:
|
|
name = utils.NovaScenario._generate_random_name(length)
|
|
self.assertEqual(len(name), length)
|
|
self.assertTrue(name.isalpha())
|
|
|
|
def test_failed_server_status(self):
|
|
server_manager = fakes.FakeFailedServerManager()
|
|
self.assertRaises(rally_exceptions.GetResourceFailure,
|
|
butils.get_from_manager(),
|
|
server_manager.create('fails', '1', '2'))
|
|
|
|
@mock.patch("rally.benchmark.scenarios.nova.utils.time.sleep")
|
|
@mock.patch("rally.utils")
|
|
@mock.patch("rally.benchmark.utils.osclients")
|
|
@mock.patch("rally.benchmark.utils.resource_is")
|
|
def test_server_helper_methods(self, mock_ris, mock_osclients,
|
|
mock_rally_utils, mock_sleep):
|
|
|
|
def _is_ready(resource):
|
|
return resource.status == "ACTIVE"
|
|
|
|
mock_ris.return_value = _is_ready
|
|
get_from_mgr = butils.get_from_manager()
|
|
|
|
fc = fakes.FakeClients()
|
|
mock_osclients.Clients.return_value = fc
|
|
fake_nova = fakes.FakeNovaClient()
|
|
fc.get_nova_client = lambda: fake_nova
|
|
fsm = fakes.FakeServerManager(fake_nova.images)
|
|
fake_server = fsm.create("s1", "i1", 1)
|
|
fsm.create = lambda name, iid, fid, **kwargs: fake_server
|
|
fake_nova.servers = fsm
|
|
fake_image_id = fsm.create_image(fake_server, 'img')
|
|
fake_image = fsm.images.get(fake_image_id)
|
|
fsm.create_image = lambda svr, name: fake_image.id
|
|
temp_keys = ["username", "password", "tenant_name", "uri"]
|
|
users_endpoints = [dict(zip(temp_keys, temp_keys))]
|
|
utils.NovaScenario._clients = butils.\
|
|
create_openstack_clients(users_endpoints, temp_keys)[0]
|
|
utils.utils = mock_rally_utils
|
|
utils.bench_utils.get_from_manager = lambda: get_from_mgr
|
|
|
|
utils.NovaScenario._boot_server("s1", "i1", 1)
|
|
utils.NovaScenario._create_image(fake_server)
|
|
utils.NovaScenario._suspend_server(fake_server)
|
|
utils.NovaScenario._delete_server(fake_server)
|
|
|
|
expected = [
|
|
mock.call.wait_for(fake_server, is_ready=_is_ready,
|
|
update_resource=butils.get_from_manager(),
|
|
check_interval=3, timeout=600),
|
|
mock.call.wait_for(fake_image, is_ready=_is_ready,
|
|
update_resource=butils.get_from_manager(),
|
|
check_interval=3, timeout=600),
|
|
mock.call.wait_for(fake_server, is_ready=_is_ready,
|
|
update_resource=butils.get_from_manager(),
|
|
check_interval=3, timeout=600),
|
|
mock.call.wait_for(fake_server, is_ready=butils.is_none,
|
|
update_resource=butils.get_from_manager(),
|
|
check_interval=3, timeout=600)
|
|
]
|
|
|
|
self.assertEqual(expected, mock_rally_utils.mock_calls)
|