示例#1
0
    def deploy_ceilometer_ha_one_controller_with_mongo(self):
        """Deploy cluster in HA mode with Ceilometer

        Scenario:
            1. Create cluster. Set install Ceilometer option
            2. Add 1 node with controller role
            3. Add 1 nodes with compute role
            4. Add 1 node with cinder role
            5. Add 1 node with mongo role
            6. Deploy the cluster
            7. Verify ceilometer api is running
            8. Run OSTF

        Duration 45m
        Snapshot: deploy_ceilometer_ha_one_controller_with_mongo
        """
        self.env.revert_snapshot("ready_with_3_slaves")

        cluster_id = self.fuel_web.create_cluster(
            name=self.__class__.__name__,
            mode=settings.DEPLOYMENT_MODE,
            settings={
                'ceilometer': True,
                'net_provider': 'neutron',
                'net_segment_type': 'tun',
                'tenant': 'ceilometerSimple',
                'user': '******',
                'password': '******'
            }
        )
        self.fuel_web.update_nodes(
            cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['compute', 'cinder'],
                'slave-03': ['mongo']
            }
        )
        nailgun_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)

        disk_mb = 0
        for node in nailgun_nodes:
            if node.get('pending_roles') == ['mongo']:
                disk_mb = self.fuel_web.get_node_disk_size(node.get('id'),
                                                           "vda")

        LOGGER.debug('disk size is {0}'.format(disk_mb))
        mongo_disk_mb = 11116
        os_disk_mb = disk_mb - mongo_disk_mb
        mongo_disk_gb = ("{0}G".format(round(mongo_disk_mb / 1024, 1)))
        disk_part = {
            "vda": {
                "os": os_disk_mb,
                "mongo": mongo_disk_mb
            }
        }

        for node in nailgun_nodes:
            if node.get('pending_roles') == ['mongo']:
                self.fuel_web.update_node_disk(node.get('id'), disk_part)

        self.fuel_web.deploy_cluster_wait(cluster_id)

        _ip = self.fuel_web.get_nailgun_node_by_name("slave-01")['ip']
        with self.env.d_env.get_ssh_to_remote(_ip) as remote:
            checkers.verify_service(
                remote,
                service_name='ceilometer-api')

        _ip = self.fuel_web.get_nailgun_node_by_name("slave-03")['ip']
        with self.env.d_env.get_ssh_to_remote(_ip) as remote:
            partitions = checkers.get_mongo_partitions(remote, "vda5")

        assert_equal(partitions[0].rstrip(), mongo_disk_gb,
                     'Mongo size {0} before deployment is not equal'
                     ' to size after {1}'.format(mongo_disk_gb, partitions))

        self.run_tests(cluster_id)
        self.env.make_snapshot(
            "deploy_ceilometer_ha_one_controller_with_mongo")
示例#2
0
    def deploy_ceilometer_simple_with_mongo(self):
        """Deploy cluster in simple mode with Ceilometer

        Scenario:
            1. Create cluster. Set install Ceilometer option
            2. Add 1 node with controller role
            3. Add 1 nodes with compute role
            4. Add 1 node with cinder role
            5. Add 1 node with mongo role
            6. Deploy the cluster
            7. Verify ceilometer api is running
            8. Run ostf

        Snapshot: deploy_ceilometer_simple_with_mongo

        """
        self.env.revert_snapshot("ready_with_5_slaves")

        cluster_id = self.fuel_web.create_cluster(
            name=self.__class__.__name__,
            settings={
                'ceilometer': True,
                'tenant': 'ceilometerSimple',
                'user': '******',
                'password': '******'
            }
        )
        self.fuel_web.update_nodes(
            cluster_id,
            {
                'slave-01': ['controller'],
                'slave-02': ['compute'],
                'slave-03': ['cinder'],
                'slave-04': ['mongo']
            }
        )
        nailgun_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)

        disk_mb = 0
        for node in nailgun_nodes:
            if node.get('pending_roles') == ['mongo']:
                disk_mb = self.fuel_web.get_node_disk_size(node.get('id'),
                                                           "vda")

        LOGGER.debug('disk size is {0}'.format(disk_mb))
        mongo_disk_mb = 11116
        os_disk_mb = disk_mb - mongo_disk_mb
        mongo_disk_gb = ("{0}G".format(round(mongo_disk_mb / 1024, 1)))
        disk_part = {
            "vda": {
                "os": os_disk_mb,
                "mongo": mongo_disk_mb
            }
        }

        for node in nailgun_nodes:
            if node.get('pending_roles') == ['mongo']:
                self.fuel_web.update_node_disk(node.get('id'), disk_part)

        self.fuel_web.deploy_cluster_wait(cluster_id)

        checkers.verify_service(
            self.env.get_ssh_to_remote_by_name("slave-01"),
            service_name='ceilometer-api')

        partitions = checkers.get_mongo_partitions(
            self.env.get_ssh_to_remote_by_name("slave-04"), "vda5")
        assert_equal(partitions[0].rstrip(), mongo_disk_gb,
                     'Mongo size {0} before deployment is not equal'
                     ' to size after {1}'.format(mongo_disk_gb, partitions))
        # run ostf
        self.fuel_web.run_ostf(
            cluster_id=cluster_id, test_sets=['smoke', 'sanity',
                                              'platform_tests'],
            should_fail=1, timeout=5300)

        self.env.make_snapshot("deploy_ceilometer_simple_with_mongo")
