Fixed updatePod Api to return embedded object instead of "success" response

This commit is contained in:
alena 2010-11-03 11:15:37 -07:00
parent 426e445811
commit 8c0e2fa7ec
7 changed files with 69 additions and 100 deletions

View File

@ -31,6 +31,7 @@ import com.cloud.api.response.DomainRouterResponse;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.IPAddressResponse;
import com.cloud.api.response.LoadBalancerResponse;
import com.cloud.api.response.PodResponse;
import com.cloud.api.response.ResourceLimitResponse;
import com.cloud.api.response.ServiceOfferingResponse;
import com.cloud.api.response.SnapshotPolicyResponse;
@ -39,11 +40,13 @@ import com.cloud.api.response.SystemVmResponse;
import com.cloud.api.response.UserResponse;
import com.cloud.api.response.UserVmResponse;
import com.cloud.api.response.VlanIpRangeResponse;
import com.cloud.api.response.ZoneResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.ResourceCount.ResourceType;
import com.cloud.configuration.ResourceLimitVO;
import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenterVO;
import com.cloud.dc.HostPodVO;
import com.cloud.dc.Vlan.VlanType;
import com.cloud.dc.VlanVO;
@ -66,6 +69,7 @@ import com.cloud.storage.SnapshotPolicyVO;
import com.cloud.storage.StoragePoolVO;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.VolumeVO;
import com.cloud.test.PodZoneConfig;
import com.cloud.user.Account;
import com.cloud.user.UserAccount;
import com.cloud.user.UserContext;
@ -714,4 +718,49 @@ public class ApiResponseHelper {
return lbResponse;
}
public static PodResponse createPodResponse (HostPodVO pod) {
String[] ipRange = new String[2];
if (pod.getDescription() != null && pod.getDescription().length() > 0) {
ipRange = pod.getDescription().split("-");
} else {
ipRange[0] = pod.getDescription();
}
PodResponse podResponse = new PodResponse();
podResponse.setId(pod.getId());
podResponse.setName(pod.getName());
podResponse.setZoneId(pod.getDataCenterId());
podResponse.setZoneName(PodZoneConfig.getZoneName(pod.getDataCenterId()));
podResponse.setCidr(pod.getCidrAddress() +"/" + pod.getCidrSize());
podResponse.setStartIp(ipRange[0]);
podResponse.setEndIp(((ipRange.length > 1) && (ipRange[1] != null)) ? ipRange[1] : "");
podResponse.setGateway(pod.getGateway());
return podResponse;
}
public static ZoneResponse createZoneResponse (DataCenterVO dataCenter) {
Account account = (Account)UserContext.current().getAccount();
ZoneResponse zoneResponse = new ZoneResponse();
zoneResponse.setId(dataCenter.getId());
zoneResponse.setName(dataCenter.getName());
if ((dataCenter.getDescription() != null) && !dataCenter.getDescription().equalsIgnoreCase("null")) {
zoneResponse.setDescription(dataCenter.getDescription());
}
if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN)) {
zoneResponse.setDns1(dataCenter.getDns1());
zoneResponse.setDns2(dataCenter.getDns2());
zoneResponse.setInternalDns1(dataCenter.getInternalDns1());
zoneResponse.setInternalDns2(dataCenter.getInternalDns2());
zoneResponse.setVlan(dataCenter.getVnet());
zoneResponse.setGuestCidrAddress(dataCenter.getGuestNetworkCidr());
}
return zoneResponse;
}
}

View File

