Merge "Changing create_server to be "non class method""
This commit is contained in:
commit
a91220599b
|
@ -36,24 +36,17 @@ class BaseTempestTestCase(base_api.BaseNetworkTest):
|
|||
def resource_setup(cls):
|
||||
super(BaseTempestTestCase, cls).resource_setup()
|
||||
|
||||
cls.servers = []
|
||||
cls.keypairs = []
|
||||
|
||||
@classmethod
|
||||
def resource_cleanup(cls):
|
||||
for server in cls.servers:
|
||||
cls.manager.servers_client.delete_server(server)
|
||||
waiters.wait_for_server_termination(cls.manager.servers_client,
|
||||
server)
|
||||
|
||||
for keypair in cls.keypairs:
|
||||
cls.manager.keypairs_client.delete_keypair(
|
||||
keypair_name=keypair['name'])
|
||||
|
||||
super(BaseTempestTestCase, cls).resource_cleanup()
|
||||
|
||||
@classmethod
|
||||
def create_server(cls, flavor_ref, image_ref, key_name, networks,
|
||||
def create_server(self, flavor_ref, image_ref, key_name, networks,
|
||||
name=None, security_groups=None):
|
||||
"""Create a server using tempest lib
|
||||
All the parameters are the ones used in Compute API
|
||||
|
@ -78,14 +71,20 @@ class BaseTempestTestCase(base_api.BaseNetworkTest):
|
|||
if not security_groups:
|
||||
security_groups = [{'name': 'default'}]
|
||||
|
||||
server = cls.manager.servers_client.create_server(
|
||||
server = self.manager.servers_client.create_server(
|
||||
name=name,
|
||||
flavorRef=flavor_ref,
|
||||
imageRef=image_ref,
|
||||
key_name=key_name,
|
||||
networks=networks,
|
||||
security_groups=security_groups)
|
||||
cls.servers.append(server['server']['id'])
|
||||
|
||||
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
|
||||
waiters.wait_for_server_termination,
|
||||
self.manager.servers_client, server['server']['id'])
|
||||
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
|
||||
self.manager.servers_client.delete_server,
|
||||
server['server']['id'])
|
||||
return server
|
||||
|
||||
@classmethod
|
||||
|
@ -155,50 +154,48 @@ class BaseTempestTestCase(base_api.BaseNetworkTest):
|
|||
cls.routers.append(router)
|
||||
return router
|
||||
|
||||
@classmethod
|
||||
def create_and_associate_floatingip(cls, port_id):
|
||||
fip = cls.manager.network_client.create_floatingip(
|
||||
def create_and_associate_floatingip(self, port_id):
|
||||
fip = self.manager.network_client.create_floatingip(
|
||||
CONF.network.public_network_id,
|
||||
port_id=port_id)['floatingip']
|
||||
cls.floating_ips.append(fip)
|
||||
self.floating_ips.append(fip)
|
||||
return fip
|
||||
|
||||
@classmethod
|
||||
def setup_network_and_server(cls, router=None, **kwargs):
|
||||
def setup_network_and_server(self, router=None, **kwargs):
|
||||
"""Create network resources and a server.
|
||||
|
||||
Creating a network, subnet, router, keypair, security group
|
||||
and a server.
|
||||
"""
|
||||
cls.network = cls.create_network()
|
||||
LOG.debug("Created network %s", cls.network['name'])
|
||||
cls.subnet = cls.create_subnet(cls.network)
|
||||
LOG.debug("Created subnet %s", cls.subnet['id'])
|
||||
self.network = self.create_network()
|
||||
LOG.debug("Created network %s", self.network['name'])
|
||||
self.subnet = self.create_subnet(self.network)
|
||||
LOG.debug("Created subnet %s", self.subnet['id'])
|
||||
|
||||
secgroup = cls.manager.network_client.create_security_group(
|
||||
secgroup = self.manager.network_client.create_security_group(
|
||||
name=data_utils.rand_name('secgroup-'))
|
||||
LOG.debug("Created security group %s",
|
||||
secgroup['security_group']['name'])
|
||||
cls.security_groups.append(secgroup['security_group'])
|
||||
self.security_groups.append(secgroup['security_group'])
|
||||
if not router:
|
||||
router = cls.create_router_by_client(**kwargs)
|
||||
cls.create_router_interface(router['id'], cls.subnet['id'])
|
||||
cls.keypair = cls.create_keypair()
|
||||
cls.create_loginable_secgroup_rule(
|
||||
router = self.create_router_by_client(**kwargs)
|
||||
self.create_router_interface(router['id'], self.subnet['id'])
|
||||
self.keypair = self.create_keypair()
|
||||
self.create_loginable_secgroup_rule(
|
||||
secgroup_id=secgroup['security_group']['id'])
|
||||
cls.server = cls.create_server(
|
||||
self.server = self.create_server(
|
||||
flavor_ref=CONF.compute.flavor_ref,
|
||||
image_ref=CONF.compute.image_ref,
|
||||
key_name=cls.keypair['name'],
|
||||
networks=[{'uuid': cls.network['id']}],
|
||||
key_name=self.keypair['name'],
|
||||
networks=[{'uuid': self.network['id']}],
|
||||
security_groups=[{'name': secgroup['security_group']['name']}])
|
||||
waiters.wait_for_server_status(cls.manager.servers_client,
|
||||
cls.server['server']['id'],
|
||||
waiters.wait_for_server_status(self.manager.servers_client,
|
||||
self.server['server']['id'],
|
||||
constants.SERVER_STATUS_ACTIVE)
|
||||
port = cls.client.list_ports(network_id=cls.network['id'],
|
||||
device_id=cls.server[
|
||||
port = self.client.list_ports(network_id=self.network['id'],
|
||||
device_id=self.server[
|
||||
'server']['id'])['ports'][0]
|
||||
cls.fip = cls.create_and_associate_floatingip(port['id'])
|
||||
self.fip = self.create_and_associate_floatingip(port['id'])
|
||||
|
||||
def check_connectivity(self, host, ssh_user, ssh_key, servers=None):
|
||||
ssh_client = ssh.Client(host, ssh_user, pkey=ssh_key)
|
||||
|
|
|
@ -51,15 +51,10 @@ class FloatingIpTestCasesMixin(object):
|
|||
cls.create_loginable_secgroup_rule(secgroup_id=cls.secgroup['id'])
|
||||
cls.create_pingable_secgroup_rule(secgroup_id=cls.secgroup['id'])
|
||||
|
||||
cls._src_server = cls._create_server()
|
||||
if cls.same_network:
|
||||
cls._dest_network = cls.network
|
||||
else:
|
||||
cls._dest_network = cls._create_dest_network()
|
||||
cls._dest_server_with_fip = cls._create_server(
|
||||
network=cls._dest_network)
|
||||
cls._dest_server_without_fip = cls._create_server(
|
||||
create_floating_ip=False, network=cls._dest_network)
|
||||
|
||||
@classmethod
|
||||
def _create_dest_network(cls):
|
||||
|
@ -69,28 +64,27 @@ class FloatingIpTestCasesMixin(object):
|
|||
cls.create_router_interface(cls.router['id'], subnet['id'])
|
||||
return network
|
||||
|
||||
@classmethod
|
||||
def _create_server(cls, create_floating_ip=True, network=None):
|
||||
def _create_server(self, create_floating_ip=True, network=None):
|
||||
if network is None:
|
||||
network = cls.network
|
||||
port = cls.create_port(network, security_groups=[cls.secgroup['id']])
|
||||
network = self.network
|
||||
port = self.create_port(network, security_groups=[self.secgroup['id']])
|
||||
if create_floating_ip:
|
||||
fip = cls.create_and_associate_floatingip(port['id'])
|
||||
fip = self.create_and_associate_floatingip(port['id'])
|
||||
else:
|
||||
fip = None
|
||||
server = cls.create_server(
|
||||
server = self.create_server(
|
||||
flavor_ref=CONF.compute.flavor_ref,
|
||||
image_ref=CONF.compute.image_ref,
|
||||
key_name=cls.keypair['name'],
|
||||
key_name=self.keypair['name'],
|
||||
networks=[{'port': port['id']}])['server']
|
||||
waiters.wait_for_server_status(cls.manager.servers_client,
|
||||
waiters.wait_for_server_status(self.manager.servers_client,
|
||||
server['id'],
|
||||
constants.SERVER_STATUS_ACTIVE)
|
||||
return {'port': port, 'fip': fip, 'server': server}
|
||||
|
||||
def _test_east_west(self):
|
||||
# Source VM
|
||||
server1 = self._src_server
|
||||
server1 = self._create_server()
|
||||
server1_ip = server1['fip']['floating_ip_address']
|
||||
ssh_client = ssh.Client(server1_ip,
|
||||
CONF.validation.image_ssh_user,
|
||||
|
@ -98,9 +92,10 @@ class FloatingIpTestCasesMixin(object):
|
|||
|
||||
# Destination VM
|
||||
if self.dest_has_fip:
|
||||
dest_server = self._dest_server_with_fip
|
||||
dest_server = self._create_server(network=self._dest_network)
|
||||
else:
|
||||
dest_server = self._dest_server_without_fip
|
||||
dest_server = self._create_server(create_floating_ip=False,
|
||||
network=self._dest_network)
|
||||
|
||||
# Check connectivity
|
||||
self.check_remote_connectivity(ssh_client,
|
||||
|
|
Loading…
Reference in New Issue