示例#3
0
    def deploy_ceilometer_ha_one_controller_with_mongo(self):
        """Deploy cluster in HA mode with Ceilometer

        Scenario:
            1. Create cluster. Set install Ceilometer option
            2. Add 1 node with controller role
            3. Add 1 nodes with compute role
            4. Add 1 node with cinder role
            5. Add 1 node with mongo role
            6. Deploy the cluster
            7. Verify ceilometer api is running
            8. Run OSTF

        Duration 45m
        Snapshot: deploy_ceilometer_ha_one_controller_with_mongo
        """
        self.env.revert_snapshot("ready_with_3_slaves")

        cluster_id = self.fuel_web.create_cluster(
            name=self.__class__.__name__,
            mode=settings.DEPLOYMENT_MODE,
            settings={
                'ceilometer': True,
                'net_provider': 'neutron',
                'net_segment_type': 'tun',
                'tenant': 'ceilometerSimple',
                'user': '******',
                'password': '******'
            })
        self.fuel_web.update_nodes(
            cluster_id, {
                'slave-01': ['controller'],
                'slave-02': ['compute', 'cinder'],
                'slave-03': ['mongo']
            })
        nailgun_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)

        disk_mb = 0
        for node in nailgun_nodes:
            if node.get('pending_roles') == ['mongo']:
                disk_mb = self.fuel_web.get_node_disk_size(
                    node.get('id'), "vda")

        LOGGER.debug('disk size is {0}'.format(disk_mb))
        mongo_disk_mb = 11116
        os_disk_mb = disk_mb - mongo_disk_mb
        mongo_disk_gb = ("{0}G".format(round(mongo_disk_mb / 1024, 1)))
        disk_part = {"vda": {"os": os_disk_mb, "mongo": mongo_disk_mb}}

        for node in nailgun_nodes:
            if node.get('pending_roles') == ['mongo']:
                self.fuel_web.update_node_disk(node.get('id'), disk_part)

        self.fuel_web.deploy_cluster_wait(cluster_id)

        _ip = self.fuel_web.get_nailgun_node_by_name("slave-01")['ip']
        with self.env.d_env.get_ssh_to_remote(_ip) as remote:
            checkers.verify_service(remote,
                                    service_name='ceilometer-api',
                                    ignore_count_of_proccesses=True)

        _ip = self.fuel_web.get_nailgun_node_by_name("slave-03")['ip']
        with self.env.d_env.get_ssh_to_remote(_ip) as remote:
            partitions = checkers.get_mongo_partitions(remote, "vda5")

        assert_equal(
            partitions[0].rstrip(), mongo_disk_gb,
            'Mongo size {0} before deployment is not equal'
            ' to size after {1}'.format(mongo_disk_gb, partitions))

        self.run_tests(cluster_id)
        self.env.make_snapshot(
            "deploy_ceilometer_ha_one_controller_with_mongo")
示例#4
0
    def deploy_ceilometer_ha_one_controller_with_mongo(self):
        """Deploy cluster in HA mode with Ceilometer

        Scenario:
            1. Create cluster. Set install Ceilometer option
            2. Add 1 node with controller role
            3. Add 1 nodes with compute role
            4. Add 1 node with cinder role
            5. Add 1 node with mongo role
            6. Deploy the cluster
            7. Verify ceilometer api is running
            8. Run OSTF

        Duration 45m
        Snapshot: deploy_ceilometer_ha_one_controller_with_mongo
        """
        self.env.revert_snapshot("ready_with_3_slaves")

        cluster_id = self.fuel_web.create_cluster(
            name=self.__class__.__name__,
            mode=settings.DEPLOYMENT_MODE,
            settings={
                "ceilometer": True,
                "net_provider": "neutron",
                "net_segment_type": "tun",
                "tenant": "ceilometerSimple",
                "user": "******",
                "password": "******",
            },
        )
        self.fuel_web.update_nodes(
            cluster_id, {"slave-01": ["controller"], "slave-02": ["compute", "cinder"], "slave-03": ["mongo"]}
        )
        nailgun_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)

        disk_mb = 0
        for node in nailgun_nodes:
            if node.get("pending_roles") == ["mongo"]:
                disk_mb = self.fuel_web.get_node_disk_size(node.get("id"), "vda")

        LOGGER.debug("disk size is {0}".format(disk_mb))
        mongo_disk_mb = 11116
        os_disk_mb = disk_mb - mongo_disk_mb
        mongo_disk_gb = "{0}G".format(round(mongo_disk_mb / 1024, 1))
        disk_part = {"vda": {"os": os_disk_mb, "mongo": mongo_disk_mb}}

        for node in nailgun_nodes:
            if node.get("pending_roles") == ["mongo"]:
                self.fuel_web.update_node_disk(node.get("id"), disk_part)

        self.fuel_web.deploy_cluster_wait(cluster_id)

        _ip = self.fuel_web.get_nailgun_node_by_name("slave-01")["ip"]
        with self.env.d_env.get_ssh_to_remote(_ip) as remote:
            checkers.verify_service(remote, service_name="ceilometer-api")

        _ip = self.fuel_web.get_nailgun_node_by_name("slave-03")["ip"]
        with self.env.d_env.get_ssh_to_remote(_ip) as remote:
            partitions = checkers.get_mongo_partitions(remote, "vda5")

        assert_equal(
            partitions[0].rstrip(),
            mongo_disk_gb,
            "Mongo size {0} before deployment is not equal" " to size after {1}".format(mongo_disk_gb, partitions),
        )

        self.run_tests(cluster_id)
        self.env.make_snapshot("deploy_ceilometer_ha_one_controller_with_mongo")