コード例 #1
0
 def test_assign_network_pool_to_mgmt_domain(self, proxy, mgmt_domain_name,
                                             network_pool_name):
     '''Configure mgmt_domain by adding a network pool to it
     '''
     pool_config = RwMcYang.MgmtDomainPools_Network(name=network_pool_name)
     proxy.create_config(
         "/mgmt-domain/domain[name='%s']/pools/network" % mgmt_domain_name,
         pool_config)
コード例 #2
0
    def test_launchpad_starts_when_vm_pool_has_a_vm_resource(self, proxy,
            cloud_account, vm_pool_name, mgmt_domain_name, network_pool_name):
        '''Tests that a launchpad can now start when the vm pool has a vm
        resource

        Arguments:
            proxy              - a pytest fixture proxy to RwMcYang
            cloud_account_name - a pytest fixture for the cloud account name
            vm_pool_name       - a pytest fixture for the VM pool name
            mgmt_domain_name   - a pytest fixture for the management domain name

        Asserts:
            Cloud account has available resources
            VM pool has available resources
            Cloud account and vm pool agree on available resources
            Configured resource is reflected as assigned in operational data
            post assignment
            Launchpad reaches state 'started'

        '''
        account = proxy.get("/cloud-account/account[name='%s']" % cloud_account.name)
        cloud_vm_ids = [vm.id for vm in account.resources.vm]
        assert len(cloud_vm_ids) >= 1

        pool = proxy.get("/vm-pool/pool[name='%s']" % vm_pool_name)
        available_ids = [vm.id for vm in pool.available]
        assert len(available_ids) >= 1
        # Assert not split brain
        assert set(cloud_vm_ids).difference(set(available_ids)) == set([])

        pool_config = RwMcYang.VmPool.from_dict({
            'name':vm_pool_name,
            'cloud_account':cloud_account.name,
            'assigned':[{'id':available_ids[0]}]})
        proxy.replace_config("/vm-pool/pool[name='%s']" % vm_pool_name, pool_config)

        pool = proxy.get("/vm-pool/pool[name='%s']" % vm_pool_name)
        assigned_ids = [vm.id for vm in pool.assigned]
        assert available_ids[0] in assigned_ids

        # Create NW pool
        pool_config = RwMcYang.NetworkPool(
                name=network_pool_name,
                cloud_account=cloud_account.name,
                dynamic_scaling=True,
        )
        proxy.create_config('/network-pool/pool', pool_config)
        pool_config = RwMcYang.MgmtDomainPools_Network(name=network_pool_name)
        proxy.create_config("/mgmt-domain/domain[name='%s']/pools/network" % mgmt_domain_name, pool_config)


        proxy.wait_for(
            "/mgmt-domain/domain[name='%s']/launchpad/state" % mgmt_domain_name,
            'started',
            timeout=400,
            fail_on=['crashed'])