You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/11/04 11:55:06 UTC

[1/2] git commit: updated refs/heads/4.5 to efe93d7

Repository: cloudstack
Updated Branches:
  refs/heads/4.5 7aeff217a -> efe93d748


CLOUDSTACK-9006 - ListTemplates API returns result in inconsistent order when called concurrently

(cherry picked from commit c90723f491c8da4cb9873a896a2410f60b358193)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4e6ff4b3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4e6ff4b3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4e6ff4b3

Branch: refs/heads/4.5
Commit: 4e6ff4b3c3d16a68127db5a642c5875a12c51b9e
Parents: 7aeff21
Author: ramamurtis <ra...@citrix.com>
Authored: Fri Oct 30 09:44:59 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Nov 4 16:22:31 2015 +0530

----------------------------------------------------------------------
 framework/db/src/com/cloud/utils/db/Filter.java             | 2 +-
 server/src/com/cloud/api/query/QueryManagerImpl.java        | 1 +
 server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java | 1 +
 3 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4e6ff4b3/framework/db/src/com/cloud/utils/db/Filter.java
----------------------------------------------------------------------
diff --git a/framework/db/src/com/cloud/utils/db/Filter.java b/framework/db/src/com/cloud/utils/db/Filter.java
index fdcad9c..59dc8c1 100755
--- a/framework/db/src/com/cloud/utils/db/Filter.java
+++ b/framework/db/src/com/cloud/utils/db/Filter.java
@@ -89,7 +89,7 @@ public class Filter {
         if (_orderBy == null) {
             _orderBy = order.insert(0, " ORDER BY ").toString();
         } else {
-            _orderBy = order.insert(0, _orderBy).toString();
+            _orderBy = order.insert(0, _orderBy + ", ").toString();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4e6ff4b3/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 62714ea..c67b1cf 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -2992,6 +2992,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
         Boolean isAscending = Boolean.parseBoolean(_configDao.getValue("sortkey.algorithm"));
         isAscending = (isAscending == null ? Boolean.TRUE : isAscending);
         Filter searchFilter = new Filter(TemplateJoinVO.class, "sortKey", isAscending, startIndex, pageSize);
+        searchFilter.addOrderBy(TemplateJoinVO.class, "tempZonePair", isAscending);
 
         SearchBuilder<TemplateJoinVO> sb = _templateJoinDao.createSearchBuilder();
         sb.select(null, Func.DISTINCT, sb.entity().getTempZonePair()); // select distinct (templateId, zoneId) pair

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4e6ff4b3/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
index 4e33728..96fbe84 100644
--- a/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/TemplateJoinDaoImpl.java
@@ -383,6 +383,7 @@ public class TemplateJoinDaoImpl extends GenericDaoBase<TemplateJoinVO, Long> im
         Boolean isAscending = Boolean.parseBoolean(_configDao.getValue("sortkey.algorithm"));
         isAscending = (isAscending == null ? Boolean.TRUE : isAscending);
         Filter searchFilter = new Filter(TemplateJoinVO.class, "sortKey", isAscending, null, null);
+        searchFilter.addOrderBy(TemplateJoinVO.class, "tempZonePair", isAscending);
         List<TemplateJoinVO> uvList = new ArrayList<TemplateJoinVO>();
         // query details by batches
         int curr_index = 0;


[2/2] git commit: updated refs/heads/4.5 to efe93d7

Posted by bh...@apache.org.
CLOUDSTACK-9006 - ListTemplates API returns result in inconsistent order when called concurrently

Adding filter test to verify addOrderBy method.

(cherry picked from commit 9d1a469ae5f0a3751b64d66582fbcc2180a9c97c)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/efe93d74
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/efe93d74
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/efe93d74

Branch: refs/heads/4.5
Commit: efe93d7487d0f79394f31ea75425e33039e858f5
Parents: 4e6ff4b
Author: ramamurtis <ra...@citrix.com>
Authored: Wed Nov 4 10:31:02 2015 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Nov 4 16:22:41 2015 +0530

----------------------------------------------------------------------
 .../db/test/com/cloud/utils/db/FilterTest.java  | 44 ++++++++++++++++++++
 1 file changed, 44 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/efe93d74/framework/db/test/com/cloud/utils/db/FilterTest.java
----------------------------------------------------------------------
diff --git a/framework/db/test/com/cloud/utils/db/FilterTest.java b/framework/db/test/com/cloud/utils/db/FilterTest.java
new file mode 100644
index 0000000..079611a
--- /dev/null
+++ b/framework/db/test/com/cloud/utils/db/FilterTest.java
@@ -0,0 +1,44 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// the License.  You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.utils.db;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class FilterTest {
+
+    @Test
+    /*
+    *  This test verifies that the Order By clause generated by the filter is correct and it separates each
+    *  order by field with a comma. Using DbTestVO to assert it
+    */
+    public void testAddOrderBy() {
+        Filter filter = new Filter(DbTestVO.class, "fieldString", true, 1L, 1L);
+
+        Assert.assertTrue(filter.getOrderBy().trim().toLowerCase().equals("order by test.fld_string asc"));
+
+        filter.addOrderBy(DbTestVO.class, "fieldLong", true);
+
+        Assert.assertTrue(filter.getOrderBy().contains(","));
+        Assert.assertTrue(filter.getOrderBy().split(",")[1].trim().toLowerCase().equals("test.fld_long asc"));
+
+        filter.addOrderBy(DbTestVO.class, "fieldInt", true);
+
+        Assert.assertTrue(filter.getOrderBy().split(",").length == 3);
+        Assert.assertTrue(filter.getOrderBy().split(",")[2].trim().toLowerCase().equals("test.fld_int asc"));
+    }
+}