Skip to content

Commit 312ff76

Browse files
committed
Separate listZones cmd to use two different views, also renamed previous
listZonesByCmd to listZonesCmd.
1 parent a6d03cd commit 312ff76

14 files changed

Lines changed: 77 additions & 37 deletions

api/src/org/apache/cloudstack/api/ResponseGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ LBHealthCheckResponse createLBHealthCheckPolicyResponse(List<? extends HealthChe
253253

254254
PodResponse createPodResponse(Pod pod, Boolean showCapacities);
255255

256-
ZoneResponse createZoneResponse(DataCenter dataCenter, Boolean showCapacities);
256+
ZoneResponse createZoneResponse(ResponseView view, DataCenter dataCenter, Boolean showCapacities);
257257

258258
VolumeResponse createVolumeResponse(ResponseView view, Volume volume);
259259

api/src/org/apache/cloudstack/api/command/admin/zone/CreateZoneCmd.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,19 @@
1616
// under the License.
1717
package org.apache.cloudstack.api.command.admin.zone;
1818

19+
import org.apache.log4j.Logger;
20+
1921
import org.apache.cloudstack.api.APICommand;
2022
import org.apache.cloudstack.api.ApiConstants;
2123
import org.apache.cloudstack.api.ApiErrorCode;
2224
import org.apache.cloudstack.api.BaseCmd;
2325
import org.apache.cloudstack.api.Parameter;
26+
import org.apache.cloudstack.api.ResponseObject.ResponseView;
2427
import org.apache.cloudstack.api.ServerApiException;
2528
import org.apache.cloudstack.api.response.DomainResponse;
2629
import org.apache.cloudstack.api.response.ZoneResponse;
2730
import org.apache.cloudstack.context.CallContext;
2831

29-
import org.apache.log4j.Logger;
30-
3132
import com.cloud.dc.DataCenter;
3233
import com.cloud.user.Account;
3334

@@ -167,9 +168,9 @@ public void execute(){
167168
CallContext.current().setEventDetails("Zone Name: "+getZoneName());
168169
DataCenter result = _configService.createZone(this);
169170
if (result != null){
170-
ZoneResponse response = _responseGenerator.createZoneResponse(result,false);
171+
ZoneResponse response = _responseGenerator.createZoneResponse(ResponseView.Full, result, false);
171172
response.setResponseName(getCommandName());
172-
this.setResponseObject(response);
173+
setResponseObject(response);
173174
} else {
174175
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create a zone");
175176
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
package org.apache.cloudstack.api.command.admin.zone;
18+
19+
import org.apache.cloudstack.api.APICommand;
20+
import org.apache.cloudstack.api.ResponseObject.ResponseView;
21+
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
22+
import org.apache.cloudstack.api.response.ZoneResponse;
23+
24+
@APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Full)
25+
public class ListZonesCmdByAdmin extends ListZonesCmd {
26+
}

api/src/org/apache/cloudstack/api/command/admin/zone/UpdateZoneCmd.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,18 @@
1919
import java.util.List;
2020
import java.util.Map;
2121

22+
import org.apache.log4j.Logger;
23+
2224
import org.apache.cloudstack.api.APICommand;
2325
import org.apache.cloudstack.api.ApiConstants;
2426
import org.apache.cloudstack.api.ApiErrorCode;
2527
import org.apache.cloudstack.api.BaseCmd;
2628
import org.apache.cloudstack.api.Parameter;
29+
import org.apache.cloudstack.api.ResponseObject.ResponseView;
2730
import org.apache.cloudstack.api.ServerApiException;
2831
import org.apache.cloudstack.api.response.ZoneResponse;
2932
import org.apache.cloudstack.context.CallContext;
3033

31-
import org.apache.log4j.Logger;
32-
3334
import com.cloud.dc.DataCenter;
3435
import com.cloud.user.Account;
3536

@@ -179,9 +180,9 @@ public void execute(){
179180
CallContext.current().setEventDetails("Zone Id: "+getId());
180181
DataCenter result = _configService.editZone(this);
181182
if (result != null) {
182-
ZoneResponse response = _responseGenerator.createZoneResponse(result, false);
183+
ZoneResponse response = _responseGenerator.createZoneResponse(ResponseView.Full, result, false);
183184
response.setResponseName(getCommandName());
184-
this.setResponseObject(response);
185+
setResponseObject(response);
185186
} else {
186187
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update zone; internal error.");
187188
}

api/src/org/apache/cloudstack/api/command/user/zone/ListZonesByCmd.java renamed to api/src/org/apache/cloudstack/api/command/user/zone/ListZonesCmd.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,22 @@
2121
import java.util.Iterator;
2222
import java.util.Map;
2323

24+
import org.apache.log4j.Logger;
25+
2426
import org.apache.cloudstack.api.APICommand;
2527
import org.apache.cloudstack.api.ApiConstants;
2628
import org.apache.cloudstack.api.BaseListCmd;
2729
import org.apache.cloudstack.api.Parameter;
30+
import org.apache.cloudstack.api.ResponseObject.ResponseView;
2831
import org.apache.cloudstack.api.response.DomainResponse;
2932
import org.apache.cloudstack.api.response.ListResponse;
3033
import org.apache.cloudstack.api.response.ZoneResponse;
31-
import org.apache.log4j.Logger;
3234

3335
import com.cloud.exception.InvalidParameterValueException;
3436

35-
@APICommand(name = "listZones", description="Lists zones", responseObject=ZoneResponse.class)
36-
public class ListZonesByCmd extends BaseListCmd {
37-
public static final Logger s_logger = Logger.getLogger(ListZonesByCmd.class.getName());
37+
@APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Restricted)
38+
public class ListZonesCmd extends BaseListCmd {
39+
public static final Logger s_logger = Logger.getLogger(ListZonesCmd.class.getName());
3840

3941
private static final String s_name = "listzonesresponse";
4042

@@ -127,6 +129,6 @@ public void execute(){
127129

128130
ListResponse<ZoneResponse> response = _queryService.listDataCenters(this);
129131
response.setResponseName(getCommandName());
130-
this.setResponseObject(response);
132+
setResponseObject(response);
131133
}
132134
}

api/src/org/apache/cloudstack/query/QueryService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
4343
import org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd;
4444
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
45-
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
45+
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
4646
import org.apache.cloudstack.api.response.AccountResponse;
4747
import org.apache.cloudstack.api.response.AclGroupResponse;
4848
import org.apache.cloudstack.api.response.AclPolicyResponse;
@@ -114,7 +114,7 @@ public interface QueryService {
114114

115115
public ListResponse<ServiceOfferingResponse> searchForServiceOfferings(ListServiceOfferingsCmd cmd);
116116

117-
public ListResponse<ZoneResponse> listDataCenters(ListZonesByCmd cmd);
117+
public ListResponse<ZoneResponse> listDataCenters(ListZonesCmd cmd);
118118

119119
public ListResponse<TemplateResponse> listTemplates(ListTemplatesCmd cmd);
120120

server/src/com/cloud/api/ApiDBUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,8 +1643,8 @@ public static ServiceOfferingJoinVO newServiceOfferingView(ServiceOffering offer
16431643
return _serviceOfferingJoinDao.newServiceOfferingView(offering);
16441644
}
16451645

1646-
public static ZoneResponse newDataCenterResponse(DataCenterJoinVO dc, Boolean showCapacities) {
1647-
return _dcJoinDao.newDataCenterResponse(dc, showCapacities);
1646+
public static ZoneResponse newDataCenterResponse(ResponseView view, DataCenterJoinVO dc, Boolean showCapacities) {
1647+
return _dcJoinDao.newDataCenterResponse(view, dc, showCapacities);
16481648
}
16491649

16501650
public static DataCenterJoinVO newDataCenterView(DataCenter dc){

server/src/com/cloud/api/ApiResponseHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -859,9 +859,9 @@ public PodResponse createPodResponse(Pod pod, Boolean showCapacities) {
859859
}
860860

861861
@Override
862-
public ZoneResponse createZoneResponse(DataCenter dataCenter, Boolean showCapacities) {
862+
public ZoneResponse createZoneResponse(ResponseView view, DataCenter dataCenter, Boolean showCapacities) {
863863
DataCenterJoinVO vOffering = ApiDBUtils.newDataCenterView(dataCenter);
864-
return ApiDBUtils.newDataCenterResponse(vOffering, showCapacities);
864+
return ApiDBUtils.newDataCenterResponse(view, vOffering, showCapacities);
865865
}
866866

867867
public static List<CapacityResponse> getDataCenterCapacityResponse(Long zoneId) {

server/src/com/cloud/api/ApiServer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
115115
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
116116
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
117-
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
117+
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
118118
import org.apache.cloudstack.api.response.AsyncJobResponse;
119119
import org.apache.cloudstack.api.response.CreateCmdResponse;
120120
import org.apache.cloudstack.api.response.ExceptionResponse;
@@ -684,7 +684,7 @@ private String queueCommand(BaseCmd cmdObj, Map<String, String> params) throws E
684684
&& !(cmdObj instanceof ListStoragePoolsCmd)
685685
&& !(cmdObj instanceof ListDiskOfferingsCmd)
686686
&& !(cmdObj instanceof ListServiceOfferingsCmd)
687-
&& !(cmdObj instanceof ListZonesByCmd)
687+
&& !(cmdObj instanceof ListZonesCmd)
688688
) {
689689
buildAsyncListResponse((BaseListCmd) cmdObj, caller);
690690
}

server/src/com/cloud/api/query/QueryManagerImpl.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
5555
import org.apache.cloudstack.api.command.admin.vm.ListVMsCmdByAdmin;
5656
import org.apache.cloudstack.api.command.admin.volume.ListVolumesCmdByAdmin;
57+
import org.apache.cloudstack.api.command.admin.zone.ListZonesCmdByAdmin;
5758
import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
5859
import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
5960
import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
@@ -70,7 +71,7 @@
7071
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
7172
import org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd;
7273
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
73-
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
74+
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
7475
import org.apache.cloudstack.api.response.AccountResponse;
7576
import org.apache.cloudstack.api.response.AclGroupResponse;
7677
import org.apache.cloudstack.api.response.AclPolicyResponse;
@@ -2510,16 +2511,22 @@ private Pair<List<ServiceOfferingJoinVO>, Integer> searchForServiceOfferingsInte
25102511
}
25112512

25122513
@Override
2513-
public ListResponse<ZoneResponse> listDataCenters(ListZonesByCmd cmd) {
2514+
public ListResponse<ZoneResponse> listDataCenters(ListZonesCmd cmd) {
25142515
Pair<List<DataCenterJoinVO>, Integer> result = listDataCentersInternal(cmd);
25152516
ListResponse<ZoneResponse> response = new ListResponse<ZoneResponse>();
2516-
List<ZoneResponse> dcResponses = ViewResponseHelper.createDataCenterResponse(cmd.getShowCapacities(), result
2517+
2518+
ResponseView respView = ResponseView.Restricted;
2519+
if (cmd instanceof ListZonesCmdByAdmin) {
2520+
respView = ResponseView.Full;
2521+
}
2522+
2523+
List<ZoneResponse> dcResponses = ViewResponseHelper.createDataCenterResponse(respView, cmd.getShowCapacities(), result
25172524
.first().toArray(new DataCenterJoinVO[result.first().size()]));
25182525
response.setResponses(dcResponses, result.second());
25192526
return response;
25202527
}
25212528

2522-
private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesByCmd cmd) {
2529+
private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesCmd cmd) {
25232530
Account account = CallContext.current().getCallingAccount();
25242531
Long domainId = cmd.getDomainId();
25252532
Long id = cmd.getId();

0 commit comments

Comments
 (0)