Updated Branches:
  refs/heads/master 5af61a85a -> 03fac8318

CLOUDSTACK-3358: create template from a volume/snapshot should also take input 
from User/Admin whether xstools / vmware tools installed in the VM
Signed off by : Nitin Mehta<[email protected]>


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

Branch: refs/heads/master
Commit: 03fac831800a8b7fd34af607a0ca36ced05cb0ea
Parents: 5af61a8
Author: Harikrishna Patnala <[email protected]>
Authored: Fri Jul 19 11:54:09 2013 +0530
Committer: Nitin Mehta <[email protected]>
Committed: Fri Jul 19 11:55:32 2013 +0530

----------------------------------------------------------------------
 .../api/command/user/template/CreateTemplateCmd.java          | 7 +++++++
 server/src/com/cloud/hypervisor/HypervisorGuruBase.java       | 2 +-
 server/src/com/cloud/template/TemplateManagerImpl.java        | 4 ++++
 3 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03fac831/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
----------------------------------------------------------------------
diff --git 
a/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
 
b/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
index 271357d..6116a4e 100644
--- 
a/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
+++ 
b/api/src/org/apache/cloudstack/api/command/user/template/CreateTemplateCmd.java
@@ -102,6 +102,9 @@ import java.util.Map;
     @Parameter(name=ApiConstants.DETAILS, type=CommandType.MAP, 
description="Template details in key/value pairs.")
     protected Map details;
 
+    @Parameter(name = ApiConstants.IS_DYNAMICALLY_SCALABLE, type = 
CommandType.BOOLEAN, description = "true if template contains XS/VMWare tools 
inorder to support dynamic scaling of VM cpu/memory")
+    protected Boolean isDynamicallyScalable;
+
     // ///////////////////////////////////////////////////
     // ///////////////// Accessors ///////////////////////
     // ///////////////////////////////////////////////////
@@ -169,6 +172,10 @@ import java.util.Map;
         return params;
     }
 
+    public boolean isDynamicallyScalable() {
+        return isDynamicallyScalable == null ? false : isDynamicallyScalable;
+    }
+
     // ///////////////////////////////////////////////////
     // ///////////// API Implementation///////////////////
     // ///////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03fac831/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java 
b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
index 769648a..2ffd682 100644
--- a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
+++ b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java
@@ -120,7 +120,7 @@ public abstract class HypervisorGuruBase extends 
AdapterBase implements Hypervis
             details.putAll(detailsInVm);
         }
         if (details.get(VirtualMachine.IsDynamicScalingEnabled) == null || 
details.get(VirtualMachine.IsDynamicScalingEnabled).isEmpty()) {
-            to. setEnableDynamicallyScaleVm(false);
+            to.setEnableDynamicallyScaleVm(false);
         } else {
             // check if XStools/VMWare tools are present in the VM and dynamic 
scaling feature is enabled (per zone/global)
             
to.setEnableDynamicallyScaleVm(details.get(VirtualMachine.IsDynamicScalingEnabled).equals("true")
 && 
Boolean.parseBoolean(_configServer.getConfigValue(Config.EnableDynamicallyScaleVm.key(),
 Config.ConfigurationParameterScope.zone.toString(), vm.getDataCenterId())));

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03fac831/server/src/com/cloud/template/TemplateManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/TemplateManagerImpl.java 
b/server/src/com/cloud/template/TemplateManagerImpl.java
index c6446ac..f1a5602 100755
--- a/server/src/com/cloud/template/TemplateManagerImpl.java
+++ b/server/src/com/cloud/template/TemplateManagerImpl.java
@@ -1457,6 +1457,7 @@ public class TemplateManagerImpl extends ManagerBase 
implements TemplateManager,
         if (isPublic == null) {
             isPublic = Boolean.FALSE;
         }
+        boolean  isDynamicScalingEnabled = cmd.isDynamicallyScalable();
         // check whether template owner can create public templates
         boolean allowPublicUserTemplates = 
Boolean.parseBoolean(_configServer.getConfigValue(Config.AllowPublicUserTemplates.key(),
                 Config.ConfigurationParameterScope.account.toString(), 
templateOwner.getId()));
@@ -1497,6 +1498,7 @@ public class TemplateManagerImpl extends ManagerBase 
implements TemplateManager,
                 }
                 throw new CloudRuntimeException(msg);
             }
+
             hyperType = this._volumeDao.getHypervisorType(volumeId);
         } else { // create template from snapshot
             snapshot = _snapshotDao.findById(snapshotId);
@@ -1568,6 +1570,8 @@ public class TemplateManagerImpl extends ManagerBase 
implements TemplateManager,
         privateTemplate = new VMTemplateVO(nextTemplateId, uniqueName, name, 
ImageFormat.RAW, isPublic, featured, isExtractable, TemplateType.USER,
                 null, null, requiresHvmValue, bitsValue, 
templateOwner.getId(), null, description, passwordEnabledValue, 
guestOS.getId(), true,
                 hyperType, templateTag, cmd.getDetails());
+        privateTemplate.setDynamicallyScalable(isDynamicScalingEnabled);
+
         if (sourceTemplateId != null) {
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug("This template is getting created from other 
template, setting source template Id to: " + sourceTemplateId);

Reply via email to