Roy Golan has uploaded a new change for review. Change subject: core: osinfo - use latest version of a key rather then genaral or derived ......................................................................
core: osinfo - use latest version of a key rather then genaral or derived Change-Id: I67c9c2efe5ee3a5b52f283e7b3a2a1070ee271e6 Bug-Url: https://bugzilla.redhat.com/1056577 Signed-off-by: Roy Golan <[email protected]> --- M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/OsRepositoryImpl.java M backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/OsRepositoryImplTest.java 2 files changed, 37 insertions(+), 2 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/33/39033/1 diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/OsRepositoryImpl.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/OsRepositoryImpl.java index cf77f6c..0145adf 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/OsRepositoryImpl.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/OsRepositoryImpl.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -489,7 +490,24 @@ version = null; keyNode = getKeyNode(uniqueOsName, relativeKeyPath, null); } - return keyNode.get(versionedValuePath(version), ""); + return valueByClosestVersion(version, keyNode); + } + + private String valueByClosestVersion(Version version, Preferences keyNode) { + String val = keyNode.get(versionedValuePath(version), ""); + + if (val == null) { + try { + List<String> keys = Arrays.asList(keyNode.keys()); + Collections.sort(keys, Collections.reverseOrder()); + for (String key : keys) { + if (key.matches("value")) + } + } catch (BackingStoreException e) { + e.printStackTrace(); + } + } + return val; } /** @@ -510,7 +528,7 @@ // first try direct OS node try { Preferences node = getNodeIfExist(uniqueOsName, relativeKeyPath); - if (node != null && Arrays.asList(node.keys()).contains(versionedValuePath(version))) { + if (node != null) { return node; } else { // if not exist directly on the OS consult the one its derived from diff --git a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/OsRepositoryImplTest.java b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/OsRepositoryImplTest.java index e13a1fe..0e0b0d2 100644 --- a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/OsRepositoryImplTest.java +++ b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/OsRepositoryImplTest.java @@ -4,6 +4,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -23,6 +24,7 @@ public class OsRepositoryImplTest { + public static final String DISK_INTERFACES = "VirtIO, VirtIO_SCSI, SPAPR_VSCS"; private static MapBackedPreferences preferences; public static final String SYSPREP_INF = "sysprep.inf"; @@ -299,4 +301,19 @@ invalidNode.removeNode(); OsRepositoryImpl.INSTANCE.init(preferences); // must pass with no exceptions } + + @Test + public void testVersionPrecedence() throws Exception { + assertEquals( + 512, + OsRepositoryImpl.INSTANCE.getMinimumRam( + OsRepositoryImpl.INSTANCE.getOsIdByUniqueName("rhel7"), + Version.v3_3)); + + assertEquals( + 512, + OsRepositoryImpl.INSTANCE.getMinimumRam( + OsRepositoryImpl.INSTANCE.getOsIdByUniqueName("rhel8"), + Version.v3_3)); + } } -- To view, visit https://gerrit.ovirt.org/39033 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I67c9c2efe5ee3a5b52f283e7b3a2a1070ee271e6 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Roy Golan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
