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) 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]

View File

@ -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(

View File

@ -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,