Ravi Nori has uploaded a new change for review.

Change subject: core: LocalAdminPassword exception after engine restart
......................................................................

core: LocalAdminPassword exception after engine restart

After oVirt host comes up from reboot, we see
javax.crypto.BadPaddingException: Data must start with zero
exception in engine.log:

When GetConfigurationValuesQuery is executed it
retrives the values for all the versions and returns
it. But LOCAL_ADMIN_PASSWD exists only for version
general which breaks the logic in DbConfigUtils.

This patch introduces a black list of
all passwd fields that have values only
for version "general". So the backend does
not try to extract values for other versions
for these ConfigurationValues

Change-Id: I000bbb3cf5a6d1d636c49247e85858b02b2f358a
Bug-Url: https://bugzilla.redhat.com/994454
Signed-off-by: Ravi Nori <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetConfigurationValuesQuery.java
1 file changed, 22 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/20041/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetConfigurationValuesQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetConfigurationValuesQuery.java
index a76629a..d7c69b2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetConfigurationValuesQuery.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetConfigurationValuesQuery.java
@@ -15,6 +15,11 @@
 
 public class GetConfigurationValuesQuery<P extends VdcQueryParametersBase> 
extends QueriesCommandBase<P> {
     private static final List<String> versions = getVersionsList();
+    private static final List<ConfigurationValues> 
generalOnlyPasswdConfigurationValues = new ArrayList<>();
+
+    static {
+        
generalOnlyPasswdConfigurationValues.add(ConfigurationValues.LocalAdminPassword);
+    }
 
     public GetConfigurationValuesQuery(P parameters) {
         super(parameters);
@@ -41,20 +46,31 @@
                 continue;
             }
 
+            if (generalOnlyPasswdConfigurationValues.contains(configValue)) {
+                populateValueForConfigValue(configValue, 
ConfigCommon.defaultConfigurationVersion, configValuesMap);
+                continue;
+            }
+
             // Adding a configuration value for each version
             for (String version : versions) {
-                KeyValuePairCompat<ConfigurationValues, String> key =
-                        new KeyValuePairCompat<ConfigurationValues, 
String>(configValue, version);
-                Object value =
-                        Config.<Object> 
GetValue(ConfigValues.valueOf(configValue.toString()), version);
-
-                configValuesMap.put(key, value);
+                populateValueForConfigValue(configValue, version, 
configValuesMap);
             }
         }
 
         getQueryReturnValue().setReturnValue(configValuesMap);
     }
 
+    private void populateValueForConfigValue(ConfigurationValues configValue,
+            String version,
+            Map<KeyValuePairCompat<ConfigurationValues, String>, Object> 
configValuesMap) {
+        KeyValuePairCompat<ConfigurationValues, String> key
+                = new KeyValuePairCompat<ConfigurationValues, 
String>(configValue, version);
+        Object value
+                = 
Config.<Object>GetValue(ConfigValues.valueOf(configValue.toString()), version);
+
+        configValuesMap.put(key, value);
+    }
+
     /**
      * Validates if the query should return anything or not, according to the 
user's permissions:
      * <ul>


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I000bbb3cf5a6d1d636c49247e85858b02b2f358a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Ravi Nori <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to