diff --git a/api/src/com/cloud/api/ApiConstants.java b/api/src/com/cloud/api/ApiConstants.java index 941b9293669..e4de439beae 100755 --- a/api/src/com/cloud/api/ApiConstants.java +++ b/api/src/com/cloud/api/ApiConstants.java @@ -227,4 +227,5 @@ public class ApiConstants { public static final String NETWORK_DEVICE_TYPE = "networkdevicetype"; public static final String NETWORK_DEVICE_PARAMETER_LIST = "networkdeviceparameterlist"; public static final String ZONE_TOKEN = "zonetoken"; + public static final String DHCP_PROVIDER = "dhcpprovider"; } diff --git a/api/src/com/cloud/api/commands/UpdateZoneCmd.java b/api/src/com/cloud/api/commands/UpdateZoneCmd.java index 5a8182ffdb8..0c40b0cb583 100644 --- a/api/src/com/cloud/api/commands/UpdateZoneCmd.java +++ b/api/src/com/cloud/api/commands/UpdateZoneCmd.java @@ -75,6 +75,8 @@ public class UpdateZoneCmd extends BaseCmd { @Parameter(name=ApiConstants.DETAILS, type=CommandType.MAP, description="the details for the Zone") private Map details; + @Parameter(name=ApiConstants.DHCP_PROVIDER, type=CommandType.STRING, description="the dhcp Provider for the Zone") + private String dhcpProvider; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// @@ -122,7 +124,11 @@ public class UpdateZoneCmd extends BaseCmd { public Map getDetails() { return details; - } + } + + public String getDhcpProvider() { + return dhcpProvider; + } ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// diff --git a/api/src/com/cloud/api/response/ZoneResponse.java b/api/src/com/cloud/api/response/ZoneResponse.java index 033b12ec84a..59288a20dbf 100644 --- a/api/src/com/cloud/api/response/ZoneResponse.java +++ b/api/src/com/cloud/api/response/ZoneResponse.java @@ -73,6 +73,9 @@ public class ZoneResponse extends BaseResponse { @SerializedName(ApiConstants.ZONE_TOKEN) @Param(description="Zone Token") private String zoneToken; + + @SerializedName(ApiConstants.DHCP_PROVIDER) @Param(description="the dhcp Provider for the Zone") + private String dhcpProvider; public Long getId() { return id; @@ -208,5 +211,13 @@ public class ZoneResponse extends BaseResponse { public void setZoneToken(String zoneToken) { this.zoneToken = zoneToken; - } + } + + public String getDhcpProvider() { + return dhcpProvider; + } + + public void setDhcpProvider(String dhcpProvider) { + this.dhcpProvider = dhcpProvider; + } } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index c496c5280cf..10fb1580c38 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -767,7 +767,8 @@ public class ApiResponseHelper implements ResponseGenerator { zoneResponse.setDomainId(dataCenter.getDomainId()); zoneResponse.setType(dataCenter.getNetworkType().toString()); zoneResponse.setAllocationState(dataCenter.getAllocationState().toString()); - zoneResponse.setZoneToken(dataCenter.getZoneToken()); + zoneResponse.setZoneToken(dataCenter.getZoneToken()); + zoneResponse.setDhcpProvider(dataCenter.getDhcpProvider()); zoneResponse.setObjectName("zone"); return zoneResponse; } diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index c677f0451f8..45a6bd29834 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -1088,6 +1088,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura int stopVnetRange = 0; Boolean isPublic = cmd.isPublic(); String allocationStateStr = cmd.getAllocationState(); + String dhcpProvider = cmd.getDhcpProvider(); Map detailsMap = cmd.getDetails(); Map newDetails = new HashMap(); @@ -1244,6 +1245,10 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura zone.setAllocationState(allocationState); } + if(dhcpProvider != null){ + zone.setDhcpProvider(dhcpProvider); + } + if (!_zoneDao.update(zoneId, zone)) { throw new CloudRuntimeException("Failed to edit zone. Please contact Cloud Support."); }