From 86297e70be8cd587ab07ba3109042ea782772624 Mon Sep 17 00:00:00 2001 From: wilderrodrigues Date: Sat, 4 Jul 2015 11:33:52 +0200 Subject: [PATCH] CLOUDSTACK-8607 - Make sure the new password replaces the old one in the queue - Added log info to show details of the operation - Renamed the addPwdToQueue to replaceOldPasswdInQueue --- .../xenserver/resource/CitrixResourceBase.java | 11 ++++++++++- .../CitrixUpdateHostPasswordCommandWrapper.java | 4 ++-- .../src/com/cloud/resource/ResourceManagerImpl.java | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java index 24970a684b2..b205f2df360 100644 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java @@ -271,8 +271,17 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe public CitrixResourceBase() { } - public void addToPwdQueue(final String password) { + /** + * Replaces the old password with the new password used to connect to the host. + * + * @param password - the new host password. + * @return the old password. + */ + public String replaceOldPasswdInQueue(final String password) { + final String oldPasswd = _password.poll(); _password.add(password); + + return oldPasswd; } public String getPwdFromQueue() { diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpdateHostPasswordCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpdateHostPasswordCommandWrapper.java index d5a530b41e3..9e586781f45 100644 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpdateHostPasswordCommandWrapper.java +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpdateHostPasswordCommandWrapper.java @@ -58,8 +58,8 @@ public final class CitrixUpdateHostPasswordCommandWrapper extends CommandWrapper } catch (final Exception e) { return new Answer(command, false, e.getMessage()); } - // Add new password to the stack. - citrixResourceBase.addToPwdQueue(command.getNewPassword()); + // Add new password to the queue. + citrixResourceBase.replaceOldPasswdInQueue(newPassword); return new Answer(command, result.first(), result.second()); } } \ No newline at end of file diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index b777de92d58..b450e31f83a 100644 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -2240,6 +2240,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager, final UpdateHostPasswordCommand cmd = new UpdateHostPasswordCommand(username, password, hostIpAddress); final Answer answer = _agentMgr.easySend(hostId, cmd); + + s_logger.info("Result returned from update host password ==> " + answer.getDetails()); return answer.getResult(); }