[
https://issues.apache.org/jira/browse/CLOUDSTACK-9140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15130062#comment-15130062
]
ASF GitHub Bot commented on CLOUDSTACK-9140:
--------------------------------------------
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
> Testcase to verify if Dedicated cluster is used for virtual routers that
> belong to non-dedicated account
> --------------------------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-9140
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9140
> Project: CloudStack
> Issue Type: Test
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Automation
> Affects Versions: 4.2.1
> Reporter: Priti Sarap
> Fix For: 4.5.1
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)