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"));
+ }
+}