From e351182455d8bd6dd8912e4528a0a8adf0eed1ff Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Mon, 16 Apr 2012 15:42:39 -0700 Subject: [PATCH] CS-14512: fixed deployVm with ipToNetworkList when uuid is used for networkIds --- api/src/com/cloud/api/ResponseGenerator.java | 7 +++++++ api/src/com/cloud/api/commands/DeployVMCmd.java | 4 +--- server/src/com/cloud/api/ApiDispatcher.java | 6 +++++- server/src/com/cloud/api/ApiResponseHelper.java | 5 +++++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/api/src/com/cloud/api/ResponseGenerator.java b/api/src/com/cloud/api/ResponseGenerator.java index aa20b5a8e86..1549ac829e9 100755 --- a/api/src/com/cloud/api/ResponseGenerator.java +++ b/api/src/com/cloud/api/ResponseGenerator.java @@ -269,4 +269,11 @@ public interface ResponseGenerator { LDAPConfigResponse createLDAPConfigResponse(String hostname, Integer port, Boolean useSSL, String queryFilter, String baseSearch, String dn); StorageNetworkIpRangeResponse createStorageNetworkIpRangeResponse(StorageNetworkIpRange result); + + /** + * @param tableName TODO + * @param token + * @return + */ + Long getIdentiyId(String tableName, String token); } diff --git a/api/src/com/cloud/api/commands/DeployVMCmd.java b/api/src/com/cloud/api/commands/DeployVMCmd.java index e559b0893ce..83f0a5717df 100644 --- a/api/src/com/cloud/api/commands/DeployVMCmd.java +++ b/api/src/com/cloud/api/commands/DeployVMCmd.java @@ -118,7 +118,6 @@ public class DeployVMCmd extends BaseAsyncCreateCmd { @Parameter(name=ApiConstants.SECURITY_GROUP_NAMES, type=CommandType.LIST, collectionType=CommandType.STRING, description="comma separated list of security groups names that going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter") private List securityGroupNameList; - @IdentityMapper(entityTableName="networks") @Parameter(name = ApiConstants.IP_NETWORK_LIST, type = CommandType.MAP, description = "ip to network mapping. Can't be specified with networkIds parameter. Example: iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].networkid=204 - requests to use ip 10.10.10.11 in network id=204") private Map ipToNetworkList; @@ -250,9 +249,8 @@ public class DeployVMCmd extends BaseAsyncCreateCmd { Iterator iter = ipsCollection.iterator(); while (iter.hasNext()) { HashMap ips = (HashMap) iter.next(); - Long networkId = Long.valueOf(ips.get("networkid")); + Long networkId = Long.valueOf(_responseGenerator.getIdentiyId("networks", ips.get("networkid"))); String requestedIp = (String) ips.get("ip"); - ipToNetworkMap.put(networkId, requestedIp); } } diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index 16819d77cf1..af862fc1180 100755 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -397,6 +397,10 @@ public class ApiDispatcher { } clazz = clazz.getSuperclass(); } while (clazz != Object.class && clazz != null); - + } + + + public static Long getIdentiyId(String tableName, String token) { + return s_instance._identityDao.getIdentityId(tableName, token); } } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 2ff350b38a3..c4a0fb52022 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -3350,6 +3350,11 @@ public class ApiResponseHelper implements ResponseGenerator { response.setGateway(result.getGateway()); response.setObjectName("storagenetworkiprange"); return response; + } + + @Override + public Long getIdentiyId(String tableName, String token) { + return ApiDispatcher.getIdentiyId(tableName, token); } }