DeployVmCmd: Remove usage of IdentityDao, use Network to get by id or uuid

Signed-off-by: Rohit Yadav <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/35544f26
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/35544f26
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/35544f26

Branch: refs/heads/master
Commit: 35544f26e57ec6eaffbc6e87e3536fefbc0dbec0
Parents: 8cdb40a
Author: Rohit Yadav <[email protected]>
Authored: Fri Jan 11 15:29:15 2013 -0800
Committer: Rohit Yadav <[email protected]>
Committed: Fri Jan 11 18:44:20 2013 -0800

----------------------------------------------------------------------
 .../api/command/user/vm/DeployVMCmd.java           |   17 +++++++++++---
 1 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/35544f26/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java 
b/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
index 28bb80f..e675c83 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java
@@ -147,10 +147,9 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
     private List<String> securityGroupNameList;
 
     @ACL(checkKeyAccess=true)
-    @Parameter(name = ApiConstants.IP_NETWORK_LIST, type = CommandType.MAP, 
entityType={Network.class,IpAddress.class},
+    @Parameter(name = ApiConstants.IP_NETWORK_LIST, type = CommandType.MAP, 
entityType={Network.class, IpAddress.class},
             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")
+                    " Example: 
iptonetworklist[0].ip=10.10.10.11&iptonetworklist[0].networkid=uuid - requests 
to use ip 10.10.10.11 in network id=uuid")
     private Map ipToNetworkList;
 
     @Parameter(name=ApiConstants.IP_ADDRESS, type=CommandType.STRING, 
description="the ip address for default vm's network")
@@ -284,7 +283,17 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
             Iterator iter = ipsCollection.iterator();
             while (iter.hasNext()) {
                 HashMap<String, String> ips = (HashMap<String, String>) 
iter.next();
-                Long networkId = 
Long.valueOf(_responseGenerator.getIdentiyId("networks", ips.get("networkid")));
+                Long networkId;
+                Network network = 
_networkService.getNetwork(ips.get("networkid"));
+                if (network != null) {
+                    networkId = network.getId();
+                } else {
+                    try {
+                        networkId = Long.parseLong(ips.get("networkid"));
+                    } catch(NumberFormatException e) {
+                        throw new InvalidParameterValueException("Unable to 
translate and find entity with networkId: " + ips.get("networkid"));
+                    }
+                }
                 String requestedIp = (String) ips.get("ip");
                 ipToNetworkMap.put(networkId, requestedIp);
             }

Reply via email to