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
