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

Reply via email to