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

    https://github.com/apache/cloudstack/pull/1218#discussion_r51694011
  
    --- 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
    +        )
    +
    +        # Step 3
    +        self.vm_1 = VirtualMachine.create(
    +            self.userapiclient_2,
    +            self.testdata["small"],
    +            templateid=self.template.id,
    +            accountid=self.account_2.name,
    +            domainid=self.account_2.domainid,
    +            serviceofferingid=self.service_offering.id,
    +            zoneid=self.zone.id,
    +            mode=self.zone.networktype
    +        )
    +
    +        # Step 4
    +        routerList = list_routers(self.apiclient,
    +                                  clusterid=self.clusters[0].id,
    +                                  networkid=self.vm_1.nic[0].networkid
    +                                  )
    +        self.assertEqual(
    --- End diff --
    
    Add similar validation for vm_1 as well


---
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