From 53b6ba379899985ee1a40ade1aca7a1e9777ff71 Mon Sep 17 00:00:00 2001 From: David Grizzanti Date: Wed, 27 Feb 2013 11:22:28 +0530 Subject: [PATCH] CLOUDSTACK-420: listZones missing name parameter When calling the listZones API command, you can now supply a name to pull a specific zone by name. Updated two classes to include name paramater and query data centers/zones by name if suppled: - server/src/com/cloud/api/query/QueryManagerImpl.java - api/src/org/apache/cloudstack/api/command/user/zone/ListZonesByCmd.java Signed-off-by: Prasanna Santhanam --- .../cloudstack/api/command/user/zone/ListZonesByCmd.java | 7 +++++++ server/src/com/cloud/api/query/QueryManagerImpl.java | 3 +++ 2 files changed, 10 insertions(+) diff --git a/api/src/org/apache/cloudstack/api/command/user/zone/ListZonesByCmd.java b/api/src/org/apache/cloudstack/api/command/user/zone/ListZonesByCmd.java index 97fe2ffeb90..bbfb598b1db 100644 --- a/api/src/org/apache/cloudstack/api/command/user/zone/ListZonesByCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/zone/ListZonesByCmd.java @@ -53,6 +53,9 @@ public class ListZonesByCmd extends BaseListCmd { description="the ID of the domain associated with the zone") private Long domainId; + @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, description="the name of the zone") + private String name; + @Parameter(name=ApiConstants.SHOW_CAPACITIES, type=CommandType.BOOLEAN, description="flag to display the capacity of the zones") private Boolean showCapacities; @@ -72,6 +75,10 @@ public class ListZonesByCmd extends BaseListCmd { return domainId; } + public String getName(){ + return name; + } + public Boolean getShowCapacities() { return showCapacities; } diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java index 51312a60eb1..746e8cb31ff 100644 --- a/server/src/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/com/cloud/api/query/QueryManagerImpl.java @@ -2190,12 +2190,15 @@ public class QueryManagerImpl extends ManagerBase implements QueryService { Long domainId = cmd.getDomainId(); Long id = cmd.getId(); String keyword = cmd.getKeyword(); + String name = cmd.getName(); Filter searchFilter = new Filter(DataCenterJoinVO.class, null, false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchCriteria sc = _dcJoinDao.createSearchCriteria(); if (id != null) { sc.addAnd("id", SearchCriteria.Op.EQ, id); + } else if (name != null) { + sc.addAnd("name", SearchCriteria.Op.EQ, name); } else { if (keyword != null) { SearchCriteria ssc = _dcJoinDao.createSearchCriteria();