Migrate scenario tests ssh-auth-strategy
Migrate the scenario tests to the new ssh-auth-strategy. Partially implements: blueprint ssh-auth-strategy Change-Id: I50759d32e47d975ec64ca129a13b2ae4459917e4
This commit is contained in:
parent
ee627bee90
commit
5fc14522c6
@ -23,7 +23,7 @@ import six
|
||||
from tempest_lib.common.utils import misc as misc_utils
|
||||
from tempest_lib import exceptions as lib_exc
|
||||
|
||||
from tempest.common import fixed_network
|
||||
from tempest.common import compute
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.common.utils.linux import remote_client
|
||||
from tempest.common import waiters
|
||||
@ -158,52 +158,100 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||
return body['keypair']
|
||||
|
||||
def create_server(self, name=None, image=None, flavor=None,
|
||||
wait_on_boot=True, wait_on_delete=True,
|
||||
create_kwargs=None):
|
||||
"""Creates VM instance.
|
||||
validatable=False, wait_until=None,
|
||||
wait_on_delete=True, clients=None, **kwargs):
|
||||
"""Wrapper utility that returns a test server.
|
||||
|
||||
@param image: image from which to create the instance
|
||||
@param wait_on_boot: wait for status ACTIVE before continue
|
||||
@param wait_on_delete: force synchronous delete on cleanup
|
||||
@param create_kwargs: additional details for instance creation
|
||||
@return: server dict
|
||||
This wrapper utility calls the common create test server and
|
||||
returns a test server. The purpose of this wrapper is to minimize
|
||||
the impact on the code of the tests already using this
|
||||
function.
|
||||
"""
|
||||
if name is None:
|
||||
name = data_utils.rand_name(self.__class__.__name__)
|
||||
if image is None:
|
||||
image = CONF.compute.image_ref
|
||||
if flavor is None:
|
||||
flavor = CONF.compute.flavor_ref
|
||||
if create_kwargs is None:
|
||||
create_kwargs = {}
|
||||
network = self.get_tenant_network()
|
||||
create_kwargs = fixed_network.set_networks_kwarg(network,
|
||||
create_kwargs)
|
||||
|
||||
LOG.debug("Creating a server (name: %s, image: %s, flavor: %s)",
|
||||
name, image, flavor)
|
||||
server = self.servers_client.create_server(name=name, imageRef=image,
|
||||
flavorRef=flavor,
|
||||
**create_kwargs)['server']
|
||||
# NOTE(jlanoux): As a first step, ssh checks in the scenario
|
||||
# tests need to be run regardless of the run_validation and
|
||||
# validatable parameters and thus until the ssh validation job
|
||||
# becomes voting in CI. The test resources management and IP
|
||||
# association are taken care of in the scenario tests.
|
||||
# Therefore, the validatable parameter is set to false in all
|
||||
# those tests. In this way create_server just return a standard
|
||||
# server and the scenario tests always perform ssh checks.
|
||||
|
||||
# Needed for the cross_tenant_traffic test:
|
||||
if clients is None:
|
||||
clients = self.manager
|
||||
|
||||
vnic_type = CONF.network.port_vnic_type
|
||||
|
||||
# If vnic_type is configured create port for
|
||||
# every network
|
||||
if vnic_type:
|
||||
ports = []
|
||||
networks = []
|
||||
create_port_body = {'binding:vnic_type': vnic_type,
|
||||
'namestart': 'port-smoke'}
|
||||
if kwargs:
|
||||
# Convert security group names to security group ids
|
||||
# to pass to create_port
|
||||
if 'security_groups' in kwargs:
|
||||
security_groups =\
|
||||
clients.network_client.list_security_groups(
|
||||
).get('security_groups')
|
||||
sec_dict = dict([(s['name'], s['id'])
|
||||
for s in security_groups])
|
||||
|
||||
sec_groups_names = [s['name'] for s in kwargs.pop(
|
||||
'security_groups')]
|
||||
security_groups_ids = [sec_dict[s]
|
||||
for s in sec_groups_names]
|
||||
|
||||
if security_groups_ids:
|
||||
create_port_body[
|
||||
'security_groups'] = security_groups_ids
|
||||
networks = kwargs.pop('networks')
|
||||
|
||||
# If there are no networks passed to us we look up
|
||||
# for the tenant's private networks and create a port
|
||||
# if there is only one private network. The same behaviour
|
||||
# as we would expect when passing the call to the clients
|
||||
# with no networks
|
||||
if not networks:
|
||||
networks = clients.networks_client.list_networks(
|
||||
filters={'router:external': False})
|
||||
self.assertEqual(1, len(networks),
|
||||
"There is more than one"
|
||||
" network for the tenant")
|
||||
for net in networks:
|
||||
net_id = net['uuid']
|
||||
port = self._create_port(network_id=net_id,
|
||||
client=clients.ports_client,
|
||||
**create_port_body)
|
||||
ports.append({'port': port.id})
|
||||
if ports:
|
||||
kwargs['networks'] = ports
|
||||
self.ports = ports
|
||||
|
||||
tenant_network = self.get_tenant_network()
|
||||
|
||||
body, servers = compute.create_test_server(
|
||||
clients,
|
||||
tenant_network=tenant_network,
|
||||
wait_until=wait_until,
|
||||
**kwargs)
|
||||
|
||||
# TODO(jlanoux) Move wait_on_delete in compute.py
|
||||
if wait_on_delete:
|
||||
self.addCleanup(waiters.wait_for_server_termination,
|
||||
self.servers_client,
|
||||
server['id'])
|
||||
clients.servers_client,
|
||||
body['id'])
|
||||
|
||||
self.addCleanup_with_wait(
|
||||
waiter_callable=waiters.wait_for_server_termination,
|
||||
thing_id=server['id'], thing_id_param='server_id',
|
||||
thing_id=body['id'], thing_id_param='server_id',
|
||||
cleanup_callable=self.delete_wrapper,
|
||||
cleanup_args=[self.servers_client.delete_server, server['id']],
|
||||
waiter_client=self.servers_client)
|
||||
if wait_on_boot:
|
||||
waiters.wait_for_server_status(self.servers_client,
|
||||
server_id=server['id'],
|
||||
status='ACTIVE')
|
||||
# The instance retrieved on creation is missing network
|
||||
# details, necessitating retrieval after it becomes active to
|
||||
# ensure correct details.
|
||||
server = self.servers_client.show_server(server['id'])['server']
|
||||
self.assertEqual(server['name'], name)
|
||||
cleanup_args=[clients.servers_client.delete_server, body['id']],
|
||||
waiter_client=clients.servers_client)
|
||||
server = clients.servers_client.show_server(body['id'])['server']
|
||||
return server
|
||||
|
||||
def create_volume(self, size=None, name=None, snapshot_id=None,
|
||||
@ -321,7 +369,7 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||
username = CONF.scenario.ssh_user
|
||||
# Set this with 'keypair' or others to log in with keypair or
|
||||
# username/password.
|
||||
if CONF.compute.ssh_auth_method == 'keypair':
|
||||
if CONF.validation.auth_method == 'keypair':
|
||||
password = None
|
||||
if private_key is None:
|
||||
private_key = self.keypair['private_key']
|
||||
@ -491,7 +539,7 @@ class ScenarioTest(tempest.test.BaseTestCase):
|
||||
|
||||
def ping_ip_address(self, ip_address, should_succeed=True,
|
||||
ping_timeout=None):
|
||||
timeout = ping_timeout or CONF.compute.ping_timeout
|
||||
timeout = ping_timeout or CONF.validation.ping_timeout
|
||||
cmd = ['ping', '-c1', '-w1', ip_address]
|
||||
|
||||
def ping():
|
||||
@ -884,7 +932,7 @@ class NetworkScenarioTest(ScenarioTest):
|
||||
return should_succeed
|
||||
|
||||
return tempest.test.call_until_true(ping_remote,
|
||||
CONF.compute.ping_timeout,
|
||||
CONF.validation.ping_timeout,
|
||||
1)
|
||||
|
||||
def _create_security_group(self, client=None, tenant_id=None,
|
||||
@ -1135,71 +1183,6 @@ class NetworkScenarioTest(ScenarioTest):
|
||||
subnet.add_to_router(router.id)
|
||||
return network, subnet, router
|
||||
|
||||
def create_server(self, name=None, image=None, flavor=None,
|
||||
wait_on_boot=True, wait_on_delete=True,
|
||||
network_client=None, networks_client=None,
|
||||
ports_client=None, create_kwargs=None):
|
||||
if network_client is None:
|
||||
network_client = self.network_client
|
||||
if networks_client is None:
|
||||
networks_client = self.networks_client
|
||||
if ports_client is None:
|
||||
ports_client = self.ports_client
|
||||
|
||||
vnic_type = CONF.network.port_vnic_type
|
||||
|
||||
# If vnic_type is configured create port for
|
||||
# every network
|
||||
if vnic_type:
|
||||
ports = []
|
||||
networks = []
|
||||
create_port_body = {'binding:vnic_type': vnic_type,
|
||||
'namestart': 'port-smoke'}
|
||||
if create_kwargs:
|
||||
# Convert security group names to security group ids
|
||||
# to pass to create_port
|
||||
if create_kwargs.get('security_groups'):
|
||||
security_groups = network_client.list_security_groups(
|
||||
).get('security_groups')
|
||||
sec_dict = dict([(s['name'], s['id'])
|
||||
for s in security_groups])
|
||||
|
||||
sec_groups_names = [s['name'] for s in create_kwargs.get(
|
||||
'security_groups')]
|
||||
security_groups_ids = [sec_dict[s]
|
||||
for s in sec_groups_names]
|
||||
|
||||
if security_groups_ids:
|
||||
create_port_body[
|
||||
'security_groups'] = security_groups_ids
|
||||
networks = create_kwargs.get('networks')
|
||||
|
||||
# If there are no networks passed to us we look up
|
||||
# for the tenant's private networks and create a port
|
||||
# if there is only one private network. The same behaviour
|
||||
# as we would expect when passing the call to the clients
|
||||
# with no networks
|
||||
if not networks:
|
||||
networks = networks_client.list_networks(filters={
|
||||
'router:external': False})
|
||||
self.assertEqual(1, len(networks),
|
||||
"There is more than one"
|
||||
" network for the tenant")
|
||||
for net in networks:
|
||||
net_id = net['uuid']
|
||||
port = self._create_port(network_id=net_id,
|
||||
client=ports_client,
|
||||
**create_port_body)
|
||||
ports.append({'port': port.id})
|
||||
if ports:
|
||||
create_kwargs['networks'] = ports
|
||||
self.ports = ports
|
||||
|
||||
return super(NetworkScenarioTest, self).create_server(
|
||||
name=name, image=image, flavor=flavor,
|
||||
wait_on_boot=wait_on_boot, wait_on_delete=wait_on_delete,
|
||||
create_kwargs=create_kwargs)
|
||||
|
||||
|
||||
# power/provision states as of icehouse
|
||||
class BaremetalPowerStates(object):
|
||||
@ -1322,11 +1305,8 @@ class BaremetalScenarioTest(ScenarioTest):
|
||||
dest.validate_authentication()
|
||||
|
||||
def boot_instance(self):
|
||||
create_kwargs = {
|
||||
'key_name': self.keypair['name']
|
||||
}
|
||||
self.instance = self.create_server(
|
||||
wait_on_boot=False, create_kwargs=create_kwargs)
|
||||
key_name=self.keypair['name'])
|
||||
|
||||
self.wait_node(self.instance['id'])
|
||||
self.node = self.get_node(instance_id=self.instance['id'])
|
||||
|
@ -113,7 +113,7 @@ class BaremetalBasicOps(manager.BaremetalScenarioTest):
|
||||
self.boot_instance()
|
||||
self.validate_ports()
|
||||
self.verify_connectivity()
|
||||
if CONF.compute.ssh_connect_method == 'floating':
|
||||
if CONF.validation.connect_method == 'floating':
|
||||
floating_ip = self.create_floating_ip(self.instance)['ip']
|
||||
self.verify_connectivity(ip=floating_ip)
|
||||
|
||||
|
@ -45,8 +45,9 @@ class TestEncryptedCinderVolumes(manager.EncryptionScenarioTest):
|
||||
image = self.glance_image_create()
|
||||
keypair = self.create_keypair()
|
||||
|
||||
return self.create_server(image=image,
|
||||
create_kwargs={'key_name': keypair['name']})
|
||||
return self.create_server(image_id=image,
|
||||
key_name=keypair['name'],
|
||||
wait_until='ACTIVE')
|
||||
|
||||
def create_encrypted_volume(self, encryption_provider, volume_type):
|
||||
volume_type = self.create_volume_type(name=volume_type)
|
||||
|
@ -117,9 +117,9 @@ class TestMinimumBasicScenario(manager.ScenarioTest):
|
||||
image = self.glance_image_create()
|
||||
keypair = self.create_keypair()
|
||||
|
||||
create_kwargs = {'key_name': keypair['name']}
|
||||
server = self.create_server(image=image,
|
||||
create_kwargs=create_kwargs)
|
||||
server = self.create_server(image_id=image,
|
||||
key_name=keypair['name'],
|
||||
wait_until='ACTIVE')
|
||||
servers = self.nova_list()
|
||||
self.assertIn(server['id'], [x['id'] for x in servers])
|
||||
|
||||
|
@ -57,16 +57,13 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest):
|
||||
security_group = self._create_security_group()
|
||||
network, subnet, router = self.create_networks()
|
||||
public_network_id = CONF.network.public_network_id
|
||||
create_kwargs = {
|
||||
'networks': [
|
||||
{'uuid': network.id},
|
||||
],
|
||||
'key_name': keypair['name'],
|
||||
'security_groups': [{'name': security_group['name']}],
|
||||
}
|
||||
server_name = data_utils.rand_name('server-smoke')
|
||||
server = self.create_server(name=server_name,
|
||||
create_kwargs=create_kwargs)
|
||||
server = self.create_server(
|
||||
name=server_name,
|
||||
networks=[{'uuid': network.id}],
|
||||
key_name=keypair['name'],
|
||||
security_groups=[{'name': security_group['name']}],
|
||||
wait_until='ACTIVE')
|
||||
floating_ip = self.create_floating_ip(server, public_network_id)
|
||||
# Verify that we can indeed connect to the server before we mess with
|
||||
# it's state
|
||||
|
@ -155,16 +155,16 @@ class TestNetworkBasicOps(manager.NetworkScenarioTest):
|
||||
keypair = self.create_keypair()
|
||||
self.keypairs[keypair['name']] = keypair
|
||||
security_groups = [{'name': self.security_group['name']}]
|
||||
create_kwargs = {
|
||||
'networks': [
|
||||
{'uuid': network.id},
|
||||
],
|
||||
'key_name': keypair['name'],
|
||||
'security_groups': security_groups,
|
||||
}
|
||||
network = {'uuid': network.id}
|
||||
if port_id is not None:
|
||||
create_kwargs['networks'][0]['port'] = port_id
|
||||
server = self.create_server(name=name, create_kwargs=create_kwargs)
|
||||
network['port'] = port_id
|
||||
|
||||
server = self.create_server(
|
||||
name=name,
|
||||
networks=[network],
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_groups,
|
||||
wait_until='ACTIVE')
|
||||
self.servers.append(server)
|
||||
return server
|
||||
|
||||
|
@ -65,9 +65,6 @@ class TestGettingAddress(manager.NetworkScenarioTest):
|
||||
super(TestGettingAddress, self).setUp()
|
||||
self.keypair = self.create_keypair()
|
||||
self.sec_grp = self._create_security_group(tenant_id=self.tenant_id)
|
||||
self.srv_kwargs = {
|
||||
'key_name': self.keypair['name'],
|
||||
'security_groups': [{'name': self.sec_grp['name']}]}
|
||||
|
||||
def prepare_network(self, address6_mode, n_subnets6=1, dualnet=False):
|
||||
"""Prepare network
|
||||
@ -119,11 +116,13 @@ class TestGettingAddress(manager.NetworkScenarioTest):
|
||||
def prepare_server(self, networks=None):
|
||||
username = CONF.compute.image_ssh_user
|
||||
|
||||
create_kwargs = self.srv_kwargs
|
||||
networks = networks or [self.network]
|
||||
create_kwargs['networks'] = [{'uuid': n.id} for n in networks]
|
||||
|
||||
srv = self.create_server(create_kwargs=create_kwargs)
|
||||
srv = self.create_server(
|
||||
key_name=self.keypair['name'],
|
||||
security_groups=[{'name': self.sec_grp['name']}],
|
||||
networks=[{'uuid': n.id} for n in networks],
|
||||
wait_until='ACTIVE')
|
||||
fip = self.create_floating_ip(thing=srv)
|
||||
ips = self.define_server_ips(srv=srv)
|
||||
ssh = self.get_remote_client(
|
||||
@ -181,10 +180,10 @@ class TestGettingAddress(manager.NetworkScenarioTest):
|
||||
guest_has_address, sshv4_2, ips_from_api_2['6'][i])
|
||||
|
||||
self.assertTrue(test.call_until_true(srv1_v6_addr_assigned,
|
||||
CONF.compute.ping_timeout, 1))
|
||||
CONF.validation.ping_timeout, 1))
|
||||
|
||||
self.assertTrue(test.call_until_true(srv2_v6_addr_assigned,
|
||||
CONF.compute.ping_timeout, 1))
|
||||
CONF.validation.ping_timeout, 1))
|
||||
|
||||
self._check_connectivity(sshv4_1, ips_from_api_2['4'])
|
||||
self._check_connectivity(sshv4_2, ips_from_api_1['4'])
|
||||
|
@ -234,23 +234,16 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
||||
|
||||
def _create_server(self, name, tenant, security_groups=None):
|
||||
"""creates a server and assigns to security group"""
|
||||
self._set_compute_context(tenant)
|
||||
if security_groups is None:
|
||||
security_groups = [tenant.security_groups['default']]
|
||||
security_groups_names = [{'name': s['name']} for s in security_groups]
|
||||
create_kwargs = {
|
||||
'networks': [
|
||||
{'uuid': tenant.network.id},
|
||||
],
|
||||
'key_name': tenant.keypair['name'],
|
||||
'security_groups': security_groups_names
|
||||
}
|
||||
server = self.create_server(
|
||||
name=name,
|
||||
network_client=tenant.manager.network_client,
|
||||
networks_client=tenant.manager.networks_client,
|
||||
ports_client=tenant.manager.ports_client,
|
||||
create_kwargs=create_kwargs)
|
||||
networks=[{'uuid': tenant.network.id}],
|
||||
key_name=tenant.keypair['name'],
|
||||
security_groups=security_groups_names,
|
||||
wait_until='ACTIVE',
|
||||
clients=tenant.manager)
|
||||
self.assertEqual(
|
||||
sorted([s['name'] for s in security_groups]),
|
||||
sorted([s['name'] for s in server['security_groups']]))
|
||||
@ -293,10 +286,6 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
||||
subnets_client=tenant.manager.subnets_client)
|
||||
tenant.set_network(network, subnet, router)
|
||||
|
||||
def _set_compute_context(self, tenant):
|
||||
self.servers_client = tenant.manager.servers_client
|
||||
return self.servers_client
|
||||
|
||||
def _deploy_tenant(self, tenant_or_id):
|
||||
"""creates:
|
||||
|
||||
@ -310,7 +299,6 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
||||
tenant = self.tenants[tenant_or_id]
|
||||
else:
|
||||
tenant = tenant_or_id
|
||||
self._set_compute_context(tenant)
|
||||
self._create_tenant_keypairs(tenant)
|
||||
self._create_tenant_network(tenant)
|
||||
self._create_tenant_security_groups(tenant)
|
||||
|
@ -53,7 +53,7 @@ class TestServerAdvancedOps(manager.ScenarioTest):
|
||||
@test.services('compute')
|
||||
def test_resize_server_confirm(self):
|
||||
# We create an instance for use in this test
|
||||
instance = self.create_server()
|
||||
instance = self.create_server(wait_until='ACTIVE')
|
||||
instance_id = instance['id']
|
||||
resize_flavor = CONF.compute.flavor_ref_alt
|
||||
LOG.debug("Resizing instance %s from flavor %s to flavor %s",
|
||||
@ -74,7 +74,7 @@ class TestServerAdvancedOps(manager.ScenarioTest):
|
||||
@test.services('compute')
|
||||
def test_server_sequence_suspend_resume(self):
|
||||
# We create an instance for use in this test
|
||||
instance = self.create_server()
|
||||
instance = self.create_server(wait_until='ACTIVE')
|
||||
instance_id = instance['id']
|
||||
LOG.debug("Suspending instance %s. Current status: %s",
|
||||
instance_id, instance['status'])
|
||||
|
@ -72,20 +72,6 @@ class TestServerBasicOps(manager.ScenarioTest):
|
||||
def add_keypair(self):
|
||||
self.keypair = self.create_keypair()
|
||||
|
||||
def boot_instance(self):
|
||||
# Create server with image and flavor from input scenario
|
||||
security_groups = [{'name': self.security_group['name']}]
|
||||
self.md = {'meta1': 'data1', 'meta2': 'data2', 'metaN': 'dataN'}
|
||||
create_kwargs = {
|
||||
'key_name': self.keypair['name'],
|
||||
'security_groups': security_groups,
|
||||
'config_drive': CONF.compute_feature_enabled.config_drive,
|
||||
'metadata': self.md
|
||||
}
|
||||
self.instance = self.create_server(image=self.image_ref,
|
||||
flavor=self.flavor_ref,
|
||||
create_kwargs=create_kwargs)
|
||||
|
||||
def verify_ssh(self):
|
||||
if self.run_ssh:
|
||||
# Obtain a floating IP
|
||||
@ -139,7 +125,16 @@ class TestServerBasicOps(manager.ScenarioTest):
|
||||
def test_server_basicops(self):
|
||||
self.add_keypair()
|
||||
self.security_group = self._create_security_group()
|
||||
self.boot_instance()
|
||||
security_groups = [{'name': self.security_group['name']}]
|
||||
self.md = {'meta1': 'data1', 'meta2': 'data2', 'metaN': 'dataN'}
|
||||
self.instance = self.create_server(
|
||||
image_id=self.image_ref,
|
||||
flavor=self.flavor_ref,
|
||||
key_name=self.keypair['name'],
|
||||
security_groups=security_groups,
|
||||
config_drive=CONF.compute_feature_enabled.config_drive,
|
||||
metadata=self.md,
|
||||
wait_until='ACTIVE')
|
||||
self.verify_ssh()
|
||||
self.verify_metadata()
|
||||
self.verify_metadata_on_config_drive()
|
||||
|
@ -60,15 +60,11 @@ class TestServerMultinode(manager.ScenarioTest):
|
||||
servers = []
|
||||
|
||||
for host in hosts[:CONF.compute.min_compute_nodes]:
|
||||
create_kwargs = {
|
||||
'availability_zone': '%(zone)s:%(host_name)s' % host
|
||||
}
|
||||
|
||||
# by getting to active state here, this means this has
|
||||
# landed on the host in question.
|
||||
inst = self.create_server(image=CONF.compute.image_ref,
|
||||
flavor=CONF.compute.flavor_ref,
|
||||
create_kwargs=create_kwargs)
|
||||
inst = self.create_server(
|
||||
availability_zone='%(zone)s:%(host_name)s' % host,
|
||||
wait_until='ACTIVE')
|
||||
server = self.servers_client.show_server(inst['id'])['server']
|
||||
servers.append(server)
|
||||
|
||||
|
@ -59,10 +59,6 @@ class TestShelveInstance(manager.ScenarioTest):
|
||||
|
||||
security_group = self._create_security_group()
|
||||
security_groups = [{'name': security_group['name']}]
|
||||
create_kwargs = {
|
||||
'key_name': keypair['name'],
|
||||
'security_groups': security_groups
|
||||
}
|
||||
|
||||
if boot_from_volume:
|
||||
volume = self.create_volume(size=CONF.volume.volume_size,
|
||||
@ -72,11 +68,17 @@ class TestShelveInstance(manager.ScenarioTest):
|
||||
'volume_id': volume['id'],
|
||||
'delete_on_termination': '0'}]
|
||||
|
||||
create_kwargs['block_device_mapping'] = bd_map
|
||||
server = self.create_server(create_kwargs=create_kwargs)
|
||||
server = self.create_server(
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_groups,
|
||||
block_device_mapping=bd_map,
|
||||
wait_until='ACTIVE')
|
||||
else:
|
||||
server = self.create_server(image=CONF.compute.image_ref,
|
||||
create_kwargs=create_kwargs)
|
||||
server = self.create_server(
|
||||
image_id=CONF.compute.image_ref,
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_groups,
|
||||
wait_until='ACTIVE')
|
||||
|
||||
instance_ip = self.get_server_or_ip(server)
|
||||
timestamp = self.create_timestamp(instance_ip,
|
||||
|
@ -36,14 +36,6 @@ class TestSnapshotPattern(manager.ScenarioTest):
|
||||
|
||||
"""
|
||||
|
||||
def _boot_image(self, image_id, keypair, security_group):
|
||||
security_groups = [{'name': security_group['name']}]
|
||||
create_kwargs = {
|
||||
'key_name': keypair['name'],
|
||||
'security_groups': security_groups
|
||||
}
|
||||
return self.create_server(image=image_id, create_kwargs=create_kwargs)
|
||||
|
||||
@test.idempotent_id('608e604b-1d63-4a82-8e3e-91bc665c90b4')
|
||||
@testtools.skipUnless(CONF.compute_feature_enabled.snapshot,
|
||||
'Snapshotting is not available.')
|
||||
@ -54,8 +46,12 @@ class TestSnapshotPattern(manager.ScenarioTest):
|
||||
security_group = self._create_security_group()
|
||||
|
||||
# boot an instance and create a timestamp file in it
|
||||
server = self._boot_image(CONF.compute.image_ref, keypair,
|
||||
security_group)
|
||||
server = self.create_server(
|
||||
image_id=CONF.compute.image_ref,
|
||||
key_name=keypair['name'],
|
||||
security_groups=[{'name': security_group['name']}],
|
||||
wait_until='ACTIVE')
|
||||
|
||||
instance_ip = self.get_server_or_ip(server)
|
||||
timestamp = self.create_timestamp(instance_ip,
|
||||
private_key=keypair['private_key'])
|
||||
@ -64,8 +60,11 @@ class TestSnapshotPattern(manager.ScenarioTest):
|
||||
snapshot_image = self.create_server_snapshot(server=server)
|
||||
|
||||
# boot a second instance from the snapshot
|
||||
server_from_snapshot = self._boot_image(snapshot_image['id'],
|
||||
keypair, security_group)
|
||||
server_from_snapshot = self.create_server(
|
||||
image_id=snapshot_image['id'],
|
||||
key_name=keypair['name'],
|
||||
security_groups=[{'name': security_group['name']}],
|
||||
wait_until='ACTIVE')
|
||||
|
||||
# check the existence of the timestamp file in the second instance
|
||||
server_from_snapshot_ip = self.get_server_or_ip(server_from_snapshot)
|
||||
|
@ -64,14 +64,6 @@ class TestStampPattern(manager.ScenarioTest):
|
||||
self.snapshots_client.wait_for_snapshot_status(volume_snapshot['id'],
|
||||
status)
|
||||
|
||||
def _boot_image(self, image_id, keypair, security_group):
|
||||
security_groups = [{'name': security_group['name']}]
|
||||
create_kwargs = {
|
||||
'key_name': keypair['name'],
|
||||
'security_groups': security_groups
|
||||
}
|
||||
return self.create_server(image=image_id, create_kwargs=create_kwargs)
|
||||
|
||||
def _create_volume_snapshot(self, volume):
|
||||
snapshot_name = data_utils.rand_name('scenario-snapshot')
|
||||
snapshot = self.snapshots_client.create_snapshot(
|
||||
@ -135,8 +127,11 @@ class TestStampPattern(manager.ScenarioTest):
|
||||
|
||||
# boot an instance and create a timestamp file in it
|
||||
volume = self._create_volume()
|
||||
server = self._boot_image(CONF.compute.image_ref, keypair,
|
||||
security_group)
|
||||
server = self.create_server(
|
||||
image_id=CONF.compute.image_ref,
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_group,
|
||||
wait_until='ACTIVE')
|
||||
|
||||
# create and add floating IP to server1
|
||||
ip_for_server = self.get_server_or_ip(server)
|
||||
@ -160,8 +155,10 @@ class TestStampPattern(manager.ScenarioTest):
|
||||
snapshot_id=volume_snapshot['id'])
|
||||
|
||||
# boot second instance from the snapshot(instance2)
|
||||
server_from_snapshot = self._boot_image(snapshot_image['id'],
|
||||
keypair, security_group)
|
||||
server_from_snapshot = self.create_server(
|
||||
image_id=snapshot_image['id'],
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_group)
|
||||
|
||||
# create and add floating IP to server_from_snapshot
|
||||
ip_for_snapshot = self.get_server_or_ip(server_from_snapshot)
|
||||
|
@ -69,7 +69,10 @@ class TestVolumeBootPattern(manager.ScenarioTest):
|
||||
{'name': security_group['name']}]
|
||||
create_kwargs.update(self._get_bdm(
|
||||
vol_id, delete_on_termination=delete_on_termination))
|
||||
return self.create_server(image='', create_kwargs=create_kwargs)
|
||||
return self.create_server(
|
||||
image='',
|
||||
wait_until='ACTIVE',
|
||||
**create_kwargs)
|
||||
|
||||
def _create_snapshot_from_volume(self, vol_id):
|
||||
snap_name = data_utils.rand_name('snapshot')
|
||||
@ -158,7 +161,8 @@ class TestVolumeBootPattern(manager.ScenarioTest):
|
||||
self._delete_server(instance)
|
||||
|
||||
# boot instance from EBS image
|
||||
instance = self.create_server(image=image['id'])
|
||||
instance = self.create_server(
|
||||
image_id=image['id'])
|
||||
# just ensure that instance booted
|
||||
|
||||
# delete instance
|
||||
|
Loading…
Reference in New Issue
Block a user