mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Separate listZones cmd to use two different views, also renamed previous
listZonesByCmd to listZonesCmd.
This commit is contained in:
parent
a6d03cd826
commit
312ff76f69
@ -253,7 +253,7 @@ public interface ResponseGenerator {
|
||||
|
||||
PodResponse createPodResponse(Pod pod, Boolean showCapacities);
|
||||
|
||||
ZoneResponse createZoneResponse(DataCenter dataCenter, Boolean showCapacities);
|
||||
ZoneResponse createZoneResponse(ResponseView view, DataCenter dataCenter, Boolean showCapacities);
|
||||
|
||||
VolumeResponse createVolumeResponse(ResponseView view, Volume volume);
|
||||
|
||||
|
||||
@ -16,18 +16,19 @@
|
||||
// under the License.
|
||||
package org.apache.cloudstack.api.command.admin.zone;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.ApiErrorCode;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.DomainResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.user.Account;
|
||||
|
||||
@ -167,9 +168,9 @@ public class CreateZoneCmd extends BaseCmd {
|
||||
CallContext.current().setEventDetails("Zone Name: "+getZoneName());
|
||||
DataCenter result = _configService.createZone(this);
|
||||
if (result != null){
|
||||
ZoneResponse response = _responseGenerator.createZoneResponse(result,false);
|
||||
ZoneResponse response = _responseGenerator.createZoneResponse(ResponseView.Full, result, false);
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
setResponseObject(response);
|
||||
} else {
|
||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create a zone");
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
// 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
|
||||
// with 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 org.apache.cloudstack.api.command.admin.zone;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
|
||||
@APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Full)
|
||||
public class ListZonesCmdByAdmin extends ListZonesCmd {
|
||||
}
|
||||
@ -19,17 +19,18 @@ package org.apache.cloudstack.api.command.admin.zone;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.ApiErrorCode;
|
||||
import org.apache.cloudstack.api.BaseCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.user.Account;
|
||||
|
||||
@ -179,9 +180,9 @@ public class UpdateZoneCmd extends BaseCmd {
|
||||
CallContext.current().setEventDetails("Zone Id: "+getId());
|
||||
DataCenter result = _configService.editZone(this);
|
||||
if (result != null) {
|
||||
ZoneResponse response = _responseGenerator.createZoneResponse(result, false);
|
||||
ZoneResponse response = _responseGenerator.createZoneResponse(ResponseView.Full, result, false);
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
setResponseObject(response);
|
||||
} else {
|
||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update zone; internal error.");
|
||||
}
|
||||
|
||||
@ -21,20 +21,22 @@ import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.apache.cloudstack.api.APICommand;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.BaseListCmd;
|
||||
import org.apache.cloudstack.api.Parameter;
|
||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||
import org.apache.cloudstack.api.response.DomainResponse;
|
||||
import org.apache.cloudstack.api.response.ListResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
|
||||
@APICommand(name = "listZones", description="Lists zones", responseObject=ZoneResponse.class)
|
||||
public class ListZonesByCmd extends BaseListCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(ListZonesByCmd.class.getName());
|
||||
@APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Restricted)
|
||||
public class ListZonesCmd extends BaseListCmd {
|
||||
public static final Logger s_logger = Logger.getLogger(ListZonesCmd.class.getName());
|
||||
|
||||
private static final String s_name = "listzonesresponse";
|
||||
|
||||
@ -127,6 +129,6 @@ public class ListZonesByCmd extends BaseListCmd {
|
||||
|
||||
ListResponse<ZoneResponse> response = _queryService.listDataCenters(this);
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
setResponseObject(response);
|
||||
}
|
||||
}
|
||||
@ -42,7 +42,7 @@ import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
||||
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
||||
import org.apache.cloudstack.api.response.AccountResponse;
|
||||
import org.apache.cloudstack.api.response.AclGroupResponse;
|
||||
import org.apache.cloudstack.api.response.AclPolicyResponse;
|
||||
@ -114,7 +114,7 @@ public interface QueryService {
|
||||
|
||||
public ListResponse<ServiceOfferingResponse> searchForServiceOfferings(ListServiceOfferingsCmd cmd);
|
||||
|
||||
public ListResponse<ZoneResponse> listDataCenters(ListZonesByCmd cmd);
|
||||
public ListResponse<ZoneResponse> listDataCenters(ListZonesCmd cmd);
|
||||
|
||||
public ListResponse<TemplateResponse> listTemplates(ListTemplatesCmd cmd);
|
||||
|
||||
|
||||
@ -1643,8 +1643,8 @@ public class ApiDBUtils {
|
||||
return _serviceOfferingJoinDao.newServiceOfferingView(offering);
|
||||
}
|
||||
|
||||
public static ZoneResponse newDataCenterResponse(DataCenterJoinVO dc, Boolean showCapacities) {
|
||||
return _dcJoinDao.newDataCenterResponse(dc, showCapacities);
|
||||
public static ZoneResponse newDataCenterResponse(ResponseView view, DataCenterJoinVO dc, Boolean showCapacities) {
|
||||
return _dcJoinDao.newDataCenterResponse(view, dc, showCapacities);
|
||||
}
|
||||
|
||||
public static DataCenterJoinVO newDataCenterView(DataCenter dc){
|
||||
|
||||
@ -859,9 +859,9 @@ public class ApiResponseHelper implements ResponseGenerator {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ZoneResponse createZoneResponse(DataCenter dataCenter, Boolean showCapacities) {
|
||||
public ZoneResponse createZoneResponse(ResponseView view, DataCenter dataCenter, Boolean showCapacities) {
|
||||
DataCenterJoinVO vOffering = ApiDBUtils.newDataCenterView(dataCenter);
|
||||
return ApiDBUtils.newDataCenterResponse(vOffering, showCapacities);
|
||||
return ApiDBUtils.newDataCenterResponse(view, vOffering, showCapacities);
|
||||
}
|
||||
|
||||
public static List<CapacityResponse> getDataCenterCapacityResponse(Long zoneId) {
|
||||
|
||||
@ -114,7 +114,7 @@ import org.apache.cloudstack.api.command.user.tag.ListTagsCmd;
|
||||
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
||||
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
||||
import org.apache.cloudstack.api.response.AsyncJobResponse;
|
||||
import org.apache.cloudstack.api.response.CreateCmdResponse;
|
||||
import org.apache.cloudstack.api.response.ExceptionResponse;
|
||||
@ -684,7 +684,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
|
||||
&& !(cmdObj instanceof ListStoragePoolsCmd)
|
||||
&& !(cmdObj instanceof ListDiskOfferingsCmd)
|
||||
&& !(cmdObj instanceof ListServiceOfferingsCmd)
|
||||
&& !(cmdObj instanceof ListZonesByCmd)
|
||||
&& !(cmdObj instanceof ListZonesCmd)
|
||||
) {
|
||||
buildAsyncListResponse((BaseListCmd) cmdObj, caller);
|
||||
}
|
||||
|
||||
@ -54,6 +54,7 @@ import org.apache.cloudstack.api.command.admin.template.ListTemplatesCmdByAdmin;
|
||||
import org.apache.cloudstack.api.command.admin.user.ListUsersCmd;
|
||||
import org.apache.cloudstack.api.command.admin.vm.ListVMsCmdByAdmin;
|
||||
import org.apache.cloudstack.api.command.admin.volume.ListVolumesCmdByAdmin;
|
||||
import org.apache.cloudstack.api.command.admin.zone.ListZonesCmdByAdmin;
|
||||
import org.apache.cloudstack.api.command.user.account.ListAccountsCmd;
|
||||
import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
|
||||
import org.apache.cloudstack.api.command.user.event.ListEventsCmd;
|
||||
@ -70,7 +71,7 @@ import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
||||
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd;
|
||||
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
||||
import org.apache.cloudstack.api.response.AccountResponse;
|
||||
import org.apache.cloudstack.api.response.AclGroupResponse;
|
||||
import org.apache.cloudstack.api.response.AclPolicyResponse;
|
||||
@ -2510,16 +2511,22 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListResponse<ZoneResponse> listDataCenters(ListZonesByCmd cmd) {
|
||||
public ListResponse<ZoneResponse> listDataCenters(ListZonesCmd cmd) {
|
||||
Pair<List<DataCenterJoinVO>, Integer> result = listDataCentersInternal(cmd);
|
||||
ListResponse<ZoneResponse> response = new ListResponse<ZoneResponse>();
|
||||
List<ZoneResponse> dcResponses = ViewResponseHelper.createDataCenterResponse(cmd.getShowCapacities(), result
|
||||
|
||||
ResponseView respView = ResponseView.Restricted;
|
||||
if (cmd instanceof ListZonesCmdByAdmin) {
|
||||
respView = ResponseView.Full;
|
||||
}
|
||||
|
||||
List<ZoneResponse> dcResponses = ViewResponseHelper.createDataCenterResponse(respView, cmd.getShowCapacities(), result
|
||||
.first().toArray(new DataCenterJoinVO[result.first().size()]));
|
||||
response.setResponses(dcResponses, result.second());
|
||||
return response;
|
||||
}
|
||||
|
||||
private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesByCmd cmd) {
|
||||
private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesCmd cmd) {
|
||||
Account account = CallContext.current().getCallingAccount();
|
||||
Long domainId = cmd.getDomainId();
|
||||
Long id = cmd.getId();
|
||||
|
||||
@ -370,10 +370,10 @@ public class ViewResponseHelper {
|
||||
return respList;
|
||||
}
|
||||
|
||||
public static List<ZoneResponse> createDataCenterResponse(Boolean showCapacities, DataCenterJoinVO... dcs) {
|
||||
public static List<ZoneResponse> createDataCenterResponse(ResponseView view, Boolean showCapacities, DataCenterJoinVO... dcs) {
|
||||
List<ZoneResponse> respList = new ArrayList<ZoneResponse>();
|
||||
for (DataCenterJoinVO vt : dcs){
|
||||
respList.add(ApiDBUtils.newDataCenterResponse(vt, showCapacities));
|
||||
respList.add(ApiDBUtils.newDataCenterResponse(view, vt, showCapacities));
|
||||
}
|
||||
return respList;
|
||||
}
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
// under the License.
|
||||
package com.cloud.api.query.dao;
|
||||
|
||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
|
||||
import com.cloud.api.query.vo.DataCenterJoinVO;
|
||||
@ -24,7 +25,7 @@ import com.cloud.utils.db.GenericDao;
|
||||
|
||||
public interface DataCenterJoinDao extends GenericDao<DataCenterJoinVO, Long> {
|
||||
|
||||
ZoneResponse newDataCenterResponse(DataCenterJoinVO dof, Boolean showCapacities);
|
||||
ZoneResponse newDataCenterResponse(ResponseView view, DataCenterJoinVO dof, Boolean showCapacities);
|
||||
|
||||
DataCenterJoinVO newDataCenterView(DataCenter dof);
|
||||
}
|
||||
|
||||
@ -21,11 +21,13 @@ import java.util.List;
|
||||
import javax.ejb.Local;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||
import org.apache.cloudstack.api.response.ResourceTagResponse;
|
||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
@ -55,13 +57,13 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase<DataCenterJoinVO, Long
|
||||
dofIdSearch.and("id", dofIdSearch.entity().getId(), SearchCriteria.Op.EQ);
|
||||
dofIdSearch.done();
|
||||
|
||||
this._count = "select count(distinct id) from data_center_view WHERE ";
|
||||
_count = "select count(distinct id) from data_center_view WHERE ";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public ZoneResponse newDataCenterResponse(DataCenterJoinVO dataCenter, Boolean showCapacities) {
|
||||
public ZoneResponse newDataCenterResponse(ResponseView view, DataCenterJoinVO dataCenter, Boolean showCapacities) {
|
||||
|
||||
Account account = CallContext.current().getCallingAccount();
|
||||
ZoneResponse zoneResponse = new ZoneResponse();
|
||||
@ -74,7 +76,7 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase<DataCenterJoinVO, Long
|
||||
zoneResponse.setDescription(dataCenter.getDescription());
|
||||
}
|
||||
|
||||
if ((account == null) || (_accountMgr.isRootAdmin(account.getId()))) {
|
||||
if (view == ResponseView.Full) {
|
||||
zoneResponse.setDns1(dataCenter.getDns1());
|
||||
zoneResponse.setDns2(dataCenter.getDns2());
|
||||
zoneResponse.setIp6Dns1(dataCenter.getIp6Dns1());
|
||||
@ -104,7 +106,7 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase<DataCenterJoinVO, Long
|
||||
|
||||
// update tag information
|
||||
List<ResourceTagJoinVO> resourceTags = ApiDBUtils.listResourceTagViewByResourceUUID(dataCenter.getUuid(), ResourceObjectType.Zone);
|
||||
for (ResourceTagJoinVO resourceTag : resourceTags) {
|
||||
for (ResourceTagJoinVO resourceTag : resourceTags) {
|
||||
ResourceTagResponse tagResponse = ApiDBUtils.newResourceTagResponse(resourceTag, false);
|
||||
zoneResponse.addTag(tagResponse);
|
||||
}
|
||||
|
||||
@ -438,7 +438,7 @@ import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
|
||||
import org.apache.cloudstack.api.command.user.vpn.RemoveVpnUserCmd;
|
||||
import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
|
||||
import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
|
||||
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
||||
import org.apache.cloudstack.config.Configuration;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService;
|
||||
@ -2823,7 +2823,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
|
||||
cmdList.add(RemoveVpnUserCmd.class);
|
||||
cmdList.add(ResetVpnConnectionCmd.class);
|
||||
cmdList.add(UpdateVpnCustomerGatewayCmd.class);
|
||||
cmdList.add(ListZonesByCmd.class);
|
||||
cmdList.add(ListZonesCmd.class);
|
||||
cmdList.add(ListVMSnapshotCmd.class);
|
||||
cmdList.add(CreateVMSnapshotCmd.class);
|
||||
cmdList.add(RevertToVMSnapshotCmd.class);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user