cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chipchild...@apache.org
Subject [19/50] [abbrv] git commit: updated refs/heads/ldapplugin to 7bc705e
Date Wed, 17 Jul 2013 17:35:18 GMT
CLOUDSTACK-2159 Anti-Affinity - When "HostAntiAffinityProcessor" plugin is not included in
the deployment , deployVirtualMachine() command does not error out when passing the affiitygroupnames
parameter.

Changes:
- Added a check during vm deployment to see if a processor for the affinity group type is
available


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ee664a1c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ee664a1c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ee664a1c

Branch: refs/heads/ldapplugin
Commit: ee664a1cac9030f1e9902a6d9a574788ae34f9a6
Parents: 9f019ec
Author: Prachi Damle <prachi@cloud.com>
Authored: Tue Jul 16 15:21:14 2013 -0700
Committer: Prachi Damle <prachi@cloud.com>
Committed: Tue Jul 16 15:48:07 2013 -0700

----------------------------------------------------------------------
 .../affinity/AffinityGroupService.java          |  2 ++
 client/tomcatconf/applicationContext.xml.in     |  4 +++-
 server/src/com/cloud/vm/UserVmManagerImpl.java  |  8 +++++++-
 .../affinity/AffinityGroupServiceImpl.java      | 20 ++++++++++++++++++++
 4 files changed, 32 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee664a1c/api/src/org/apache/cloudstack/affinity/AffinityGroupService.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/affinity/AffinityGroupService.java b/api/src/org/apache/cloudstack/affinity/AffinityGroupService.java
index 7423c48..1b30e58 100644
--- a/api/src/org/apache/cloudstack/affinity/AffinityGroupService.java
+++ b/api/src/org/apache/cloudstack/affinity/AffinityGroupService.java
@@ -73,4 +73,6 @@ public interface AffinityGroupService {
 
     UserVm updateVMAffinityGroups(Long vmId, List<Long> affinityGroupIds);
 
+    boolean isAffinityGroupProcessorAvailable(String affinityGroupType);
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee664a1c/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 0f3d328..fa52d3f 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -899,7 +899,9 @@
 
   <bean id="UcsManager" class="com.cloud.ucs.manager.UcsManagerImpl" />
 
-  <bean id="AffinityGroupServiceImpl" class="org.apache.cloudstack.affinity.AffinityGroupServiceImpl"/>
+  <bean id="AffinityGroupServiceImpl" class="org.apache.cloudstack.affinity.AffinityGroupServiceImpl">
+  	<property name="AffinityGroupProcessors" value="#{affinityProcessors.Adapters}" />
+  </bean>
   <bean id="DeploymentPlanningManager" class="com.cloud.deploy.DeploymentPlanningManagerImpl">
     <property name="Planners" value="#{deploymentPlanners.Adapters}" />
 	<property name="AffinityGroupProcessors" value="#{affinityProcessors.Adapters}" />

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee664a1c/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index bd7a791..461176e 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -37,6 +37,7 @@ import org.apache.log4j.Logger;
 
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 import org.apache.cloudstack.acl.SecurityChecker.AccessType;
+import org.apache.cloudstack.affinity.AffinityGroupService;
 import org.apache.cloudstack.affinity.AffinityGroupVO;
 import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
 import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
@@ -414,6 +415,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager,
Use
     DedicatedResourceDao _dedicatedDao;
     @Inject
     ConfigurationServer _configServer;
+    @Inject
+    AffinityGroupService _affinityGroupService;
 
     protected ScheduledExecutorService _executor = null;
     protected int _expungeInterval;
@@ -2488,7 +2491,10 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager,
Use
             for (Long affinityGroupId : affinityGroupIdList) {
                 AffinityGroupVO ag = _affinityGroupDao.findById(affinityGroupId);
                 if (ag == null) {
-                    throw new InvalidParameterValueException("Unable to find affinity group
by id " + affinityGroupId);
+                    throw new InvalidParameterValueException("Unable to find affinity group
" + ag);
+                } else if (!_affinityGroupService.isAffinityGroupProcessorAvailable(ag.getType()))
{
+                    throw new InvalidParameterValueException("Affinity group type is not
supported for group: " + ag
+                            + " ,type: " + ag.getType() + " , Please try again after removing
the affinity group");
                 } else {
                     // verify permissions
                     _accountMgr.checkAccess(caller, null, true, owner, ag);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ee664a1c/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java b/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
index 287e622..e1fba1d 100644
--- a/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
+++ b/server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java
@@ -82,6 +82,16 @@ public class AffinityGroupServiceImpl extends ManagerBase implements AffinityGro
     @Inject
     private UserVmDao _userVmDao;
 
+    protected List<AffinityGroupProcessor> _affinityProcessors;
+
+    public List<AffinityGroupProcessor> getAffinityGroupProcessors() {
+        return _affinityProcessors;
+    }
+
+    public void setAffinityGroupProcessors(List<AffinityGroupProcessor> affinityProcessors)
{
+        this._affinityProcessors = affinityProcessors;
+    }
+
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_AFFINITY_GROUP_CREATE, eventDescription = "Creating
Affinity Group", create = true)
     public AffinityGroup createAffinityGroup(String account, Long domainId, String affinityGroupName,
@@ -361,4 +371,14 @@ public class AffinityGroupServiceImpl extends ManagerBase implements
AffinityGro
 
     }
 
+    @Override
+    public boolean isAffinityGroupProcessorAvailable(String affinityGroupType) {
+        for (AffinityGroupProcessor processor : _affinityProcessors) {
+            if (affinityGroupType != null && affinityGroupType.equals(processor.getType()))
{
+                return true;
+            }
+        }
+        return false;
+    }
+
 }


Mime
View raw message