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

Reply via email to