Github user sanju1010 commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1218#discussion_r51693967
  
    --- 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 --
    
    Can you please add few verification steps to make sure that vm and VR are 
being deployed on dedicated cluster when deploying with dedicated account?


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to