From 1e8856efa0b14ab35486fc4bc33b38c90fdd5ab0 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 Conflicts: server/src/com/cloud/api/ApiResponseHelper.java Conflicts: server/src/com/cloud/api/ApiResponseHelper.java --- 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 | 7 ++++++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/api/src/com/cloud/api/ResponseGenerator.java b/api/src/com/cloud/api/ResponseGenerator.java index e9880784175..9bf0a1cc1e7 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 5c684f86186..85914cb9289 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; @@ -256,9 +255,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 547af3ded3c..7971dae5f10 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 ccb5767b9ce..3d3e72c52bd 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -3355,7 +3355,12 @@ public class ApiResponseHelper implements ResponseGenerator { response.setNetmask(result.getNetmask()); response.setGateway(result.getGateway()); response.setObjectName("storagenetworkiprange"); - return response; + return response; + } + + @Override + public Long getIdentiyId(String tableName, String token) { + return ApiDispatcher.getIdentiyId(tableName, token); } }