cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pritisarap12 <...@git.apache.org>
Subject [GitHub] cloudstack pull request: CLOUDSTACK-9140: Testcase to verify if De...
Date Wed, 17 Feb 2016 07:14:51 GMT
Github user pritisarap12 commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1218#discussion_r53127878
  
    --- Diff: test/integration/component/maint/testpath_disable_enable_zone.py ---
    @@ -1691,3 +1696,159 @@ def test_01_disable_enable_host(self):
                              )
     
             return
    +
    +
    +class TestClusterDedication(cloudstackTestCase):
    +
    +    @classmethod
    +    def setUpClass(cls):
    +        testClient = super(TestClusterDedication, cls).getClsTestClient()
    +        cls.apiclient = testClient.getApiClient()
    +        cls.testdata = testClient.getParsedTestDataConfig()
    +        cls.hypervisor = cls.testClient.getHypervisorInfo()
    +
    +        # Get Zone, Domain and templates
    +        cls.domain = get_domain(cls.apiclient)
    +        cls.zone = get_zone(cls.apiclient, testClient.getZoneForTests())
    +
    +        cls.template = get_template(
    +            cls.apiclient,
    +            cls.zone.id,
    +            cls.testdata["ostype"])
    +
    +        cls.Skiptest = False
    +        cls._cleanup = []
    +        cls.clusters = Cluster.list(cls.apiclient, zoneid=cls.zone.id)
    +        if len(cls.clusters) < 2:
    +            cls.Skiptest = True
    +
    +        try:
    +            # Create an account
    +            cls.account_1 = Account.create(
    +                cls.apiclient,
    +                cls.testdata["account"],
    +                domainid=cls.domain.id
    +            )
    +
    +            cls._cleanup.append(cls.account_1)
    +
    +            cls.account_2 = Account.create(
    +                cls.apiclient,
    +                cls.testdata["account"],
    +                domainid=cls.domain.id
    +            )
    +
    +            cls._cleanup.append(cls.account_2)
    +            # Create user api client of the account
    +            cls.userapiclient_1 = testClient.getUserApiClient(
    +                UserName=cls.account_1.name,
    +                DomainName=cls.account_1.domain
    +            )
    +            cls.userapiclient_2 = testClient.getUserApiClient(
    +                UserName=cls.account_2.name,
    +                DomainName=cls.account_2.domain
    +            )
    +
    +            # Create Service offering
    +            cls.service_offering = ServiceOffering.create(
    +                cls.apiclient,
    +                cls.testdata["service_offering"],
    +            )
    +            cls._cleanup.append(cls.service_offering)
    +
    +            cls.disk_offering = DiskOffering.create(
    +                cls.apiclient,
    +                cls.testdata["disk_offering"],
    +            )
    +
    +            cls._cleanup.append(cls.disk_offering)
    +
    +        except Exception as e:
    +            cls.tearDownClass()
    +            raise e
    +        return
    +
    +    @classmethod
    +    def tearDownClass(cls):
    +        try:
    +            cleanup_resources(cls.apiclient, cls._cleanup)
    +        except Exception as e:
    +            raise Exception("Warning: Exception during cleanup : %s" % e)
    +
    +    def setUp(self):
    +
    +        if self.Skiptest:
    +            self.skipTest("Insufficient clusters to run the test")
    +
    +        self.apiclient = self.testClient.getApiClient()
    +        self.dbclient = self.testClient.getDbConnection()
    +        self.cleanup = []
    +
    +    def tearDown(self):
    +        try:
    +            listClusterscmd = listDedicatedClusters.listDedicatedClustersCmd()
    +            listClusterscmd.clusterid = self.clusters[0].id
    +            ret_list = self.apiclient.listDedicatedClusters(listClusterscmd)
    +            if ret_list:
    +                dedicateCmd = releaseDedicatedCluster.releaseDedicatedClusterCmd()
    +                dedicateCmd.clusterid = self.clusters[0].id
    +                self.apiclient.releaseDedicatedCluster(dedicateCmd)
    +
    +            cleanup_resources(self.apiclient, self.cleanup)
    +        except Exception as e:
    +            raise Exception("Warning: Exception during cleanup : %s" % e)
    +        return
    +
    +    @attr(tags=["basic", "advanced"], required_hardware="false")
    +    def test_01_dedicated_cluster_allocation(self):
    +        """ Dedicated cluster and router allocation
    +            1.   Dedicate a cluster to one account
    +            2.   Deploy a VM on dedicated account
    +            3.   Deploy another VM on another account.
    +            4.   Verify the dedicated cluster is not used for
    +                virtual routers that belong to non-dedicated account
    +        """
    +
    +        # Step 1
    +        dedicateCmd = dedicateCluster.dedicateClusterCmd()
    +        dedicateCmd.clusterid = self.clusters[0].id
    +        dedicateCmd.domainid = self.domain.id
    +        dedicateCmd.account = self.account_1.name
    +        self.apiclient.dedicateCluster(dedicateCmd)
    +
    +        # Step 2
    +        self.vm = VirtualMachine.create(
    +            self.userapiclient_1,
    +            self.testdata["small"],
    +            templateid=self.template.id,
    +            accountid=self.account_1.name,
    +            domainid=self.account_1.domainid,
    +            serviceofferingid=self.service_offering.id,
    +            zoneid=self.zone.id,
    +            mode=self.zone.networktype
    +        )
    +
    --- End diff --
    
    Added verification steps:
    While a cluster gets dedicated to an account a default affinity group gets created, 
    then deploy VM using that affinity group to ensure that the VM is deployed on dedicated
cluster.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message