Change check_ping to use ssh_manager

Implements blueprint sshmanager-integration
Change-Id: Ic30ebcdc74d4d4050360cbcd27ffb022953285d4
This commit is contained in:
Maksym Strukov 2016-01-18 20:50:42 +02:00
parent 3974f8f35b
commit 8545b71da2
5 changed files with 35 additions and 35 deletions

View File

@ -25,6 +25,7 @@ import yaml
from fuelweb_test import logger
from fuelweb_test import logwrap
from fuelweb_test.helpers.ssh_manager import SSHManager
from fuelweb_test.helpers.utils import run_on_remote
from fuelweb_test.helpers.utils import run_on_remote_get_results
from fuelweb_test.settings import MASTER_IS_CENTOS7
@ -993,9 +994,9 @@ def get_file_size(remote, file_name, file_path):
@logwrap
def check_ping(remote, host, deadline=10, size=56, timeout=1, interval=1):
def check_ping(ip, host, deadline=10, size=56, timeout=1, interval=1):
"""Check network connectivity from remote to host using ICMP (ping)
:param remote: SSHClient
:param ip: remote ip
:param host: string IP address or host/domain name
:param deadline: time in seconds before ping exits
:param size: size of data to be sent
@ -1003,13 +1004,15 @@ def check_ping(remote, host, deadline=10, size=56, timeout=1, interval=1):
:param interval: wait interval seconds between sending each packet
:return: bool: True if ping command
"""
ssh_manager = SSHManager()
cmd = ("ping -W {timeout} -i {interval} -s {size} -c 1 -w {deadline} "
"{host}".format(host=host,
size=size,
timeout=timeout,
interval=interval,
deadline=deadline))
return int(remote.execute(cmd)['exit_code']) == 0
res = ssh_manager.execute(ip, cmd)
return int(res['exit_code']) == 0
@logwrap

View File

@ -72,7 +72,6 @@ class CustomHostname(TestBasic):
cluster_id=cluster_id, test_sets=['ha', 'smoke', 'sanity'])
hostname_pattern = "node-\d{1,2}"
admin_remote = self.env.d_env.get_admin_remote()
for node in self.fuel_web.client.list_cluster_nodes(cluster_id):
devops_node = self.fuel_web.get_devops_node_by_nailgun_node(node)
@ -87,12 +86,11 @@ class CustomHostname(TestBasic):
# Verify that a node is accessible by the default hostname
assert_true(
check_ping(admin_remote, node['hostname']),
check_ping(self.env.get_admin_node_ip(),
node['hostname']),
"{0} node is not accessible by its default "
"hostname {1}".format(devops_node.name, node['hostname']))
admin_remote.clear()
self.env.make_snapshot("default_hostname")
@test(depends_on=[SetupEnvironment.prepare_slaves_5],

View File

@ -24,6 +24,7 @@ from proboscis import SkipTest
from proboscis import test
from fuelweb_test.helpers.checkers import check_get_network_data_over_cli
from fuelweb_test.helpers.checkers import check_ping
from fuelweb_test.helpers.checkers import check_update_network_data_over_cli
from fuelweb_test.helpers.decorators import check_fuel_statistics
from fuelweb_test.helpers.decorators import log_snapshot_after_test
@ -431,13 +432,13 @@ class TestMultipleClusterNets(TestBasic):
"controller via {0} interface.".format(interface))
for ip in new_node_networks[interface]['ip_addresses']:
address = ip.split('/')[0]
result = self.ssh_manager.execute(ip=primary_ctrl['ip'],
cmd='ping -q -c 1 -w 3 {'
'0}'.format(address))
asserts.assert_equal(result['exit_code'], 0,
"New node isn't accessible from "
"primary controller via {0} interface"
": {1}.".format(interface, result))
result = check_ping(primary_ctrl['ip'],
address,
timeout=3)
asserts.assert_true(result,
"New node isn't accessible from "
"primary controller via {0} interface"
": {1}.".format(interface, result))
self.env.make_snapshot("add_custom_nodegroup")

View File

@ -414,19 +414,18 @@ class TestOSupgrade(base_test_data.TestBasic):
non_ping_ips.append(data["ip"].split("/")[0])
for node in controllers + old_computes:
with self.env.d_env.get_ssh_to_remote(node["ip"]) as remote:
remote.execute("ip -s -s neigh flush all")
self.ssh_manager.execute(node["ip"], "ip -s -s neigh flush all")
for ip in ping_ips:
assert_true(checkers.check_ping(remote, ip),
"Can not ping {0} from {1}"
"need to check network"
" connectivity".format(ip, node["ip"]))
for ip in ping_ips:
assert_true(checkers.check_ping(node["ip"], ip),
"Can not ping {0} from {1}"
"need to check network"
" connectivity".format(ip, node["ip"]))
for ip in non_ping_ips:
assert_false(checkers.check_ping(remote, ip),
"Patch ports from old controllers"
"isn't removed")
for ip in non_ping_ips:
assert_false(checkers.check_ping(node["ip"], ip),
"Patch ports from old controllers"
"isn't removed")
time.sleep(180) # TODO need to remove
# after fix of https://bugs.launchpad.net/fuel/+bug/1499696

View File

@ -562,11 +562,10 @@ class TestHaFailoverBase(TestBasic):
self.env.revert_snapshot(self.snapshot_name)
cluster_id = self.fuel_web.get_last_created_cluster()
for node in self.fuel_web.client.list_cluster_nodes(cluster_id):
with self.env.d_env.get_ssh_to_remote(node['ip']) as remote:
assert_true(
check_ping(remote, DNS, deadline=120, interval=10),
"No Internet access from {0}".format(node['fqdn'])
)
assert_true(
check_ping(node['ip'], DNS, deadline=120, interval=10),
"No Internet access from {0}".format(node['fqdn'])
)
devops_node = self.fuel_web.get_nailgun_primary_node(
self.env.d_env.nodes().slaves[0])
@ -605,11 +604,11 @@ class TestHaFailoverBase(TestBasic):
except TimeoutError:
raise TimeoutError(
"Primary controller was not destroyed")
with self.fuel_web.get_ssh_for_node('slave-05') as remote:
assert_true(
check_ping(remote, DNS, deadline=120, interval=10),
"No Internet access from {0}".format(node['fqdn'])
)
slave05 = self.fuel_web.get_nailgun_node_by_name('slave-05')
assert_true(
check_ping(slave05['ip'], DNS, deadline=120, interval=10),
"No Internet access from {0}".format(node['fqdn'])
)
if OPENSTACK_RELEASE == OPENSTACK_RELEASE_UBUNTU:
with self.fuel_web.get_ssh_for_node('slave-05') as remote:
file_size1 = get_file_size(remote, file_name, file_path)