Add Ceph version check in check_ceph_ha
Add get_ssh_for_nailgun_node to FuelWebClient. Check version of Ceph on slaves Change-Id: I195a245c351411a0a3715d23fda65bbd24b3917d Closes-bug: #1476222
This commit is contained in:
parent
844415e27a
commit
fede2139d2
@ -232,3 +232,13 @@ def get_rbd_images_list(remote, pool):
|
|||||||
"""
|
"""
|
||||||
cmd = 'rbd --pool {pool} --format json ls -l'.format(pool=pool)
|
cmd = 'rbd --pool {pool} --format json ls -l'.format(pool=pool)
|
||||||
return run_on_remote(remote, cmd, jsonify=True)
|
return run_on_remote(remote, cmd, jsonify=True)
|
||||||
|
|
||||||
|
|
||||||
|
def get_version(remote):
|
||||||
|
"""Returns Ceph version
|
||||||
|
|
||||||
|
:param remote: devops.helpers.helpers.SSHClient
|
||||||
|
:return: str
|
||||||
|
"""
|
||||||
|
cmd = 'ceph --version'
|
||||||
|
return run_on_remote(remote, cmd)[0].split(' ')[2]
|
||||||
|
@ -939,6 +939,10 @@ class FuelWebClient(object):
|
|||||||
nodes_dict.keys()))[0]
|
nodes_dict.keys()))[0]
|
||||||
return self.get_ssh_for_node(node_name)
|
return self.get_ssh_for_node(node_name)
|
||||||
|
|
||||||
|
@logwrap
|
||||||
|
def get_ssh_for_nailgun_node(self, nailgun_node):
|
||||||
|
return self.environment.d_env.get_ssh_to_remote(nailgun_node['ip'])
|
||||||
|
|
||||||
@logwrap
|
@logwrap
|
||||||
def is_node_discovered(self, nailgun_node):
|
def is_node_discovered(self, nailgun_node):
|
||||||
return any(
|
return any(
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
from six import BytesIO
|
from six import BytesIO
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
from pkg_resources import parse_version
|
||||||
from proboscis.asserts import assert_true, assert_false, assert_equal
|
from proboscis.asserts import assert_true, assert_false, assert_equal
|
||||||
from proboscis import SkipTest
|
from proboscis import SkipTest
|
||||||
from proboscis import test
|
from proboscis import test
|
||||||
@ -291,6 +292,7 @@ class CephHA(TestBasic):
|
|||||||
Scenario:
|
Scenario:
|
||||||
1. Revert snapshot with ceph cluster in HA mode
|
1. Revert snapshot with ceph cluster in HA mode
|
||||||
2. Check ceph status
|
2. Check ceph status
|
||||||
|
3. Check ceph version, should less 0.81
|
||||||
|
|
||||||
Duration 10m
|
Duration 10m
|
||||||
Snapshot check_ceph_ha
|
Snapshot check_ceph_ha
|
||||||
@ -301,6 +303,26 @@ class CephHA(TestBasic):
|
|||||||
|
|
||||||
self.fuel_web.check_ceph_status(cluster_id)
|
self.fuel_web.check_ceph_status(cluster_id)
|
||||||
|
|
||||||
|
versions = []
|
||||||
|
for node in self.fuel_web.client.list_cluster_nodes(cluster_id):
|
||||||
|
role = '_'.join(node['roles'])
|
||||||
|
logger.debug('{} has role {}'.format(node['fqdn'], role))
|
||||||
|
with self.fuel_web.get_ssh_for_nailgun_node(node) as remote:
|
||||||
|
version = ceph.get_version(remote)
|
||||||
|
logger.info('On {} ceph version is {}'.format(node['fqdn'],
|
||||||
|
version))
|
||||||
|
versions.append({'name': node['fqdn'], 'ceph_version': version})
|
||||||
|
|
||||||
|
def check_ver(v):
|
||||||
|
# Check version. True if version bigger or equal 0.81
|
||||||
|
# FIXME: should bigger then 0.93 after upgrade to hammer
|
||||||
|
return not (parse_version(v['ceph_version']) <
|
||||||
|
parse_version('0.81'))
|
||||||
|
|
||||||
|
bad_nodes = filter(check_ver, versions)
|
||||||
|
assert_true(len(bad_nodes) == 0,
|
||||||
|
message="Nodes should have Ceph version less "
|
||||||
|
"then 0.81 {}".format(bad_nodes))
|
||||||
# Run ostf
|
# Run ostf
|
||||||
self.fuel_web.run_ostf(
|
self.fuel_web.run_ostf(
|
||||||
cluster_id=cluster_id,
|
cluster_id=cluster_id,
|
||||||
|
Loading…
Reference in New Issue
Block a user