For tests where we have 2 ceph-osd nodes, set replicaltion factor to 2 Change-Id: I432af47b47a4ef7eb0bf1a004416621fec1fa17c Closes-Bug: #1527555
		
			
				
	
	
		
			1734 lines
		
	
	
		
			59 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			1734 lines
		
	
	
		
			59 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#    Copyright 2014 Mirantis, Inc.
 | 
						|
#
 | 
						|
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
						|
#    not use this file except in compliance with the License. You may obtain
 | 
						|
#    a copy of the License at
 | 
						|
#
 | 
						|
#         http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
#    Unless required by applicable law or agreed to in writing, software
 | 
						|
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
						|
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
						|
#    License for the specific language governing permissions and limitations
 | 
						|
#    under the License.
 | 
						|
 | 
						|
from proboscis import test
 | 
						|
from proboscis.asserts import assert_true
 | 
						|
from devops.helpers.helpers import wait
 | 
						|
from devops.error import TimeoutError
 | 
						|
 | 
						|
from fuelweb_test.helpers.decorators import log_snapshot_after_test
 | 
						|
from fuelweb_test import logger
 | 
						|
from fuelweb_test.settings import DEPLOYMENT_MODE
 | 
						|
from fuelweb_test.settings import SERVTEST_USERNAME
 | 
						|
from fuelweb_test.settings import SERVTEST_PASSWORD
 | 
						|
from fuelweb_test.settings import SERVTEST_TENANT
 | 
						|
from fuelweb_test.settings import iface_alias
 | 
						|
from fuelweb_test.tests.base_test_case import SetupEnvironment
 | 
						|
from fuelweb_test.tests.base_test_case import TestBasic
 | 
						|
from fuelweb_test.helpers import os_actions
 | 
						|
 | 
						|
 | 
						|
@test(groups=["vcenter"])
 | 
						|
