----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/11045/ -----------------------------------------------------------
(Updated May 16, 2013, 1:14 p.m.) Review request for cloudstack and Prachi Damle. Changes ------- Added a marvin test for validating implicit planner too. Description ------- Changes for implicitly dedicating a resource. This patch implements the implicit dedication portion of the feature described in the following FS https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dedicated+Resources+-+Private+zone%2C+pod%2C+cluster%2C+host+Functional+Spec Patch includes the following changes: 1. A new implicit planner which extends the functionality provided by FirstFitPlanner. 2. Implicit planner can be used in either strict or preferred mode. In strict mode it tries to deploy a vm of a given account on a host on which vms of the account are already running. If no such host is found it'll search for an empty host to service the request. Otherwise the deploy vm request fails. 3. In preferred mode, if a host which is running vms of the account or an empty host isn't found, the planner then tries to deploy on any other host provided it isn't running implicitly dedicated strict vms of any other account. 4. Updated the createServiceOffering api to configure the details for the planner that the service offering is using. 5. Made db changes to store the service offering details for the planner. 6. Unit tests for testing the implicit planner functionality. This addresses bug https://issues.apache.org/jira/browse/CLOUDSTACK-681. Diffs (updated) ----- api/src/com/cloud/deploy/DeploymentPlanner.java eb56a59 api/src/org/apache/cloudstack/api/ApiConstants.java f179aaa api/src/org/apache/cloudstack/api/command/admin/offering/CreateServiceOfferingCmd.java c155b70 client/pom.xml 197ba27 client/tomcatconf/applicationContext.xml.in d5c61bb client/tomcatconf/componentContext.xml.in 8a45e5f engine/schema/src/com/cloud/service/ServiceOfferingDetailsVO.java PRE-CREATION engine/schema/src/com/cloud/service/ServiceOfferingVO.java fd31d30 engine/schema/src/com/cloud/service/dao/ServiceOfferingDao.java 589de7c engine/schema/src/com/cloud/service/dao/ServiceOfferingDaoImpl.java 062103e engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDao.java PRE-CREATION engine/schema/src/com/cloud/service/dao/ServiceOfferingDetailsDaoImpl.java PRE-CREATION plugins/deployment-planners/implicit-dedication/pom.xml PRE-CREATION plugins/deployment-planners/implicit-dedication/src/com/cloud/deploy/ImplicitDedicationPlanner.java PRE-CREATION plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java PRE-CREATION plugins/pom.xml e49fac9 server/src/com/cloud/configuration/ConfigurationManager.java 2ce3fa0 server/src/com/cloud/configuration/ConfigurationManagerImpl.java d17b4d1 server/test/com/cloud/vpc/MockConfigurationManagerImpl.java f02895c server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java 7ffbe32 setup/db/db/schema-410to420.sql 86124ea test/integration/component/test_implicit_planner.py PRE-CREATION tools/marvin/marvin/integration/lib/base.py ecdc841 Diff: https://reviews.apache.org/r/11045/diff/ Testing ------- Following tests were done: 1. Deployed an instance for an account created using a service offering using implicit planner. Verified the host on which the first vm was deployed gets picked up for subsequent deployment requests for that account (using service offering with implicit planner). 2. If a deploy vm request is placed from another account, the host running implicit vm of a different account isn't picked up. 3. Verified for a deployment request with implicit planner in strict mode, first the planner looks for hosts running implicit vm of the account. If none are available then empty hosts are tried. Otherwise deploy vm fails. 4. Verified for a deployment request with implicit planner in preferred mode, first the planner looks for hosts running implicit vm of the account. If none are available then empty hosts are tried. Then in tries on all hosts besides the one running implicit strict vms of other account. 5. Unit tests to validate different scenarios. 6. Made sure there are no rat failures and patch applies cleanly. Thanks, Devdeep Singh