Yair Zaslavsky has uploaded a new change for review.

Change subject: tools: Providing a way to reset change password msg
......................................................................

tools: Providing a way to reset change password msg

By not providing any entry when prompted, and just press enter
a user can reset an already set "change password msg"

Change-Id: Ic9a93b78af23cd9d44ddcd4a32cd23db80be969a
Signed-off-by: Yair Zaslavsky <yzasl...@redhat.com>
---
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
1 file changed, 28 insertions(+), 25 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/51/24351/1

diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
index aa8e327..1cb56d2 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
@@ -305,15 +305,15 @@
         }
     }
 
-    protected String getChangePasswordMsg() throws ManageDomainsResult, 
UnsupportedEncodingException {
+    protected String getChangePasswordMsg(boolean edit) throws 
ManageDomainsResult, UnsupportedEncodingException {
         if (!args.contains(ARG_CHANGE_PASSWORD_MSG)) {
             return null;
         }
-
+        String emptyValueDescription = edit ? " (Not providing a value will 
cause the existing value to be reset)" : "";
         String changePasswordMsgStr =
-                readInteractively("Please enter message or URL to appear when 
user tries to login with an expired password: ",
-                        false);
-
+                System.console()
+                        .readLine("Please enter message or URL to appear when 
user tries to login with an expired password"
+                                + emptyValueDescription + ":");
         if (changePasswordMsgStr.indexOf("http") == 0 || 
changePasswordMsgStr.indexOf("https") == 0) {
             try {
                 URL url = new URL(changePasswordMsgStr);
@@ -324,7 +324,7 @@
             }
         }
         // As the message may contain characters like space, "," and ":" - it 
should be encoded
-        return URLEncoder.encode(changePasswordMsgStr, "UTF-8");
+        return StringUtils.isNotEmpty(changePasswordMsgStr) ? 
URLEncoder.encode(changePasswordMsgStr, "UTF-8") : "";
     }
 
     private String getPasswordInput() throws ManageDomainsResult {
@@ -492,12 +492,6 @@
         List<String> ldapServers = getLdapServers(domainName);
         validateKdcServers(authMode, domainName);
         domainNameEntry.setValueForDomain(domainName, null);
-        String changePasswordUrlStr = null;
-        try {
-            changePasswordUrlStr = getChangePasswordMsg();
-        } catch (UnsupportedEncodingException e) {
-            log.error("Error in encoding the change password message. ", e);
-        }
 
         String currentAdUserNameEntry = 
configurationProvider.getConfigValue(ConfigValues.AdUserName);
         String currentAdUserPasswordEntry = 
configurationProvider.getConfigValue(ConfigValues.AdUserPassword);
@@ -530,12 +524,7 @@
         authModeEntry.setValueForDomain(domainName, authMode);
         ldapProviderTypesEntry.setValueForDomain(domainName, 
ldapProviderType.name());
         setLdapServersPerDomain(domainName, ldapServersEntry, 
StringUtils.join(ldapServers, ","));
-        if (args.contains(ARG_CHANGE_PASSWORD_MSG)) {
-            changePasswordUrlEntry.setValueForDomain(domainName, 
changePasswordUrlStr);
-        }
-
-
-
+        handleChangePasswordMsg(domainName, changePasswordUrlEntry, false);
         testConfiguration(domainName,
                 domainNameEntry,
                 adUserNameEntry,
@@ -678,13 +667,8 @@
         if (ldapProviderType != null) {
             ldapProviderTypeEntry.setValueForDomain(domainName, 
ldapProviderType.name());
         }
-        if (args.contains(ARG_CHANGE_PASSWORD_MSG)) {
-            try {
-                changePaswordUrlEntry.setValueForDomain(domainName, 
getChangePasswordMsg());
-            } catch (UnsupportedEncodingException e) {
-                log.error("Error in encoding the change password message. ", 
e);
-            }
-        }
+
+        handleChangePasswordMsg(domainName, changePaswordUrlEntry, true);
 
         testConfiguration(domainName,
                 domainNameEntry,
@@ -713,6 +697,25 @@
         printSuccessMessage(domainName, "edited");
     }
 
+    private void handleChangePasswordMsg(String domainName,
+            DomainsConfigurationEntry changePaswordUrlEntry,
+            boolean edit)
+            throws ManageDomainsResult {
+        if (args.contains(ARG_CHANGE_PASSWORD_MSG)) {
+            try {
+                String changePasswordMsgStr = getChangePasswordMsg(edit);
+                if (StringUtils.isNotBlank(changePasswordMsgStr)) {
+                    changePaswordUrlEntry.setValueForDomain(domainName, 
changePasswordMsgStr);
+                } else {
+                    changePaswordUrlEntry.removeValueForDomain(domainName);
+                }
+
+            } catch (UnsupportedEncodingException e) {
+                log.error("Error in encoding the change password message. ", 
e);
+            }
+        }
+    }
+
     private void createKerberosConfiguration(DomainsConfigurationEntry 
gssapiDomains, Map<String, List<String>> ldapServersPerGSSAPIDomains) throws 
ManageDomainsResult {
         if (!gssapiDomains.isEntryEmpty()) {
             String gssapiDomainsString = 
gssapiDomains.getDomainsConfigurationEntry();


-- 
To view, visit http://gerrit.ovirt.org/24351
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic9a93b78af23cd9d44ddcd4a32cd23db80be969a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Yair Zaslavsky <yzasl...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to