@ -21,7 +21,7 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -98,17 +98,7 @@ public class CreatePodCmd extends BaseCmd {
@Override @SuppressWarnings("unchecked")
public PodResponse getResponse() {
HostPodVO pod = (HostPodVO)getResponseObject();
PodResponse response = new PodResponse();
response.setId(pod.getId());
response.setCidr(pod.getCidrAddress() + "/" + pod.getCidrSize());
response.setEndIp(endIp == null ? "" : endIp);
response.setStartIp(startIp);
response.setZoneName(ApiDBUtils.findZoneById(pod.getDataCenterId()).getName());
response.setGateway(pod.getGateway());
response.setName(pod.getName());
response.setZoneId(pod.getDataCenterId());
PodResponse response = ApiResponseHelper.createPodResponse(pod);
response.setResponseName(getName());
return response;
}

View File

@ -21,6 +21,7 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -118,19 +119,8 @@ public class CreateZoneCmd extends BaseCmd {
@Override @SuppressWarnings("unchecked")
public ZoneResponse getResponse() {
DataCenterVO zone = (DataCenterVO)getResponseObject();
ZoneResponse response = new ZoneResponse();
response.setId(zone.getId());
response.setName(zone.getName());
response.setDns1(zone.getDns1());
response.setDns2(zone.getDns2());
response.setInternalDns1(zone.getInternalDns1());
response.setInternalDns2(zone.getInternalDns2());
response.setVlan(zone.getVnet());
response.setGuestCidrAddress(zone.getGuestNetworkCidr());
response.setDomain(zone.getDomain());
ZoneResponse response = ApiResponseHelper.createZoneResponse(zone);
response.setResponseName(getName());
response.setDomainId(zone.getDomainId());
return response;
}
}

View File

@ -24,13 +24,13 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.PodResponse;
import com.cloud.dc.HostPodVO;
import com.cloud.test.PodZoneConfig;
@Implementation(method="searchForPods", description="Lists all Pods.")
public class ListPodsByCmd extends BaseListCmd {
@ -84,23 +84,7 @@ public class ListPodsByCmd extends BaseListCmd {
ListResponse<PodResponse> response = new ListResponse<PodResponse>();
List<PodResponse> podResponses = new ArrayList<PodResponse>();
for (HostPodVO pod : pods) {
String[] ipRange = new String[2];
if (pod.getDescription() != null && pod.getDescription().length() > 0) {
ipRange = pod.getDescription().split("-");
} else {
ipRange[0] = pod.getDescription();
}
PodResponse podResponse = new PodResponse();
podResponse.setId(pod.getId());
podResponse.setName(pod.getName());
podResponse.setZoneId(pod.getDataCenterId());
podResponse.setZoneName(PodZoneConfig.getZoneName(pod.getDataCenterId()));
podResponse.setCidr(pod.getCidrAddress() +"/" + pod.getCidrSize());
podResponse.setStartIp(ipRange[0]);
podResponse.setEndIp(((ipRange.length > 1) && (ipRange[1] != null)) ? ipRange[1] : "");
podResponse.setGateway(pod.getGateway());
PodResponse podResponse = ApiResponseHelper.createPodResponse(pod);
podResponse.setResponseName("pod");
podResponses.add(podResponse);
}

View File

@ -23,14 +23,13 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.ZoneResponse;
import com.cloud.dc.DataCenterVO;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@Implementation(method="listDataCenters")
public class ListZonesByCmd extends BaseListCmd {
@ -65,28 +64,11 @@ public class ListZonesByCmd extends BaseListCmd {
@Override @SuppressWarnings("unchecked")
public ListResponse<ZoneResponse> getResponse() {
List<DataCenterVO> dataCenters = (List<DataCenterVO>)getResponseObject();
Account account = (Account)UserContext.current().getAccount();
ListResponse<ZoneResponse> response = new ListResponse<ZoneResponse>();
List<ZoneResponse> zoneResponses = new ArrayList<ZoneResponse>();
for (DataCenterVO dataCenter : dataCenters) {
ZoneResponse zoneResponse = new ZoneResponse();
zoneResponse.setId(dataCenter.getId());
zoneResponse.setName(dataCenter.getName());
if ((dataCenter.getDescription() != null) && !dataCenter.getDescription().equalsIgnoreCase("null")) {
zoneResponse.setDescription(dataCenter.getDescription());
}
if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN)) {
zoneResponse.setDns1(dataCenter.getDns1());
zoneResponse.setDns2(dataCenter.getDns2());
zoneResponse.setInternalDns1(dataCenter.getInternalDns1());
zoneResponse.setInternalDns2(dataCenter.getInternalDns2());
zoneResponse.setVlan(dataCenter.getVnet());
zoneResponse.setGuestCidrAddress(dataCenter.getGuestNetworkCidr());
}
ZoneResponse zoneResponse = ApiResponseHelper.createZoneResponse(dataCenter);
zoneResponse.setResponseName("zone");
zoneResponses.add(zoneResponse);
}

View File

@ -21,11 +21,13 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.SuccessResponse;
import com.cloud.api.response.PodResponse;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.HostPodVO;
@Implementation(method="editPod", manager=ConfigurationManager.class, description="Updates a Pod.")
public class UpdatePodCmd extends BaseCmd {
@ -91,28 +93,11 @@ public class UpdatePodCmd extends BaseCmd {
return s_name;
}
@Override @SuppressWarnings("unchecked")
public SuccessResponse getResponse() {
/* Not sure why we aren't returning the Pod here, but I'll keep the old "success" response we used to have
@Override @SuppressWarnings("unchecked")
public PodResponse getResponse() {
HostPodVO pod = (HostPodVO)getResponseObject();
PodResponse response = new PodResponse();
response.setId(pod.getId());
response.setCidr(pod.getCidrAddress() + "/" + pod.getCidrSize());
response.setEndIp(endIp == null ? "" : endIp);
response.setStartIp(startIp);
response.setZoneName(ApiDBUtils.findZoneById(pod.getDataCenterId()).getName());
response.setGateway(pod.getGateway());
response.setName(pod.getName());
response.setZoneId(pod.getDataCenterId());
PodResponse response = ApiResponseHelper.createPodResponse(pod);
response.setResponseName(getName());
return response;
*/
SuccessResponse response = new SuccessResponse();
response.setSuccess(Boolean.TRUE);
//response.setDisplayText("Successfully updated pod.");
response.setResponseName(getName());
return response;
}
}
}

View File

@ -21,6 +21,7 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -127,26 +128,14 @@ public class UpdateZoneCmd extends BaseCmd {
@Override @SuppressWarnings("unchecked")
public ZoneResponse getResponse() {
ZoneResponse response = new ZoneResponse();
DataCenterVO responseObject = (DataCenterVO)getResponseObject();
if (responseObject != null) {
response.setStatus("true");
response.setDisplayText("Successfully updated zone");
response.setId(responseObject.getId());
response.setGuestCidrAddress(responseObject.getGuestNetworkCidr());
response.setDns1(responseObject.getDns1());
response.setDns2(responseObject.getDns2());
response.setInternalDns1(responseObject.getInternalDns1());
response.setInternalDns2(responseObject.getInternalDns2());
response.setName(responseObject.getName());
response.setVlan(responseObject.getVnet());
response.setDomain(responseObject.getDomain());
ZoneResponse response = ApiResponseHelper.createZoneResponse(responseObject);
response.setResponseName(getName());
return response;
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update zone; internal error.");
}
response.setResponseName(getName());
return response;
}
}