def check_ceph_ha(self): """Check ceph with cinder in HA mode Scenario: 1. Revert snapshot with ceph cluster in HA mode 2. Check ceph status 3. Check ceph version, should be consistent across nodes Duration 10m Snapshot check_ceph_ha """ self.env.revert_snapshot("ceph_ha") cluster_id = self.fuel_web.get_last_created_cluster() 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}) ceph_version = versions[0]['ceph_version'] bad_nodes = [ ver for ver in versions if parse_version(ver['ceph_version']) != parse_version( ceph_version)] assert_true(len(bad_nodes) == 0, message="Nodes should same Ceph version on all nodes. " "Expecting version {0}, the following nodes " "do not have this version: {1}".format( ceph_version, bad_nodes)) # Run ostf self.fuel_web.run_ostf( cluster_id=cluster_id, test_sets=['ha', 'smoke', 'sanity'])
def check_ceph_ha(self): """Check ceph with cinder in HA mode Scenario: 1. Revert snapshot with ceph cluster in HA mode 2. Check ceph status 3. Check ceph version, should be equal 0.94.5 Duration 10m Snapshot check_ceph_ha """ self.env.revert_snapshot("ceph_ha") cluster_id = self.fuel_web.get_last_created_cluster() self.fuel_web.check_ceph_status(cluster_id) versions = [] ceph_version = '0.94.5' 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 is not equal @ceph_version return (parse_version(v['ceph_version']) != parse_version(ceph_version)) bad_nodes = filter(check_ver, versions) assert_true(len(bad_nodes) == 0, message="Nodes should have Ceph version equal " "to {0}: {1}".format(ceph_version, bad_nodes)) # Run ostf self.fuel_web.run_ostf( cluster_id=cluster_id, test_sets=['ha', 'smoke', 'sanity'])
def check_ceph_ha(self): """Check ceph with cinder in HA mode Scenario: 1. Revert snapshot with ceph cluster in HA mode 2. Check ceph status 3. Check ceph version, should be equal 0.94.5 Duration 10m Snapshot check_ceph_ha """ self.env.revert_snapshot("ceph_ha") cluster_id = self.fuel_web.get_last_created_cluster() self.fuel_web.check_ceph_status(cluster_id) versions = [] ceph_version = '0.94.5' 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 is not equal @ceph_version return (parse_version(v['ceph_version']) != parse_version(ceph_version)) bad_nodes = filter(check_ver, versions) assert_true(len(bad_nodes) == 0, message="Nodes should have Ceph version equal " "to {0}: {1}".format(ceph_version, bad_nodes)) # Run ostf self.fuel_web.run_ostf(cluster_id=cluster_id, test_sets=['ha', 'smoke', 'sanity'])