Esempio n. 1
0
    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'])
Esempio n. 2
0
    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'])
Esempio n. 3
0
    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'])