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:
Dmitry Tyzhnenko 2015-07-16 16:15:36 +03:00 committed by tatyana-leontovich
parent 844415e27a
commit fede2139d2
3 changed files with 36 additions and 0 deletions

View File

@ -232,3 +232,13 @@ def get_rbd_images_list(remote, pool):
"""
cmd = 'rbd --pool {pool} --format json ls -l'.format(pool=pool)
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]

View File

@ -939,6 +939,10 @@ class FuelWebClient(object):
nodes_dict.keys()))[0]
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
def is_node_discovered(self, nailgun_node):
return any(

View File

@ -15,6 +15,7 @@
from six import BytesIO
import time
from pkg_resources import parse_version
from proboscis.asserts import assert_true, assert_false, assert_equal
from proboscis import SkipTest
from proboscis import test
@ -291,6 +292,7 @@ class CephHA(TestBasic):
Scenario:
1. Revert snapshot with ceph cluster in HA mode
2. Check ceph status
3. Check ceph version, should less 0.81
Duration 10m
Snapshot check_ceph_ha
@ -301,6 +303,26 @@ class CephHA(TestBasic):
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
self.fuel_web.run_ostf(
cluster_id=cluster_id,