Repository: cloudstack Updated Branches: refs/heads/4.4 86aff86b7 -> c70cadff0
Allow for length of password on VMs to be set via global settings (cherry picked from commit 96412e3e58fd1ced9d269e4552aaa6410bedf556) Conflicts: setup/db/db/schema-430to440.sql Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c70cadff Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c70cadff Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c70cadff Branch: refs/heads/4.4 Commit: c70cadff0e3d70f625e7160a3aee600a3198cc67 Parents: 86aff86 Author: Ian Duffy <ian.du...@paddypower.com> Authored: Wed Jun 25 19:51:31 2014 +0100 Committer: Daan Hoogland <d...@onecht.net> Committed: Wed Jun 25 21:22:06 2014 +0200 ---------------------------------------------------------------------- server/src/com/cloud/server/ManagementServerImpl.java | 3 ++- server/src/com/cloud/vm/UserVmManagerImpl.java | 13 ++++++------- setup/db/db/schema-430to440.sql | 2 ++ 3 files changed, 10 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c70cadff/server/src/com/cloud/server/ManagementServerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index f373e8b..1e9a91e 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -894,7 +894,8 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe @Override public String generateRandomPassword() { - return PasswordGenerator.generateRandomPassword(6); + Integer passwordLength = Integer.parseInt(_configDao.getValue("vm.password.length")); + return PasswordGenerator.generateRandomPassword(passwordLength); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c70cadff/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 02be03c..74d2375 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -35,6 +35,7 @@ import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; +import com.cloud.server.ManagementService; import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; @@ -457,6 +458,8 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir VolumeApiService _volumeService; @Inject DataStoreManager _dataStoreMgr; + @Inject + ManagementService _mgr; protected ScheduledExecutorService _executor = null; protected int _expungeInterval; @@ -642,7 +645,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir String password = null; String sshPublicKey = s.getPublicKey(); if (template != null && template.getEnablePassword()) { - password = generateRandomPassword(); + password = _mgr.generateRandomPassword(); } boolean result = resetVMSSHKeyInternal(vmId, sshPublicKey, password); @@ -3350,10 +3353,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } } - public String generateRandomPassword() { - return PasswordGenerator.generateRandomPassword(6); - } - @Override public Pair<UserVmVO, Map<VirtualMachineProfile.Param, Object>> startVirtualMachine(long vmId, Long hostId, Map<VirtualMachineProfile.Param, Object> additionalParams, String deploymentPlannerToUse) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { @@ -3428,7 +3427,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir String password = "saved_password"; if (template.getEnablePassword()) { - password = generateRandomPassword(); + password = _mgr.generateRandomPassword(); } if (!validPassword(password)) { @@ -4702,7 +4701,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir } if (template.getEnablePassword()) { - String password = generateRandomPassword(); + String password = _mgr.generateRandomPassword(); boolean result = resetVMPasswordInternal(vmId, password); if (result) { vm.setPassword(password); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c70cadff/setup/db/db/schema-430to440.sql ---------------------------------------------------------------------- diff --git a/setup/db/db/schema-430to440.sql b/setup/db/db/schema-430to440.sql index 150d072..0fd8c55 100644 --- a/setup/db/db/schema-430to440.sql +++ b/setup/db/db/schema-430to440.sql @@ -2438,3 +2438,5 @@ CREATE TABLE `cloud`.`load_balancer_healthcheck_policy_details` ( PRIMARY KEY (`id`), CONSTRAINT `fk_lb_healthcheck_policy_details__lb_healthcheck_policy_id` FOREIGN KEY `fk_lb_healthcheck_policy_details__lb_healthcheck_policy_id`(`lb_policy_id`) REFERENCES `load_balancer_healthcheck_policies`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +INSERT INTO `cloud`.`configuration`(category, instance, component, name, value, description, default_value) VALUES ('Secure', 'DEFAULT', 'management-server', 'vm.password.length', '6', 'Specifies the length of a randomly generated password', '6') ON DUPLICATE KEY UPDATE category='Secure';