class VcenterDeploy(TestBasic):
 | 
						|
    """VcenterDeploy."""  # TODO documentation
 | 
						|
 | 
						|
    def node_name(self, name_node):
 | 
						|
        return self.fuel_web.get_nailgun_node_by_name(name_node)['hostname']
 | 
						|
 | 
						|
    def create_vm(self, os_conn=None, vm_count=None):
 | 
						|
        # Get list of available images,flavors and hypervisors
 | 
						|
        images_list = os_conn.nova.images.list()
 | 
						|
        flavors_list = os_conn.nova.flavors.list()
 | 
						|
        hypervisors_list = os_conn.get_hypervisors()
 | 
						|
        # Create VMs on each of hypervisor
 | 
						|
        for image in images_list:
 | 
						|
            for i in range(0, vm_count):
 | 
						|
                if image.name == 'TestVM-VMDK':
 | 
						|
                    os_conn.nova.servers.create(
 | 
						|
                        flavor=flavors_list[0],
 | 
						|
                        name='test_{0}_{1}'.format(image.name, i), image=image,
 | 
						|
                        availability_zone='vcenter')
 | 
						|
                else:
 | 
						|
                    os_conn.nova.servers.create(
 | 
						|
                        flavor=flavors_list[0],
 | 
						|
                        name='test_{0}_{1}'.format(image.name, i), image=image)
 | 
						|
 | 
						|
        # Wait for launch VMs
 | 
						|
        for hypervisor in hypervisors_list:
 | 
						|
            wait(lambda: os_conn.get_hypervisor_vms_count(hypervisor) != 0,
 | 
						|
                 timeout=300)
 | 
						|
 | 
						|
    def configure_nova_vlan(self, cluster_id):
 | 
						|
        # Configure network interfaces.
 | 
						|
        # Public and Fixed networks are on the same interface
 | 
						|
        # because Nova will use the same vSwitch for PortGroups creating
 | 
						|
        # as a ESXi management interface is located in.
 | 
						|
        interfaces = {
 | 
						|
            iface_alias('eth0'): ["fuelweb_admin"],
 | 
						|
            iface_alias('eth1'): ["public", "fixed"],
 | 
						|
            iface_alias('eth2'): ["management", ],
 | 
						|
            iface_alias('eth3'): [],
 | 
						|
            iface_alias('eth4'): ["storage"]
 | 
						|
        }
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        for node in slave_nodes:
 | 
						|
            self.fuel_web.update_node_networks(node['id'], interfaces)
 | 
						|
 | 
						|
        # Configure Nova-Network VLanManager.
 | 
						|
        self.fuel_web.update_vlan_network_fixed(
 | 
						|
            cluster_id, amount=8, network_size=32)
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_bvt"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_bvt(self):
 | 
						|
        """Deploy environment in HA with cinder-vmware, compute-vmware, \
 | 
						|
        vCenter as backend for glance and multiple clusters.
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set VMWare vCenter/ESXi datastore for images (Glance)
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller + cinder-vmware
 | 
						|
                compute-vmware
 | 
						|
                compute + cinder
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_vcenter': True})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['cinder-vmware', 'controller'],
 | 
						|
                'slave-04': ['compute-vmware'],
 | 
						|
                'slave-05': ['compute', 'cinder']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_1 = self.node_name('slave-04')
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id, multiclusters=True, vc_glance=True,
 | 
						|
            target_node_1=target_node_1
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_1],
 | 
						|
          groups=["smoke", "vcenter_smoke"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_smoke(self):
 | 
						|
        """Deploy dual hypervisors cluster with controller node only
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run OSTF
 | 
						|
 | 
						|
        Duration: 1h 40min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_1_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-01': ['controller']})
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_cindervmdk"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_cindervmdk(self):
 | 
						|
        """Deploy environment with vCenter and CinderVMDK
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                cinder-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 1h 40min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['cinder-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_cindervmdk_and_computevmware"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_cindervmdk_and_computevmware(self):
 | 
						|
        """Deploy environment with vCenter, CinderVMDK and ComputeVMWare
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                cinder-vmware
 | 
						|
                compute-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 1h 40min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['cinder-vmware'],
 | 
						|
                'slave-03': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_1 = self.node_name('slave-03')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_1=target_node_1,
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_computevmware"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_computevmware(self):
 | 
						|
        """Deploy environment with vCenter and compute-vmware
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                compute-vmware
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 1h 40min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_1 = self.node_name('slave-02')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_1=target_node_1,
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_1],
 | 
						|
          groups=["vcenter_glance_backend"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_glance_backend(self):
 | 
						|
        """Deploy environment with VMWare vCenter/ESXi datastore as backend /
 | 
						|
        for glance
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set VMWare vCenter/ESXi datastore for images (Glance)
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 1h 40min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_1_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_vcenter': True,
 | 
						|
                      'images_ceph': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id, vc_glance=True)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_glance_backend_and_computevmware"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_glance_backend_and_computevmware(self):
 | 
						|
        """Deploy environment with VMWare vCenter/ESXi datastore as backend /
 | 
						|
        for glance and compute-vmware
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set VMWare vCenter/ESXi datastore for images (Glance)
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                compute-vmware
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: ?h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_vcenter': True,
 | 
						|
                      'images_ceph': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_1 = self.node_name('slave-02')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_1=target_node_1,
 | 
						|
            vc_glance=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_multiple_cluster_with_computevmware"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_multiple_cluster_with_computevmware(self):
 | 
						|
        """Deploy environment in DualHypervisors mode with cinder-vmware, \
 | 
						|
        compute-vmware and multiple clusters.
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                cinder-vmware
 | 
						|
                compute-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration 1h 40min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE
 | 
						|
        )
 | 
						|
 | 
						|
        logger.debug("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['cinder-vmware'],
 | 
						|
                'slave-03': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_2 = self.node_name('slave-03')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_2=target_node_2,
 | 
						|
            multiclusters=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ceph"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ceph(self):
 | 
						|
        """Deploy environment in HA with CephOSD as backend for Cinder and \
 | 
						|
        Glance
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set CephOSD as backend for Glance and Cinder
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                compute
 | 
						|
                ceph-osd
 | 
						|
                ceph-osd
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h 30min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_ceph': True,
 | 
						|
                      'volumes_ceph': True,
 | 
						|
                      'osd_pool_size': '2',
 | 
						|
                      'objects_ceph': True,
 | 
						|
                      'volumes_lvm': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['compute'],
 | 
						|
                'slave-03': ['ceph-osd'],
 | 
						|
                'slave-04': ['ceph-osd'],
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id, multiclusters=True)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_9],
 | 
						|
          groups=["vcenter_computevmware_and_ceph"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_computevmware_and_ceph(self):
 | 
						|
        """Deploy environment in DualHypervisors mode with Ceph as backend \
 | 
						|
        for Cinder and Glance and compute-vmware nodes
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set CephOSD as backend for Glance and Cinder
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
                compute-vmware
 | 
						|
                compute
 | 
						|
                ceph-osd
 | 
						|
                ceph-osd
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                compute-vmware
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_9_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_ceph': True,
 | 
						|
                      'volumes_ceph': True,
 | 
						|
                      'osd_pool_size': '2',
 | 
						|
                      'volumes_lvm': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['compute-vmware'],
 | 
						|
                'slave-03': ['compute-vmware'],
 | 
						|
                'slave-04': ['compute'],
 | 
						|
                'slave-05': ['ceph-osd'],
 | 
						|
                'slave-06': ['ceph-osd']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_1 = self.node_name('slave-02')
 | 
						|
        target_node_2 = self.node_name('slave-03')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_1=target_node_1,
 | 
						|
            target_node_2=target_node_2,
 | 
						|
            multiclusters=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_multiroles_cindervmdk_and_ceph"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_multiroles_cindervmdk_and_ceph(self):
 | 
						|
        """Deploy environment in DualHypervisors mode with Ceph and nodes \
 | 
						|
        with multiroles (combinations with CinderVMDK and CephOSD)
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set CephOSD as backend for Glance and Cinder
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller + cinder-vmware + ceph-osd
 | 
						|
                compute + cinderVMDK + ceph-osd
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'volumes_ceph': True,
 | 
						|
                      'osd_pool_size': '2',
 | 
						|
                      'volumes_lvm': False,
 | 
						|
                      'ephemeral_ceph': True})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-01': ['controller', 'cinder-vmware', 'ceph-osd'],
 | 
						|
             'slave-02': ['compute', 'cinder-vmware', 'ceph-osd']})
 | 
						|
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_multiroles_cindervmdk_and_cinder"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_multiroles_cindervmdk_and_cinder(self):
 | 
						|
        """Deploy environment in DualHypervisors mode with nodes \
 | 
						|
        with multiroles (combinations with CinderVMDK and Cinder)
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller + cinder-vmware + cinder
 | 
						|
                compute + cinderVMDK + cinder
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller', 'cinder-vmware', 'cinder'],
 | 
						|
                'slave-02': ['compute', 'cinder-vmware', 'cinder']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ceilometer"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ceilometer(self):
 | 
						|
        """Deploy environment with vCenter and Ceilometer enabled
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter and Ceilometer support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                compute + cinder
 | 
						|
                cinder-vmware
 | 
						|
                mongo
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'ceilometer': True})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['compute', 'cinder'],
 | 
						|
                'slave-03': ['cinder-vmware'],
 | 
						|
                'slave-04': ['mongo']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id, multiclusters=True)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform']
 | 
						|
        )
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_9],
 | 
						|
          groups=["vcenter_ceilometer_and_computevmware"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ceilometer_and_computevmware(self):
 | 
						|
        """Deploy environment with vCenter, Ceilometer enabled and\
 | 
						|
        ComputeVMWare
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter and Ceilometer support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                compute + cinder
 | 
						|
                cinder-vmware
 | 
						|
                compute-vmware
 | 
						|
                compute-vmware
 | 
						|
                mongo
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                compute-vmware
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_9_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'ceilometer': True})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['compute', 'cinder'],
 | 
						|
                'slave-03': ['cinder-vmware'],
 | 
						|
                'slave-04': ['compute-vmware'],
 | 
						|
                'slave-05': ['compute-vmware'],
 | 
						|
                'slave-06': ['mongo']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_1 = self.node_name('slave-04')
 | 
						|
        target_node_2 = self.node_name('slave-05')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_1=target_node_1,
 | 
						|
            target_node_2=target_node_2,
 | 
						|
            multiclusters=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform']
 | 
						|
        )
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_3],
 | 
						|
          groups=["vcenter_multiroles_ceilometer"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_multiroles_ceilometer(self):
 | 
						|
        """Deploy environment with vCenter, Ceilometer and nodes with \
 | 
						|
        multiroles (combinations with CinderVMDK, Cinder and MongoDB)
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter and Ceilometer support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller + cinder + cinder-vmware + mongo
 | 
						|
                compute + cinder + cinder-vmware + mongo
 | 
						|
                compute-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_3_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'ceilometer': True})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller', 'cinder', 'cinder-vmware', 'mongo'],
 | 
						|
                'slave-02': ['compute'],
 | 
						|
                'slave-03': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_2 = self.node_name('slave-03')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_2=target_node_2,
 | 
						|
            multiclusters=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_9],
 | 
						|
          groups=["vcenter_add_delete_nodes"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_add_delete_nodes(self):
 | 
						|
        """Deploy environment of vcenter+qemu nova vlan and default backend for
 | 
						|
           glance and with addition and deletion of nodes with different roles
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support.
 | 
						|
            2. Add 1 node with controller role.
 | 
						|
            3. Set Nova-Network VlanManager as a network backend.
 | 
						|
            4. Deploy the cluster.
 | 
						|
            5. Run OSTF.
 | 
						|
            6. Add 1 node with cinder role and redeploy cluster.
 | 
						|
            7. Run OSTF.
 | 
						|
            8. Remove 1 node with cinder role.
 | 
						|
            9. Add 1 node with cinder-vmdk role and redeploy cluster.
 | 
						|
            10. Run OSTF.
 | 
						|
            11. Add 1 node with cinder role and redeploy cluster.
 | 
						|
            12. Run OSTF.
 | 
						|
            13. Remove nodes with roles: cinder-vmdk and cinder.
 | 
						|
            14. Add 1 node with compute role and redeploy cluster.
 | 
						|
            15. Run OSTF.
 | 
						|
            16. Add 1 node with cinder role.
 | 
						|
            17. Run OSTF.
 | 
						|
            18. Remove node with cinder role.
 | 
						|
            19. Add 1 node with cinder-vmdk role and redeploy cluster.
 | 
						|
            20. Run OSTF.
 | 
						|
            21. Add 1 node with compute role, 1 node with cinder role and
 | 
						|
                redeploy cluster.
 | 
						|
            22. Run OSTF.
 | 
						|
 | 
						|
        Duration 5 hours
 | 
						|
 | 
						|
        """
 | 
						|
 | 
						|
        self.env.revert_snapshot("ready_with_9_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.debug("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Add role controller for node 1
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-01': ['controller']}
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure network interfaces.
 | 
						|
        # Public and Fixed networks are on the same interface
 | 
						|
        # because Nova will use the same vSwitch for PortGroups creating
 | 
						|
        # as a ESXi management interface is located in.
 | 
						|
        interfaces = {
 | 
						|
            iface_alias('eth0'): ["fuelweb_admin"],
 | 
						|
            iface_alias('eth1'): ["public", "fixed"],
 | 
						|
            iface_alias('eth2'): ["management", ],
 | 
						|
            iface_alias('eth3'): [],
 | 
						|
            iface_alias('eth4'): ["storage"]
 | 
						|
        }
 | 
						|
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
        # Configure VMWare vCenter
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Add 1 node with cinder role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-02': ['cinder']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        self.fuel_web.update_node_networks(slave_nodes[-1]['id'], interfaces)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Remove 1 node with cinder role
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id, {'slave-02': ['cinder']}, False, True)
 | 
						|
 | 
						|
        # Add 1 node with cinder-vmware role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-03': ['cinder-vmware']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        self.fuel_web.update_node_networks(slave_nodes[-1]['id'], interfaces)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Add 1 node with cinder role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-02': ['cinder']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        self.fuel_web.update_node_networks(slave_nodes[-1]['id'], interfaces)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Remove nodes with roles: cinder-vmdk and cinder
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-02': ['cinder'],
 | 
						|
             'slave-03': ['cinder-vmware']}, False, True)
 | 
						|
 | 
						|
        # Add 1 node with compute role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-04': ['compute']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        self.fuel_web.update_node_networks(slave_nodes[-1]['id'], interfaces)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Add 1 node with cinder role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-03': ['cinder']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        self.fuel_web.update_node_networks(slave_nodes[-1]['id'], interfaces)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Remove node with cinder role
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-03': ['cinder']}, False, True)
 | 
						|
 | 
						|
        # Add 1 node with cinder-vmdk role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-02': ['cinder-vmware']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
        self.fuel_web.update_node_networks(slave_nodes[-1]['id'], interfaces)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke'])
 | 
						|
 | 
						|
        # Add 1 node with compute role and 1 node with cinder role and redeploy
 | 
						|
        # cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-03': ['compute'],
 | 
						|
             'slave-05': ['cinder']}
 | 
						|
        )
 | 
						|
 | 
						|
        slave_nodes = self.fuel_web.client.list_cluster_nodes(cluster_id)
 | 
						|
 | 
						|
        for node_index in range(-1, -3, -1):
 | 
						|
            self.fuel_web.update_node_networks(
 | 
						|
                slave_nodes[node_index]['id'], interfaces
 | 
						|
            )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_9],
 | 
						|
          groups=["vcenter_delete_controler"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_delete_controller(self):
 | 
						|
        """Deploy environment of vcenter+qemu nova vlan, default backend for
 | 
						|
           glance and deletion one node with controller role
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Add 4 nodes with Controller roles
 | 
						|
            3. Add 2 nodes with compute role
 | 
						|
            4. Add 1 node with cinder role
 | 
						|
            5. Add 1 node with cinder-vmware role
 | 
						|
            6. Add a node with compute-vmware role
 | 
						|
            7. Set Nova-Network VlanManager as a network backend.
 | 
						|
            8. Deploy the cluster
 | 
						|
            9. Run OSTF.
 | 
						|
            10. Remove 1 node with controller role and redeploy cluster.
 | 
						|
            11. Run OSTF.
 | 
						|
 | 
						|
        Duration 3 hours
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_9_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.debug("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Configure network interfaces.
 | 
						|
        # Public and Fixed networks are on the same interface
 | 
						|
        # because Nova will use the same vSwitch for PortGroups creating
 | 
						|
        # as a ESXi management interface is located in.
 | 
						|
 | 
						|
        # Assign role to node
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-01': ['controller'],
 | 
						|
             'slave-02': ['controller'],
 | 
						|
             'slave-03': ['controller'],
 | 
						|
             'slave-04': ['controller'],
 | 
						|
             'slave-05': ['compute'],
 | 
						|
             'slave-06': ['compute'],
 | 
						|
             'slave-07': ['cinder'],
 | 
						|
             'slave-08': ['cinder-vmware'],
 | 
						|
             'slave-09': ['compute-vmware']})
 | 
						|
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
 | 
						|
        target_node_1 = self.node_name('slave-09')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_1=target_node_1
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['smoke', 'sanity', 'ha'],
 | 
						|
            timeout=60 * 60)
 | 
						|
 | 
						|
        # Remove 1 node with controller role and redeploy cluster
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {'slave-04': ['controller'], }, False, True)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id, check_services=False)
 | 
						|
 | 
						|
        # TODO: Fix the function when bug #1457515 will be fixed.
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id, test_sets=['smoke', 'sanity', 'ha'],
 | 
						|
            should_fail=1,
 | 
						|
            failed_test_name=['Check that required services are running'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ha_nova_flat_multiple_clusters"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_nova_flat_multiple_clusters(self):
 | 
						|
        """Deploy environment in HA with compute-vmware and multiple \
 | 
						|
        clusters. Check network connection between VM's from different \
 | 
						|
        hypervisors.
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                compute
 | 
						|
                cinder-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
            8. Create 2 VMs on each hypervisor
 | 
						|
            9. Verify that VMs on different hypervisors should communicate
 | 
						|
                between each other
 | 
						|
 | 
						|
        Duration 112 min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE
 | 
						|
        )
 | 
						|
 | 
						|
        logger.debug("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller'],
 | 
						|
                'slave-04': ['compute', 'cinder'],
 | 
						|
                'slave-05': ['cinder-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id, multiclusters=True)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
        # TODO: Fix the function when bug #1457404 will be fixed.
 | 
						|
        os_ip = self.fuel_web.get_public_vip(cluster_id)
 | 
						|
        os_conn = os_actions.OpenStackActions(
 | 
						|
            os_ip, SERVTEST_USERNAME,
 | 
						|
            SERVTEST_PASSWORD,
 | 
						|
            SERVTEST_TENANT)
 | 
						|
 | 
						|
        try:
 | 
						|
            self.create_vm(os_conn=os_conn, vm_count=6)
 | 
						|
        except TimeoutError:
 | 
						|
            logger.warning("Tests failed to create VMs on each hypervisors,"
 | 
						|
                           " try add 4 VMs"
 | 
						|
                           " and if it fails again - test will fails ")
 | 
						|
            self.create_vm(os_conn=os_conn, vm_count=4)
 | 
						|
 | 
						|
        # Verify that current state of each VMs is Active
 | 
						|
        srv_list = os_conn.get_servers()
 | 
						|
        for srv in srv_list:
 | 
						|
            assert_true(os_conn.get_instance_detail(srv).status != 'ERROR',
 | 
						|
                        "Current state of Vm {0} is {1}".format(
 | 
						|
                            srv.name, os_conn.get_instance_detail(srv).status))
 | 
						|
            try:
 | 
						|
                wait(
 | 
						|
                    lambda:
 | 
						|
                    os_conn.get_instance_detail(srv).status == "ACTIVE",
 | 
						|
                    timeout=60 * 60)
 | 
						|
            except TimeoutError:
 | 
						|
                logger.error(
 | 
						|
                    "Current state of Vm {0} is {1}".format(
 | 
						|
                        srv.name, os_conn.get_instance_detail(srv).status))
 | 
						|
        # Get ip of VMs
 | 
						|
        srv_ip = []
 | 
						|
        srv_list = os_conn.get_servers()
 | 
						|
        for srv in srv_list:
 | 
						|
            ip = srv.networks[srv.networks.keys()[0]][0]
 | 
						|
            srv_ip.append(ip)
 | 
						|
 | 
						|
        # VMs on different hypervisors should communicate between each other
 | 
						|
        for ip_1 in srv_ip:
 | 
						|
            primary_controller = self.fuel_web.get_nailgun_primary_node(
 | 
						|
                self.env.d_env.nodes().slaves[0])
 | 
						|
            ssh = self.fuel_web.get_ssh_for_node(primary_controller.name)
 | 
						|
            logger.info("Connect to VM {0}".format(ip_1))
 | 
						|
            for ip_2 in srv_ip:
 | 
						|
                if ip_1 != ip_2:
 | 
						|
                    # Check server's connectivity
 | 
						|
                    res = int(
 | 
						|
                        os_conn.execute_through_host(
 | 
						|
                            ssh, ip_1, "ping -q -c3 " + ip_2 +
 | 
						|
                            "| grep -o '[0-9] packets received'"
 | 
						|
                            "| cut -f1 -d ' '")['stdout'])
 | 
						|
                    assert_true(
 | 
						|
                        res == 3,
 | 
						|
                        "VM{0} not ping from Vm {1}, received {2} icmp".format(
 | 
						|
                            ip_1, ip_2, res))
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ha_nova_vlan_multiple_clusters"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_nova_vlan_multiple_clusters(self):
 | 
						|
        """Deploy environment in HA with compute-vmware and multiple \
 | 
						|
        clusters. Check network connection between VM's from different \
 | 
						|
        hypervisors.
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                compute
 | 
						|
                cinder-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
            8. Create 2 VMs on each hypervisor
 | 
						|
            9. Verify that VMs on different hypervisors should communicate
 | 
						|
                between each other
 | 
						|
 | 
						|
        Duration 112 min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE
 | 
						|
        )
 | 
						|
 | 
						|
        logger.debug("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller'],
 | 
						|
                'slave-04': ['compute', 'cinder'],
 | 
						|
                'slave-05': ['cinder-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id, multiclusters=True)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.verify_network(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha'])
 | 
						|
 | 
						|
        # TODO: Fix the function when bug #1457404 will be fixed.
 | 
						|
        os_ip = self.fuel_web.get_public_vip(cluster_id)
 | 
						|
        os_conn = os_actions.OpenStackActions(
 | 
						|
            os_ip, SERVTEST_USERNAME,
 | 
						|
            SERVTEST_PASSWORD,
 | 
						|
            SERVTEST_TENANT)
 | 
						|
 | 
						|
        try:
 | 
						|
            self.create_vm(os_conn=os_conn, vm_count=6)
 | 
						|
        except TimeoutError:
 | 
						|
            logger.warning("Tests failed to create VMs on each hypervisors,"
 | 
						|
                           " try add 4 VMs"
 | 
						|
                           " and if it fails again - test will fails ")
 | 
						|
            self.create_vm(os_conn=os_conn, vm_count=4)
 | 
						|
 | 
						|
        # Verify that current state of each VMs is Active
 | 
						|
        srv_list = os_conn.get_servers()
 | 
						|
        for srv in srv_list:
 | 
						|
            assert_true(os_conn.get_instance_detail(srv).status != 'ERROR',
 | 
						|
                        "Current state of Vm {0} is {1}".format(
 | 
						|
                            srv.name, os_conn.get_instance_detail(srv).status))
 | 
						|
            try:
 | 
						|
                wait(
 | 
						|
                    lambda:
 | 
						|
                    os_conn.get_instance_detail(srv).status == "ACTIVE",
 | 
						|
                    timeout=60 * 60)
 | 
						|
            except TimeoutError:
 | 
						|
                logger.error(
 | 
						|
                    "Current state of Vm {0} is {1}".format(
 | 
						|
                        srv.name, os_conn.get_instance_detail(srv).status))
 | 
						|
        # Get ip of VMs
 | 
						|
        srv_ip = []
 | 
						|
        srv_list = os_conn.get_servers()
 | 
						|
        for srv in srv_list:
 | 
						|
            ip = srv.networks[srv.networks.keys()[0]][0]
 | 
						|
            srv_ip.append(ip)
 | 
						|
 | 
						|
        # VMs on different hypervisors should communicate between each other
 | 
						|
        for ip_1 in srv_ip:
 | 
						|
            primary_controller = self.fuel_web.get_nailgun_primary_node(
 | 
						|
                self.env.d_env.nodes().slaves[0])
 | 
						|
            ssh = self.fuel_web.get_ssh_for_node(primary_controller.name)
 | 
						|
            logger.info("Connect to VM {0}".format(ip_1))
 | 
						|
            for ip_2 in srv_ip:
 | 
						|
                if ip_1 != ip_2:
 | 
						|
                    # Check server's connectivity
 | 
						|
                    res = int(
 | 
						|
                        os_conn.execute_through_host(
 | 
						|
                            ssh, ip_1, "ping -q -c3 " + ip_2 +
 | 
						|
                            "| grep -o '[0-9] packets received'"
 | 
						|
                            "| cut -f1 -d ' '")['stdout'])
 | 
						|
                    assert_true(
 | 
						|
                        res == 3,
 | 
						|
                        "VM{0} not ping from Vm {1}, received {2} icmp".format(
 | 
						|
                            ip_1, ip_2, res))
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ha_glance_backend_multiple_cluster"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_glance_backend_multiple_cluster(self):
 | 
						|
        """Deploy environment with nova-vlan in HA with multiple cluster \
 | 
						|
         (Controller + ComputeVMWare), CinderVMDK, Cinder and VMWare \
 | 
						|
         datastore as backend for Glance
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set VMWare vCenter/ESXi datastore for images (Glance)
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                compute + cinder
 | 
						|
                compute-vmware
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h 10min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_vcenter': True,
 | 
						|
                      'images_ceph': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller'],
 | 
						|
                'slave-04': ['compute', 'cinder'],
 | 
						|
                'slave-05': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
        target_node_2 = self.node_name('slave-05')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            vc_glance=True,
 | 
						|
            multiclusters=True,
 | 
						|
            target_node_2=target_node_2
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_9],
 | 
						|
          groups=["vcenter_ha_ceph"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_ceph(self):
 | 
						|
        """Deploy environment in HA with ComputeVMWare and Ceph \
 | 
						|
        (Ceph RBD for volumes/images and RadosGW)
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set Ceph as storage backend
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                ceph-osd
 | 
						|
                ceph-osd
 | 
						|
                compute
 | 
						|
                compute-vmware
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h 10min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_9_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_ceph': True,
 | 
						|
                      'volumes_ceph': True,
 | 
						|
                      'osd_pool_size': '2',
 | 
						|
                      'objects_ceph': True,
 | 
						|
                      'volumes_lvm': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller'],
 | 
						|
                'slave-04': ['ceph-osd'],
 | 
						|
                'slave-05': ['ceph-osd'],
 | 
						|
                'slave-06': ['compute'],
 | 
						|
                'slave-07': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_2 = self.node_name('slave-07')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            multiclusters=True,
 | 
						|
            target_node_2=target_node_2
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_9],
 | 
						|
          groups=["vcenter_ha_cinder_and_ceph"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_cinder_and_ceph(self):
 | 
						|
        """Deploy environment in HA with Cinder and Ceph \
 | 
						|
        (Ceph RBD for images/ephemeral volumes and RadosGW)
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network VLAN Manager as a network backend
 | 
						|
            3. Set Ceph RBD for images/ephemeral volumes and RadosGW
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                ceph-osd + cinder
 | 
						|
                ceph-osd + cinder-vmware
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h 10min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_9_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_ceph': True,
 | 
						|
                      'volumes_ceph': False,
 | 
						|
                      'objects_ceph': True,
 | 
						|
                      'osd_pool_size': '2',
 | 
						|
                      'volumes_lvm': True})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller'],
 | 
						|
                'slave-04': ['ceph-osd', 'cinder'],
 | 
						|
                'slave-05': ['ceph-osd', 'cinder-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        self.configure_nova_vlan(cluster_id)
 | 
						|
        self.fuel_web.vcenter_configure(cluster_id)
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ha_multiroles_cindervmdk_and_cinder"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_multiroles_cindervmdk_and_cinder(self):
 | 
						|
        """Deploy environment in HA with ComputeVMWare, Cinder and \
 | 
						|
        check multiroles with CinderVMDK
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller + cinder + cinder-vmware
 | 
						|
                compute + cinder + cinder-vmware
 | 
						|
                compute-vmware
 | 
						|
            4. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            5. Deploy the cluster
 | 
						|
            6. Run network verification
 | 
						|
            7. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h 10min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE)
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller', 'cinder', 'cinder-vmware'],
 | 
						|
                'slave-04': ['compute', 'cinder', 'cinder-vmware'],
 | 
						|
                'slave-05': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_2 = self.node_name('slave-05')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_2=target_node_2,
 | 
						|
            multiclusters=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform'])
 | 
						|
 | 
						|
    @test(depends_on=[SetupEnvironment.prepare_slaves_5],
 | 
						|
          groups=["vcenter_ha_multiroles_cindervmdk_and_ceph"])
 | 
						|
    @log_snapshot_after_test
 | 
						|
    def vcenter_ha_multiroles_cindervmdk_and_ceph(self):
 | 
						|
        """Deploy environment in HA with ComputeVMWare, Ceph and \
 | 
						|
        check multiroles with CinderVMDK
 | 
						|
 | 
						|
        Scenario:
 | 
						|
            1. Create cluster with vCenter support
 | 
						|
            2. Set Nova-Network FlatDHCP Manager as a network backend
 | 
						|
            3. Set Ceph as storage backend
 | 
						|
            4. Add nodes with following roles:
 | 
						|
                controller
 | 
						|
                controller
 | 
						|
                controller + ceph-osd + cinder-vmware
 | 
						|
                compute + ceph-osd + cinder-vmware
 | 
						|
                compute-vmware
 | 
						|
            5. Assign vCenter cluster(s) to:
 | 
						|
                controller
 | 
						|
                compute-vmware
 | 
						|
            6. Deploy the cluster
 | 
						|
            7. Run network verification
 | 
						|
            8. Run OSTF
 | 
						|
 | 
						|
        Duration: 2h 10min
 | 
						|
 | 
						|
        """
 | 
						|
        self.env.revert_snapshot("ready_with_5_slaves")
 | 
						|
 | 
						|
        # Configure cluster
 | 
						|
        cluster_id = self.fuel_web.create_cluster(
 | 
						|
            name=self.__class__.__name__,
 | 
						|
            mode=DEPLOYMENT_MODE,
 | 
						|
            settings={'images_ceph': True,
 | 
						|
                      'volumes_ceph': True,
 | 
						|
                      'osd_pool_size': '2',
 | 
						|
                      'objects_ceph': True,
 | 
						|
                      'volumes_lvm': False})
 | 
						|
 | 
						|
        logger.info("cluster is {}".format(cluster_id))
 | 
						|
 | 
						|
        # Assign roles to nodes
 | 
						|
        self.fuel_web.update_nodes(
 | 
						|
            cluster_id,
 | 
						|
            {
 | 
						|
                'slave-01': ['controller'],
 | 
						|
                'slave-02': ['controller'],
 | 
						|
                'slave-03': ['controller', 'ceph-osd', 'cinder-vmware'],
 | 
						|
                'slave-04': ['compute', 'ceph-osd', 'cinder-vmware'],
 | 
						|
                'slave-05': ['compute-vmware']
 | 
						|
            }
 | 
						|
        )
 | 
						|
 | 
						|
        # Configure VMWare vCenter settings
 | 
						|
        target_node_2 = self.node_name('slave-05')
 | 
						|
        self.fuel_web.vcenter_configure(
 | 
						|
            cluster_id,
 | 
						|
            target_node_2=target_node_2,
 | 
						|
            multiclusters=True
 | 
						|
        )
 | 
						|
 | 
						|
        self.fuel_web.deploy_cluster_wait(cluster_id)
 | 
						|
        self.fuel_web.run_ostf(
 | 
						|
            cluster_id=cluster_id,
 | 
						|
            test_sets=['sanity', 'smoke', 'ha', 'tests_platform'])
 |