Lior Vernia has uploaded a new change for review. Change subject: engine: Fixed sorting VMs by IP address in search ......................................................................
engine: Fixed sorting VMs by IP address in search Fixed the sorting order of IP addresses through the search mechanism by applying the comparable_ip_list DB function. Change-Id: I1230544796692845a8b32a5e020880fde0c32740 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=895468 Signed-off-by: Lior Vernia <lver...@redhat.com> --- M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/BaseConditionFieldAutoCompleter.java M backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmConditionFieldAutoCompleter.java 2 files changed, 20 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/33/11433/1 diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/BaseConditionFieldAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/BaseConditionFieldAutoCompleter.java index f6553f0..2a51bd5 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/BaseConditionFieldAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/BaseConditionFieldAutoCompleter.java @@ -38,6 +38,7 @@ /** * Gets the LIKE clause syntax for non case-sensitive search + * * @return the LIKE syntax according to current DBEngine. */ public static String getLikeSyntax(boolean caseSensitive) { @@ -51,6 +52,7 @@ /** * Gets the I18N prefix used for value compare. + * * @return */ public static String getI18NPrefix() { @@ -125,7 +127,10 @@ } // FIXME Probably Not Hibernate Friendly - public final String buildFreeTextConditionSql(String tableName, String relations, String value, boolean caseSensitive) { + public final String buildFreeTextConditionSql(String tableName, + String relations, + String value, + boolean caseSensitive) { StringBuilder sb = new StringBuilder(" ( "); boolean firstTime = true; if (!StringHelper.isNullOrEmpty(value) && !"''".equals(value)) { @@ -304,7 +309,11 @@ } } } + else if (fieldName.equals("IP")) { + value.argvalue = comparableIpList(value.argvalue); + } } + // private static final String DATE_FORMAT = "MMM dd,yyyy"; private static DateTime DealWithDateEnum(String value) { DateTime formatedValue = new DateTime(); @@ -333,6 +342,11 @@ return formatedValue.resetToMidnight(); } + @SuppressWarnings("deprecation") + protected String comparableIpList(String ipList) { + return StringFormat.format("comparable_ip_list(%s)", ipList); + } + public final String buildConditionSql(String fieldName, String customizedValue, String customizedRelation, String tableName, boolean caseSensitive) { RefObject<String> tempRefObject = new RefObject<String>(customizedRelation); diff --git a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmConditionFieldAutoCompleter.java b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmConditionFieldAutoCompleter.java index d9261bc..b9f6727 100644 --- a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmConditionFieldAutoCompleter.java +++ b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmConditionFieldAutoCompleter.java @@ -64,7 +64,7 @@ // building the ColumnName Dict mColumnNameDict.put("NAME", "vm_name"); mColumnNameDict.put("STATUS", "status"); - mColumnNameDict.put("IP", "vm_ip"); + mColumnNameDict.put("IP", comparableIpList("vm_ip")); mColumnNameDict.put("UPTIME", "elapsed_time"); mColumnNameDict.put("DOMAIN", "vm_domain"); mColumnNameDict.put("OS", "vm_os"); @@ -120,7 +120,10 @@ } @Override - public void formatValue(String fieldName, RefObject<String> relations, RefObject<String> value, boolean caseSensitive) { + public void formatValue(String fieldName, + RefObject<String> relations, + RefObject<String> value, + boolean caseSensitive) { if ("APPS".equals(fieldName)) { value.argvalue = StringFormat.format(BaseConditionFieldAutoCompleter.getI18NPrefix() + "'%%%1$s%%'", -- To view, visit http://gerrit.ovirt.org/11433 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1230544796692845a8b32a5e020880fde0c32740 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Lior Vernia <lver...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches