Separate listZones cmd to use two different views, also renamed previous

listZonesByCmd to listZonesCmd.
This commit is contained in:
Min Chen 2013-12-12 17:40:30 -08:00
parent a6d03cd826
commit 312ff76f69
14 changed files with 77 additions and 37 deletions

View File

@ -253,7 +253,7 @@ public interface ResponseGenerator {
PodResponse createPodResponse(Pod pod, Boolean showCapacities); 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); VolumeResponse createVolumeResponse(ResponseView view, Volume volume);

View File

@ -16,18 +16,19 @@
// under the License. // under the License.
package org.apache.cloudstack.api.command.admin.zone; package org.apache.cloudstack.api.command.admin.zone;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode; import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.DomainResponse; import org.apache.cloudstack.api.response.DomainResponse;
import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter;
import com.cloud.user.Account; import com.cloud.user.Account;
@ -167,9 +168,9 @@ public class CreateZoneCmd extends BaseCmd {
CallContext.current().setEventDetails("Zone Name: "+getZoneName()); CallContext.current().setEventDetails("Zone Name: "+getZoneName());
DataCenter result = _configService.createZone(this); DataCenter result = _configService.createZone(this);
if (result != null){ if (result != null){
ZoneResponse response = _responseGenerator.createZoneResponse(result,false); ZoneResponse response = _responseGenerator.createZoneResponse(ResponseView.Full, result, false);
response.setResponseName(getCommandName()); response.setResponseName(getCommandName());
this.setResponseObject(response); setResponseObject(response);
} else { } else {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create a zone"); throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create a zone");
} }

View File

@ -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 {
}

View File

@ -19,17 +19,18 @@ package org.apache.cloudstack.api.command.admin.zone;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiErrorCode; import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.Parameter; import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter;
import com.cloud.user.Account; import com.cloud.user.Account;
@ -179,9 +180,9 @@ public class UpdateZoneCmd extends BaseCmd {
CallContext.current().setEventDetails("Zone Id: "+getId()); CallContext.current().setEventDetails("Zone Id: "+getId());
DataCenter result = _configService.editZone(this); DataCenter result = _configService.editZone(this);
if (result != null) { if (result != null) {
ZoneResponse response = _responseGenerator.createZoneResponse(result, false); ZoneResponse response = _responseGenerator.createZoneResponse(ResponseView.Full, result, false);
response.setResponseName(getCommandName()); response.setResponseName(getCommandName());
this.setResponseObject(response); setResponseObject(response);
} else { } else {
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update zone; internal error."); throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update zone; internal error.");
} }

View File

@ -21,20 +21,22 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseListCmd; import org.apache.cloudstack.api.BaseListCmd;
import org.apache.cloudstack.api.Parameter; 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.DomainResponse;
import org.apache.cloudstack.api.response.ListResponse; import org.apache.cloudstack.api.response.ListResponse;
import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.log4j.Logger;
import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.InvalidParameterValueException;
@APICommand(name = "listZones", description="Lists zones", responseObject=ZoneResponse.class) @APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Restricted)
public class ListZonesByCmd extends BaseListCmd { public class ListZonesCmd extends BaseListCmd {
public static final Logger s_logger = Logger.getLogger(ListZonesByCmd.class.getName()); public static final Logger s_logger = Logger.getLogger(ListZonesCmd.class.getName());
private static final String s_name = "listzonesresponse"; private static final String s_name = "listzonesresponse";
@ -127,6 +129,6 @@ public class ListZonesByCmd extends BaseListCmd {
ListResponse<ZoneResponse> response = _queryService.listDataCenters(this); ListResponse<ZoneResponse> response = _queryService.listDataCenters(this);
response.setResponseName(getCommandName()); response.setResponseName(getCommandName());
this.setResponseObject(response); setResponseObject(response);
} }
} }

View File

@ -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.vmgroup.ListVMGroupsCmd;
import org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd; 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.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.AccountResponse;
import org.apache.cloudstack.api.response.AclGroupResponse; import org.apache.cloudstack.api.response.AclGroupResponse;
import org.apache.cloudstack.api.response.AclPolicyResponse; import org.apache.cloudstack.api.response.AclPolicyResponse;
@ -114,7 +114,7 @@ public interface QueryService {
public ListResponse<ServiceOfferingResponse> searchForServiceOfferings(ListServiceOfferingsCmd cmd); public ListResponse<ServiceOfferingResponse> searchForServiceOfferings(ListServiceOfferingsCmd cmd);
public ListResponse<ZoneResponse> listDataCenters(ListZonesByCmd cmd); public ListResponse<ZoneResponse> listDataCenters(ListZonesCmd cmd);
public ListResponse<TemplateResponse> listTemplates(ListTemplatesCmd cmd); public ListResponse<TemplateResponse> listTemplates(ListTemplatesCmd cmd);

View File

@ -1643,8 +1643,8 @@ public class ApiDBUtils {
return _serviceOfferingJoinDao.newServiceOfferingView(offering); return _serviceOfferingJoinDao.newServiceOfferingView(offering);
} }
public static ZoneResponse newDataCenterResponse(DataCenterJoinVO dc, Boolean showCapacities) { public static ZoneResponse newDataCenterResponse(ResponseView view, DataCenterJoinVO dc, Boolean showCapacities) {
return _dcJoinDao.newDataCenterResponse(dc, showCapacities); return _dcJoinDao.newDataCenterResponse(view, dc, showCapacities);
} }
public static DataCenterJoinVO newDataCenterView(DataCenter dc){ public static DataCenterJoinVO newDataCenterView(DataCenter dc){

View File

@ -859,9 +859,9 @@ public class ApiResponseHelper implements ResponseGenerator {
} }
@Override @Override
public ZoneResponse createZoneResponse(DataCenter dataCenter, Boolean showCapacities) { public ZoneResponse createZoneResponse(ResponseView view, DataCenter dataCenter, Boolean showCapacities) {
DataCenterJoinVO vOffering = ApiDBUtils.newDataCenterView(dataCenter); DataCenterJoinVO vOffering = ApiDBUtils.newDataCenterView(dataCenter);
return ApiDBUtils.newDataCenterResponse(vOffering, showCapacities); return ApiDBUtils.newDataCenterResponse(view, vOffering, showCapacities);
} }
public static List<CapacityResponse> getDataCenterCapacityResponse(Long zoneId) { public static List<CapacityResponse> getDataCenterCapacityResponse(Long zoneId) {

View File

@ -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.vm.ListVMsCmd;
import org.apache.cloudstack.api.command.user.vmgroup.ListVMGroupsCmd; 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.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.AsyncJobResponse;
import org.apache.cloudstack.api.response.CreateCmdResponse; import org.apache.cloudstack.api.response.CreateCmdResponse;
import org.apache.cloudstack.api.response.ExceptionResponse; import org.apache.cloudstack.api.response.ExceptionResponse;
@ -684,7 +684,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
&& !(cmdObj instanceof ListStoragePoolsCmd) && !(cmdObj instanceof ListStoragePoolsCmd)
&& !(cmdObj instanceof ListDiskOfferingsCmd) && !(cmdObj instanceof ListDiskOfferingsCmd)
&& !(cmdObj instanceof ListServiceOfferingsCmd) && !(cmdObj instanceof ListServiceOfferingsCmd)
&& !(cmdObj instanceof ListZonesByCmd) && !(cmdObj instanceof ListZonesCmd)
) { ) {
buildAsyncListResponse((BaseListCmd) cmdObj, caller); buildAsyncListResponse((BaseListCmd) cmdObj, caller);
} }

View File

@ -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.user.ListUsersCmd;
import org.apache.cloudstack.api.command.admin.vm.ListVMsCmdByAdmin; 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.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.ListAccountsCmd;
import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd; import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
import org.apache.cloudstack.api.command.user.event.ListEventsCmd; 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.vmgroup.ListVMGroupsCmd;
import org.apache.cloudstack.api.command.user.volume.ListResourceDetailsCmd; 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.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.AccountResponse;
import org.apache.cloudstack.api.response.AclGroupResponse; import org.apache.cloudstack.api.response.AclGroupResponse;
import org.apache.cloudstack.api.response.AclPolicyResponse; import org.apache.cloudstack.api.response.AclPolicyResponse;
@ -2510,16 +2511,22 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
} }
@Override @Override
public ListResponse<ZoneResponse> listDataCenters(ListZonesByCmd cmd) { public ListResponse<ZoneResponse> listDataCenters(ListZonesCmd cmd) {
Pair<List<DataCenterJoinVO>, Integer> result = listDataCentersInternal(cmd); Pair<List<DataCenterJoinVO>, Integer> result = listDataCentersInternal(cmd);
ListResponse<ZoneResponse> response = new ListResponse<ZoneResponse>(); 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()])); .first().toArray(new DataCenterJoinVO[result.first().size()]));
response.setResponses(dcResponses, result.second()); response.setResponses(dcResponses, result.second());
return response; return response;
} }
private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesByCmd cmd) { private Pair<List<DataCenterJoinVO>, Integer> listDataCentersInternal(ListZonesCmd cmd) {
Account account = CallContext.current().getCallingAccount(); Account account = CallContext.current().getCallingAccount();
Long domainId = cmd.getDomainId(); Long domainId = cmd.getDomainId();
Long id = cmd.getId(); Long id = cmd.getId();

View File

@ -370,10 +370,10 @@ public class ViewResponseHelper {
return respList; 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>(); List<ZoneResponse> respList = new ArrayList<ZoneResponse>();
for (DataCenterJoinVO vt : dcs){ for (DataCenterJoinVO vt : dcs){
respList.add(ApiDBUtils.newDataCenterResponse(vt, showCapacities)); respList.add(ApiDBUtils.newDataCenterResponse(view, vt, showCapacities));
} }
return respList; return respList;
} }

View File

@ -16,6 +16,7 @@
// under the License. // under the License.
package com.cloud.api.query.dao; package com.cloud.api.query.dao;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.api.response.ZoneResponse;
import com.cloud.api.query.vo.DataCenterJoinVO; import com.cloud.api.query.vo.DataCenterJoinVO;
@ -24,7 +25,7 @@ import com.cloud.utils.db.GenericDao;
public interface DataCenterJoinDao extends GenericDao<DataCenterJoinVO, Long> { 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); DataCenterJoinVO newDataCenterView(DataCenter dof);
} }

View File

@ -21,11 +21,13 @@ import java.util.List;
import javax.ejb.Local; import javax.ejb.Local;
import javax.inject.Inject; 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.ResourceTagResponse;
import org.apache.cloudstack.api.response.ZoneResponse; import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.context.CallContext; 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.ApiDBUtils;
import com.cloud.api.ApiResponseHelper; 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.and("id", dofIdSearch.entity().getId(), SearchCriteria.Op.EQ);
dofIdSearch.done(); dofIdSearch.done();
this._count = "select count(distinct id) from data_center_view WHERE "; _count = "select count(distinct id) from data_center_view WHERE ";
} }
@Override @Override
public ZoneResponse newDataCenterResponse(DataCenterJoinVO dataCenter, Boolean showCapacities) { public ZoneResponse newDataCenterResponse(ResponseView view, DataCenterJoinVO dataCenter, Boolean showCapacities) {
Account account = CallContext.current().getCallingAccount(); Account account = CallContext.current().getCallingAccount();
ZoneResponse zoneResponse = new ZoneResponse(); ZoneResponse zoneResponse = new ZoneResponse();
@ -74,7 +76,7 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase<DataCenterJoinVO, Long
zoneResponse.setDescription(dataCenter.getDescription()); zoneResponse.setDescription(dataCenter.getDescription());
} }
if ((account == null) || (_accountMgr.isRootAdmin(account.getId()))) { if (view == ResponseView.Full) {
zoneResponse.setDns1(dataCenter.getDns1()); zoneResponse.setDns1(dataCenter.getDns1());
zoneResponse.setDns2(dataCenter.getDns2()); zoneResponse.setDns2(dataCenter.getDns2());
zoneResponse.setIp6Dns1(dataCenter.getIp6Dns1()); zoneResponse.setIp6Dns1(dataCenter.getIp6Dns1());
@ -104,7 +106,7 @@ public class DataCenterJoinDaoImpl extends GenericDaoBase<DataCenterJoinVO, Long
// update tag information // update tag information
List<ResourceTagJoinVO> resourceTags = ApiDBUtils.listResourceTagViewByResourceUUID(dataCenter.getUuid(), ResourceObjectType.Zone); List<ResourceTagJoinVO> resourceTags = ApiDBUtils.listResourceTagViewByResourceUUID(dataCenter.getUuid(), ResourceObjectType.Zone);
for (ResourceTagJoinVO resourceTag : resourceTags) { for (ResourceTagJoinVO resourceTag : resourceTags) {
ResourceTagResponse tagResponse = ApiDBUtils.newResourceTagResponse(resourceTag, false); ResourceTagResponse tagResponse = ApiDBUtils.newResourceTagResponse(resourceTag, false);
zoneResponse.addTag(tagResponse); zoneResponse.addTag(tagResponse);
} }

View File

@ -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.RemoveVpnUserCmd;
import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd; 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.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.config.Configuration;
import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService; 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(RemoveVpnUserCmd.class);
cmdList.add(ResetVpnConnectionCmd.class); cmdList.add(ResetVpnConnectionCmd.class);
cmdList.add(UpdateVpnCustomerGatewayCmd.class); cmdList.add(UpdateVpnCustomerGatewayCmd.class);
cmdList.add(ListZonesByCmd.class); cmdList.add(ListZonesCmd.class);
cmdList.add(ListVMSnapshotCmd.class); cmdList.add(ListVMSnapshotCmd.class);
cmdList.add(CreateVMSnapshotCmd.class); cmdList.add(CreateVMSnapshotCmd.class);
cmdList.add(RevertToVMSnapshotCmd.class); cmdList.add(RevertToVMSnapshotCmd.class);