From 8c0e2fa7ec9ebebd4d59f8085c6d5d3d8765bc00 Mon Sep 17 00:00:00 2001 From: alena Date: Wed, 3 Nov 2010 11:15:37 -0700 Subject: [PATCH] Fixed updatePod Api to return embedded object instead of "success" response --- .../src/com/cloud/api/ApiResponseHelper.java | 49 +++++++++++++++++++ .../com/cloud/api/commands/CreatePodCmd.java | 14 +----- .../com/cloud/api/commands/CreateZoneCmd.java | 14 +----- .../com/cloud/api/commands/ListPodsByCmd.java | 20 +------- .../cloud/api/commands/ListZonesByCmd.java | 22 +-------- .../com/cloud/api/commands/UpdatePodCmd.java | 29 +++-------- .../com/cloud/api/commands/UpdateZoneCmd.java | 21 ++------ 7 files changed, 69 insertions(+), 100 deletions(-) diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index b206724a454..8928a640d15 100644 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -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; + } + + + } diff --git a/server/src/com/cloud/api/commands/CreatePodCmd.java b/server/src/com/cloud/api/commands/CreatePodCmd.java index a79255670c2..5666f94aa89 100644 --- a/server/src/com/cloud/api/commands/CreatePodCmd.java +++ b/server/src/com/cloud/api/commands/CreatePodCmd.java @@ -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; } diff --git a/server/src/com/cloud/api/commands/CreateZoneCmd.java b/server/src/com/cloud/api/commands/CreateZoneCmd.java index 51d8fd3f55e..0a4074e6d3f 100644 --- a/server/src/com/cloud/api/commands/CreateZoneCmd.java +++ b/server/src/com/cloud/api/commands/CreateZoneCmd.java @@ -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; } } diff --git a/server/src/com/cloud/api/commands/ListPodsByCmd.java b/server/src/com/cloud/api/commands/ListPodsByCmd.java index de822d73e39..57e306b01a3 100644 --- a/server/src/com/cloud/api/commands/ListPodsByCmd.java +++ b/server/src/com/cloud/api/commands/ListPodsByCmd.java @@ -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 response = new ListResponse(); List podResponses = new ArrayList(); 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); } diff --git a/server/src/com/cloud/api/commands/ListZonesByCmd.java b/server/src/com/cloud/api/commands/ListZonesByCmd.java index fb5e2139d02..66784b88620 100644 --- a/server/src/com/cloud/api/commands/ListZonesByCmd.java +++ b/server/src/com/cloud/api/commands/ListZonesByCmd.java @@ -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 getResponse() { List dataCenters = (List)getResponseObject(); - Account account = (Account)UserContext.current().getAccount(); ListResponse response = new ListResponse(); List zoneResponses = new ArrayList(); 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); } diff --git a/server/src/com/cloud/api/commands/UpdatePodCmd.java b/server/src/com/cloud/api/commands/UpdatePodCmd.java index 71ac3e1024f..3d07322c2aa 100644 --- a/server/src/com/cloud/api/commands/UpdatePodCmd.java +++ b/server/src/com/cloud/api/commands/UpdatePodCmd.java @@ -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; - } + } } diff --git a/server/src/com/cloud/api/commands/UpdateZoneCmd.java b/server/src/com/cloud/api/commands/UpdateZoneCmd.java index 3ba04b77fde..6f7271b7b2c 100644 --- a/server/src/com/cloud/api/commands/UpdateZoneCmd.java +++ b/server/src/com/cloud/api/commands/UpdateZoneCmd.java @@ -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; } }