Remove get_remote_client & check_vm_connectivity methods
As tempest.scenario.manager was announced stable interface in Tempest 27.0.0[1] it can be now reused in plugins. Replaced methods: * get_remote_client * check_vm_connectivity Etherpad concerning this effort: https://etherpad.opendev.org/p/tempest-scenario-manager-cleanup [1] https://docs.openstack.org/releasenotes/tempest/v27.0.0.html#release-notes-27-0-0 Change-Id: I41f2a17f924e4f555f176564d365aa7119e1fd5b
This commit is contained in:
parent
7334c06230
commit
6512049526
@ -21,7 +21,6 @@
|
|||||||
|
|
||||||
from oslo_log import log
|
from oslo_log import log
|
||||||
from oslo_utils import netutils
|
from oslo_utils import netutils
|
||||||
from tempest.common.utils.linux import remote_client
|
|
||||||
from tempest import config
|
from tempest import config
|
||||||
from tempest import exceptions
|
from tempest import exceptions
|
||||||
from tempest.lib.common.utils import data_utils
|
from tempest.lib.common.utils import data_utils
|
||||||
@ -84,75 +83,6 @@ class ScenarioTest(tempest.scenario.manager.ScenarioTest):
|
|||||||
# The create_[resource] functions only return body and discard the
|
# The create_[resource] functions only return body and discard the
|
||||||
# resp part which is not used in scenario tests
|
# resp part which is not used in scenario tests
|
||||||
|
|
||||||
def get_remote_client(self, ip_address, username=None, private_key=None):
|
|
||||||
"""Get a SSH client to a remote server
|
|
||||||
|
|
||||||
@param ip_address the server floating or fixed IP address to use
|
|
||||||
for ssh validation
|
|
||||||
@param username name of the Linux account on the remote server
|
|
||||||
@param private_key the SSH private key to use
|
|
||||||
@return a RemoteClient object
|
|
||||||
"""
|
|
||||||
|
|
||||||
if username is None:
|
|
||||||
username = CONF.validation.image_ssh_user
|
|
||||||
# Set this with 'keypair' or others to log in with keypair or
|
|
||||||
# username/password.
|
|
||||||
if CONF.validation.auth_method == 'keypair':
|
|
||||||
password = None
|
|
||||||
if private_key is None:
|
|
||||||
private_key = self.keypair['private_key']
|
|
||||||
else:
|
|
||||||
password = CONF.validation.image_ssh_password
|
|
||||||
private_key = None
|
|
||||||
linux_client = remote_client.RemoteClient(ip_address, username,
|
|
||||||
pkey=private_key,
|
|
||||||
password=password)
|
|
||||||
try:
|
|
||||||
linux_client.validate_authentication()
|
|
||||||
except Exception as e:
|
|
||||||
message = ('Initializing SSH connection to %(ip)s failed. '
|
|
||||||
'Error: %(error)s' % {'ip': ip_address,
|
|
||||||
'error': e})
|
|
||||||
caller = test_utils.find_test_caller()
|
|
||||||
if caller:
|
|
||||||
message = '(%s) %s' % (caller, message)
|
|
||||||
LOG.exception(message)
|
|
||||||
self.log_console_output()
|
|
||||||
raise
|
|
||||||
|
|
||||||
return linux_client
|
|
||||||
|
|
||||||
def check_vm_connectivity(self, ip_address,
|
|
||||||
username=None,
|
|
||||||
private_key=None,
|
|
||||||
should_connect=True,
|
|
||||||
mtu=None):
|
|
||||||
"""Check server connectivity
|
|
||||||
|
|
||||||
:param ip_address: server to test against
|
|
||||||
:param username: server's ssh username
|
|
||||||
:param private_key: server's ssh private key to be used
|
|
||||||
:param should_connect: True/False indicates positive/negative test
|
|
||||||
positive - attempt ping and ssh
|
|
||||||
negative - attempt ping and fail if succeed
|
|
||||||
:param mtu: network MTU to use for connectivity validation
|
|
||||||
|
|
||||||
:raises: AssertError if the result of the connectivity check does
|
|
||||||
not match the value of the should_connect param
|
|
||||||
"""
|
|
||||||
if should_connect:
|
|
||||||
msg = "Timed out waiting for %s to become reachable" % ip_address
|
|
||||||
else:
|
|
||||||
msg = "ip address %s is reachable" % ip_address
|
|
||||||
self.assertTrue(self.ping_ip_address(ip_address,
|
|
||||||
should_succeed=should_connect,
|
|
||||||
mtu=mtu),
|
|
||||||
msg=msg)
|
|
||||||
if should_connect:
|
|
||||||
# no need to check ssh for negative connectivity
|
|
||||||
self.get_remote_client(ip_address, username, private_key)
|
|
||||||
|
|
||||||
def create_floating_ip(self, thing, pool_name=None):
|
def create_floating_ip(self, thing, pool_name=None):
|
||||||
"""Create a floating IP and associates to a server on Nova"""
|
"""Create a floating IP and associates to a server on Nova"""
|
||||||
|
|
||||||
|
@ -276,4 +276,4 @@ class BaremetalScenarioTest(manager.ScenarioTest):
|
|||||||
waiters.wait_for_server_status(servers_client,
|
waiters.wait_for_server_status(servers_client,
|
||||||
instance['id'], 'ACTIVE')
|
instance['id'], 'ACTIVE')
|
||||||
# Verify server connection
|
# Verify server connection
|
||||||
self.get_remote_client(server_ip)
|
self.get_remote_client(server_ip, server=instance)
|
||||||
|
@ -215,7 +215,7 @@ class BaremetalBasicOps(baremetal_manager.BaremetalScenarioTest):
|
|||||||
self.validate_ports()
|
self.validate_ports()
|
||||||
self.validate_scheduling()
|
self.validate_scheduling()
|
||||||
ip_address = self.get_server_ip(self.instance)
|
ip_address = self.get_server_ip(self.instance)
|
||||||
vm_client = self.get_remote_client(ip_address)
|
vm_client = self.get_remote_client(ip_address, server=self.instance)
|
||||||
|
|
||||||
# We expect the ephemeral partition to be mounted on /mnt and to have
|
# We expect the ephemeral partition to be mounted on /mnt and to have
|
||||||
# the same size as our flavor definition.
|
# the same size as our flavor definition.
|
||||||
|
@ -147,6 +147,7 @@ class BaremetalBFV(baremetal_manager.BaremetalScenarioTest):
|
|||||||
|
|
||||||
# Get server ip and validate authentication
|
# Get server ip and validate authentication
|
||||||
ip_address = self.get_server_ip(self.instance)
|
ip_address = self.get_server_ip(self.instance)
|
||||||
self.get_remote_client(ip_address).validate_authentication()
|
self.get_remote_client(ip_address,
|
||||||
|
server=self.instance).validate_authentication()
|
||||||
|
|
||||||
self.terminate_instance(instance=self.instance)
|
self.terminate_instance(instance=self.instance)
|
||||||
|
@ -104,7 +104,8 @@ class BaremetalMultitenancy(baremetal_manager.BaremetalScenarioTest,
|
|||||||
instance1,
|
instance1,
|
||||||
)['floating_ip_address']
|
)['floating_ip_address']
|
||||||
self.check_vm_connectivity(ip_address=floating_ip1,
|
self.check_vm_connectivity(ip_address=floating_ip1,
|
||||||
private_key=keypair['private_key'])
|
private_key=keypair['private_key'],
|
||||||
|
server=instance1)
|
||||||
if use_vm:
|
if use_vm:
|
||||||
# Create VM on compute node
|
# Create VM on compute node
|
||||||
alt_instance = self.create_server(
|
alt_instance = self.create_server(
|
||||||
@ -127,7 +128,8 @@ class BaremetalMultitenancy(baremetal_manager.BaremetalScenarioTest,
|
|||||||
)['floating_ip_address']
|
)['floating_ip_address']
|
||||||
self.check_vm_connectivity(
|
self.check_vm_connectivity(
|
||||||
ip_address=alt_floating_ip,
|
ip_address=alt_floating_ip,
|
||||||
private_key=alt_keypair['private_key'])
|
private_key=alt_keypair['private_key'],
|
||||||
|
server=alt_instance)
|
||||||
self.verify_l3_connectivity(
|
self.verify_l3_connectivity(
|
||||||
alt_floating_ip,
|
alt_floating_ip,
|
||||||
alt_keypair['private_key'],
|
alt_keypair['private_key'],
|
||||||
|
@ -118,7 +118,8 @@ class BaremetalSingleTenant(baremetal_manager.BaremetalScenarioTest,
|
|||||||
instance1,
|
instance1,
|
||||||
)['floating_ip_address']
|
)['floating_ip_address']
|
||||||
self.check_vm_connectivity(ip_address=floating_ip1,
|
self.check_vm_connectivity(ip_address=floating_ip1,
|
||||||
private_key=keypair['private_key'])
|
private_key=keypair['private_key'],
|
||||||
|
server=instance1)
|
||||||
|
|
||||||
if use_vm:
|
if use_vm:
|
||||||
# Create VM on compute node
|
# Create VM on compute node
|
||||||
@ -146,7 +147,8 @@ class BaremetalSingleTenant(baremetal_manager.BaremetalScenarioTest,
|
|||||||
)['floating_ip_address']
|
)['floating_ip_address']
|
||||||
self.check_vm_connectivity(
|
self.check_vm_connectivity(
|
||||||
ip_address=floating_ip2,
|
ip_address=floating_ip2,
|
||||||
private_key=keypair['private_key'])
|
private_key=keypair['private_key'],
|
||||||
|
server=instance2)
|
||||||
|
|
||||||
self.verify_l3_connectivity(
|
self.verify_l3_connectivity(
|
||||||
floating_ip2,
|
floating_ip2,
|
||||||
|
Loading…
Reference in New Issue
Block a user