----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/10797/#review21187 -----------------------------------------------------------
Commit 965c7b9c35fc5680b2f35a8c8fed35c1232a643b in branch refs/heads/master from Prachi Damle <pra...@cloud.com> [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=965c7b9 ] Patch 2: CLOUDSTACK-681: Dedicated Resources - Explicit Dedication, Private zone, pod, cluster or host Patch 2 for https://reviews.apache.org/r/11379/ Created for files server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java, server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java, server/test/org/apache/cloudstack/affinity/AffinityApiUnitTest.java - ASF Subversion and Git Services On May 2, 2013, 2:53 p.m., deepti dohare wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/10797/ > ----------------------------------------------------------- > > (Updated May 2, 2013, 2:53 p.m.) > > > Review request for cloudstack, Devdeep Singh, Prachi Damle, and Nitin Mehta. > > > Description > ------- > > Review Request for "Dedicated Resources: Explicit Dedication" > ============================================================= > > Functional Spec for the above Private zone, pod, cluster or host, can be > found here: > https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dedicated+Resources+-+Private+zone%2C+pod%2C+cluster%2C+host+Functional+Spec > This patch request is a part of this feature. > > This feature allows a user to deploy VMs only in the resources dedicated to > his account or domain. > > 1. Resources(Zones, Pods, Clusters or hosts) can be dedicated to an account > or domain. > Implemented 12 new APIs to dedicate/list/release resources: > - dedicateZone, listDedicatedZones, releaseDedicatedZone for a Zone. > - dedicatePod, listDedicatedPods, releaseDedicatedPod for a Pod. > - dedicateCluster, listDedicatedClusters, releaseDedicatedCluster for a > Cluster > - dedicateHost, listDedicatedHosts, releaseDedicatedHost for a Host. > 2. Once a resource(eg. pod) is dedicated to an account, other resources(eg. > clusters/hosts) inside that cannot be further dedicated. > 3. Once a resource is dedicated to a domain, other resources inside that can > be further dedicated to its sub-domain or account. > 4. If any resource (eg.cluster) is dedicated to a account/domain, then > resources(eg. Pod) above that cannot be dedicated to different > accounts/domain (not belonging to the same domain) > 5. To use Explicit dedication, user needs to create an Affinity Group of type > 'ExplicitDedication' > 6. A VM can be deployed with the above affinity group parameter as an input. > 7. A new ExplicitDedicationProcessor has been added which will process the > affinity group of type 'Explicit Dedication' for a deployment of a VM that > demands dedicated resources. > This processor implements the AffinityGroupProcessor adapter. This > processor will update the avoid list. > 8. A VM requesting dedication will be deployed on dedicatd resources if > available with the user account. > 9. A VM requesting dedication can also be deployed on the dedicated resources > available with the parent domains iff no dedicated resources are available > with the current user's account or > domain. > 10. A VM (without dedication) can be deployed on shared host but not on > dedicated hosts. > 11. To modify the dedication, the resource has to be release first. > 12. Existing Private zone functionality has been redirected to Explicit > dedication of zones. > 13. Updated the db upgrade schema script. A new table "dedicated_resources" > has been added. > 14. Added the right permissions in commands.properties > 15. Unit tests: For the new APIs and Service, added unit tests under : > plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/DedicatedApiUnitTest.java > > > This addresses bug CLOUDSTACK-681. > > > Diffs > ----- > > api/src/com/cloud/dc/DedicatedResources.java PRE-CREATION > api/src/com/cloud/event/EventTypes.java 0ee7f40 > client/pom.xml a7c7009 > client/tomcatconf/applicationContext.xml.in 2e340bf > client/tomcatconf/commands.properties.in b49e1fb > client/tomcatconf/componentContext.xml.in 7a46981 > > engine/orchestration/src/org/apache/cloudstack/platform/orchestration/CloudOrchestrator.java > 963e4d7 > plugins/affinity-group-processors/explicit-dedication/pom.xml PRE-CREATION > > plugins/affinity-group-processors/explicit-dedication/src/org/apache/cloudstack/affinity/ExplicitDedicationProcessor.java > PRE-CREATION > plugins/dedicated-resources/pom.xml PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/DedicateClusterCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/DedicateHostCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/DedicatePodCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/DedicateZoneCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ListDedicatedClustersCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ListDedicatedHostsCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ListDedicatedPodsCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ListDedicatedZonesCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ReleaseDedicatedClusterCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ReleaseDedicatedHostCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ReleaseDedicatedPodCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/commands/ReleaseDedicatedZoneCmd.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/response/DedicateClusterResponse.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/response/DedicateHostResponse.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/response/DedicatePodResponse.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/api/response/DedicateZoneResponse.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/manager/DedicatedResourceManagerImpl.java > PRE-CREATION > > plugins/dedicated-resources/src/org/apache/cloudstack/dedicated/services/DedicatedService.java > PRE-CREATION > > plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/DedicatedApiTestConfiguration.java > PRE-CREATION > > plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/DedicatedApiUnitTest.java > PRE-CREATION > plugins/dedicated-resources/test/resource/dedicatedContext.xml PRE-CREATION > plugins/pom.xml b940271 > server/src/com/cloud/api/query/QueryManagerImpl.java 50018e5 > server/src/com/cloud/configuration/ConfigurationManagerImpl.java 37ca793 > server/src/com/cloud/dc/DedicatedResourceVO.java PRE-CREATION > server/src/com/cloud/dc/dao/ClusterDao.java 3ce0798 > server/src/com/cloud/dc/dao/ClusterDaoImpl.java 86dc65e > server/src/com/cloud/dc/dao/DedicatedResourceDao.java PRE-CREATION > server/src/com/cloud/dc/dao/DedicatedResourceDaoImpl.java PRE-CREATION > server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java c7162a2 > server/src/com/cloud/domain/dao/DomainDaoImpl.java c30ca5e > server/src/com/cloud/host/dao/HostDao.java 98bdcb4 > server/src/com/cloud/host/dao/HostDaoImpl.java 07a4232 > server/src/com/cloud/resource/ResourceManagerImpl.java c9c3f9c > server/src/com/cloud/user/AccountManagerImpl.java 8de73fb > server/src/com/cloud/user/DomainManagerImpl.java dbcbe4e > server/src/com/cloud/vm/UserVmManagerImpl.java 6179948 > > server/test/org/apache/cloudstack/affinity/AffinityApiTestConfiguration.java > 4dd6ad7 > > server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java > 709dfe2 > server/test/resources/affinityContext.xml 15476c1 > setup/db/create-schema.sql b1feb02 > setup/db/db/schema-410to420.sql 99b476d > > Diff: https://reviews.apache.org/r/10797/diff/ > > > Testing > ------- > > Unit tests: > For the new APIs and Service, added unit tests under: > plugins/dedicated-resources/test/org/apache/cloudstack/dedicated/DedicatedApiUnitTest.java > The tests validates the APIs: dedication of zone, pod, cluster and hosts. > Also added negative tests for the scenarios. > > Manual Testing Done > > Tests for DeployVirtualMachine > ============================== > Setup : 2 zones Z1 and Z2 , infrastructure: > Z1->(P1,P2), P1->(C1,C2), C1->(H1,H2), C2->H3, P2->C3, C3->H4 > Z2-> P3, P3->C4, C4->H5 > > domain(account) -> sub-domain(account) > D1(A1,U1)->SD1(SA1), D2(A2,U2)->SD2(SA2) > > Dedication: C1 dedicated to A1, P2 dedicated to D2 > Affinity group of type 'ExplicitDedication' for each account is > created. > > Tested the following scenarios: > 1. A1 deploys a VM with AG of type 'ExplicitDedication' on Z1, VM deployed on > H1/H2 > 2. SA1 deploys a VM with AG of type 'ExplicitDedication' on Z1. VM Deployment > failed. H1/H2 cannot be picked, since C1 is dedicated to account A1, not > domain. > 3. SA1 deploys a VM with NO Dedication required. VM deployed on H3. > 4. A1/U1/SA1/A2/U2/SA2 deploys a VM with NO Dedication required on Z1, VM > deployed on H3. > 5. U1 deploys a VM with AG of type 'ExplicitDedication' on Z1, VM deployment > failed. > 6. A2 deploys a VM with AG of type 'ExplicitDedication' on Z1, VM deployed on > H4. > 7. SA2 deploys a VM with AG of type 'ExplicitDedication' on Z1, VM deployed > on H4. SA2 belongs to SD2 which is a sub-domain of D2. > 8. Deployment of VM with AG of type 'ExplicitDedication' on zone Z2 will get > failed. since nothing is dedicated in Zone Z2 > > Tests for Migration of dedicated VMs > ==================================== > 1. Migrate a non-dedicated VM on dedicated Host: > - Alert is Raised > 2. Migrate a dedicated VM on non-dedicated host : > - Alert is Raised > > > Test for HostTags and Explicit Dedication > ========================================= > 1. Host Tag and AG of type 'ExplicitDedication': both provided > - if Host or its cluster/pod/zone is dedicated (to the caller's > account/domain) and Host is tagged, then deployment is successful else fail > the request. > 2. Host tag is provided and No dedication is required > - Host should be tagged but not dedicated. > > Test for Deletion of domains and accounts > ========================================= > 1. If an account or a domain has dedicated resources and admin deletes that > account/domain, dedication is automatically removed. > > > > Thanks, > > deepti dohare > >