fixing a copying of a reference to a new instance
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/f764f503 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/f764f503 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/f764f503 Branch: refs/heads/master Commit: f764f50396f53c0e32c0e16ee282f02c9d6d571f Parents: 0520d06 Author: Nirmal Fernando <[email protected]> Authored: Sat Feb 8 00:15:27 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Sat Feb 8 00:15:27 2014 +0530 ---------------------------------------------------------------------- .../stratos/cloud/controller/iaases/OpenstackNovaIaas.java | 9 +++++++++ .../cloud/controller/impl/CloudControllerServiceImpl.java | 8 ++++++-- .../apache/stratos/cloud/controller/pojo/IaasProvider.java | 5 +---- 3 files changed, 16 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f764f503/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java index 8cba65a..b654696 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java @@ -240,6 +240,15 @@ public class OpenstackNovaIaas extends Iaas { while (node.getPrivateAddresses() == null) { CloudControllerUtil.sleep(1000); } + + if (node.getPublicAddresses() != null + && node.getPublicAddresses().iterator().hasNext()) { + log.info("A public IP (" + + node.getPublicAddresses().iterator().next() + + ") is already allocated to the instance [id] : " + + node.getId()); + return null; + } int retries = 0; while (retries < 5 http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f764f503/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java index 6dc59f6..906fbdc 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java @@ -526,8 +526,12 @@ public class CloudControllerServiceImpl implements CloudControllerService { Iaas iaas = iaasProvider.getIaas(); // allocate an IP address - manual IP assigning mode ip = iaas.associateAddress(node); - memberContext.setAllocatedIpAddress(ip); - log.info("Allocated an ip address: " + memberContext.toString()); + + if (ip != null) { + memberContext.setAllocatedIpAddress(ip); + log.info("Allocated an ip address: " + + memberContext.toString()); + } } // public ip http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f764f503/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java index 2a14ebe..5e6150b 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java @@ -80,14 +80,11 @@ public class IaasProvider implements Serializable{ this.type = anIaasProvider.getType(); this.name = anIaasProvider.getName(); this.className = anIaasProvider.getClassName(); - this.properties = anIaasProvider.getProperties(); + this.properties = new HashMap<String,String>(anIaasProvider.getProperties()); this.image = anIaasProvider.getImage(); this.provider = anIaasProvider.getProvider(); this.identity = anIaasProvider.getIdentity(); this.credential = anIaasProvider.getCredential(); - this.computeService = anIaasProvider.getComputeService(); - this.template = anIaasProvider.getTemplate(); - this.iaas = anIaasProvider.getIaas(); this.payload = anIaasProvider.getPayload(); }
