Updated Branches: refs/heads/master 859d6d716 -> 6d2513384
creating a payload.zip file out of launch-params and the files inside user-data directory Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/2218b2ce Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/2218b2ce Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/2218b2ce Branch: refs/heads/master Commit: 2218b2cedf7ec3f0278081fa8744207bc50207a5 Parents: c6bfb6b Author: rekathiru <[email protected]> Authored: Mon Oct 28 10:24:43 2013 +0530 Committer: rekathiru <[email protected]> Committed: Mon Oct 28 10:24:43 2013 +0530 ---------------------------------------------------------------------- .../cloud/controller/iaases/AWSEC2Iaas.java | 17 ++++------ .../controller/iaases/OpenstackNovaIaas.java | 19 +++++------ .../impl/CloudControllerServiceImpl.java | 30 ++--------------- .../util/CloudControllerConstants.java | 7 ++-- .../cloud/controller/util/ServiceContext.java | 35 +++++++++++++------- 5 files changed, 43 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2218b2ce/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java index ff12fe8..c944a65 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java @@ -18,10 +18,9 @@ */ package org.apache.stratos.cloud.controller.iaases; -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; - +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.exception.CloudControllerException; @@ -42,11 +41,9 @@ import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.options.TemplateOptions; import org.jclouds.ec2.domain.KeyPair; import org.jclouds.ec2.domain.PublicIpInstanceIdPair; -import org.wso2.carbon.utils.CarbonUtils; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.Collections; public class AWSEC2Iaas extends Iaas { @@ -132,7 +129,7 @@ public class AWSEC2Iaas extends Iaas { } - if (iaas.getProperty(CloudControllerConstants.PAYLOAD_FOLDER) != null) { + /*if (iaas.getProperty(CloudControllerConstants.PAYLOAD_FOLDER) != null) { template.getOptions() .as(AWSEC2TemplateOptions.class) .userData( @@ -140,7 +137,7 @@ public class AWSEC2Iaas extends Iaas { .getCarbonHome() + File.separator + iaas.getProperty(CloudControllerConstants.PAYLOAD_FOLDER))); - } + }*/ if (iaas.getProperty("keyPair") != null) { template.getOptions().as(AWSEC2TemplateOptions.class) http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2218b2ce/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 1af9e20..cffae13 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 @@ -18,10 +18,10 @@ */ package org.apache.stratos.cloud.controller.iaases; -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; - +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.exception.CloudControllerException; @@ -43,12 +43,9 @@ import org.jclouds.openstack.nova.v2_0.domain.FloatingIP; import org.jclouds.openstack.nova.v2_0.domain.KeyPair; import org.jclouds.openstack.nova.v2_0.extensions.FloatingIPApi; import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi; -import org.wso2.carbon.utils.CarbonUtils; -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.Collections; public class OpenstackNovaIaas extends Iaas { @@ -123,7 +120,7 @@ public class OpenstackNovaIaas extends Iaas { CloudControllerConstants.ENTRY_SEPARATOR)); } - if (iaas.getProperty(CloudControllerConstants.PAYLOAD_FOLDER) != null) { + /*if (iaas.getProperty(CloudControllerConstants.PAYLOAD_FOLDER) != null) { template.getOptions() .as(NovaTemplateOptions.class) .userData( @@ -132,7 +129,7 @@ public class OpenstackNovaIaas extends Iaas { + File.separator + iaas.getProperty(CloudControllerConstants.PAYLOAD_FOLDER))); } - +*/ if (iaas.getProperty("keyPair") != null) { template.getOptions().as(NovaTemplateOptions.class) .keyPairName(iaas.getProperty("keyPair")); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2218b2ce/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 bc58a5c..be3bb79 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 @@ -1003,35 +1003,10 @@ public class CloudControllerServiceImpl implements CloudControllerService { log.error(msg); throw new UnregisteredCartridgeException(msg); } - -/* - - // write payload file - try { - String uniqueName = clusterId + ".txt"; - FileUtils.forceMkdir(new File( - CloudControllerConstants.PAYLOAD_DIR)); - File payloadFile = new File( - CloudControllerConstants.PAYLOAD_DIR + uniqueName); - FileUtils.writeByteArrayToFile(payloadFile, payload); - newServiceCtxt.setPayloadFile(payloadFile.getPath()); - - } catch (IOException e) { - String msg = "Failed while persisting the payload of clusterId : " - + clusterId; - log.error(msg, e); - throw new CloudControllerException(msg, e); - } - - } else { - log.debug("Payload is null or empty for :\n " - + newServiceCtxt); - }*/ - // persist String uniqueName = clusterId + "-" + UUID.randomUUID() + ".xml"; - newServiceCtxt.setPayloadFile("/tmp/" + newServiceCtxt.getClusterId() + ".zip"); + newServiceCtxt.setPayloadFile("/tmp/" + CloudControllerConstants.PAYLOAD_NAME + ".zip"); newServiceCtxt.generatePayload(); // notify consumer by adding services TopologyBuilder.handleClusterCreated(newServiceCtxt); @@ -1039,7 +1014,8 @@ public class CloudControllerServiceImpl implements CloudControllerService { FileUtils.writeStringToFile(new File(CloudControllerConstants.SERVICES_DIR + uniqueName), newServiceCtxt.toXml()); } catch (IOException e) { - //TODO + log.error("couldn't write the service definition", e); + throw new CloudControllerException("couldn't write the service definition", e); } log.info("Service successfully registered! Domain - " + clusterId + ", Cartridge type - " + cartridgeType); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2218b2ce/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java index f5ebd87..5dd80b0 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java @@ -179,7 +179,7 @@ public final class CloudControllerConstants { /** * Payload related constants */ - public static final String PAYLOAD_FOLDER = "payload"; + public static final String PAYLOAD_NAME = "payload"; public static final String ENTRY_SEPARATOR = ","; /** @@ -200,10 +200,7 @@ public final class CloudControllerConstants { /** * Directories */ - public static final String PAYLOAD_DIR = CarbonUtils.getCarbonHome() + File.separator + - "resources" + File.separator + PAYLOAD_FOLDER + - File.separator; - public static final String SERVICES_DIR = CarbonUtils.getCarbonRepository() + public static final String SERVICES_DIR = CarbonUtils.getCarbonRepository() + File.separator + "services"+File.separator; /** http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/2218b2ce/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ServiceContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ServiceContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ServiceContext.java index f37a35a..b60a2c1 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ServiceContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/ServiceContext.java @@ -24,8 +24,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.stratos.cloud.controller.exception.CloudControllerException; import org.wso2.carbon.utils.CarbonUtils; -import javax.activation.DataHandler; -import javax.activation.FileDataSource; import java.io.*; import java.util.HashMap; import java.util.Iterator; @@ -45,7 +43,7 @@ public class ServiceContext implements Serializable{ private String clusterId; private String tenantRange; private String hostName; - private String payloadFilePath; + private String payloadFilePath = "/tmp/" + CloudControllerConstants.PAYLOAD_NAME + ".zip"; private String cartridgeType; private Cartridge cartridge; private StringBuilder payload; @@ -264,18 +262,31 @@ public class ServiceContext implements Serializable{ log.error(e.getMessage()); throw new CloudControllerException(e.getMessage(), e); } - - FileDataSource payloadDataSource; - DataHandler payloadDataHandler; - byte [] payloadData; + byte [] payloadData = null; + File file = null; + FileInputStream fileInputStream = null; try { - payloadDataSource = new FileDataSource(new File(payloadFilePath)); - payloadDataHandler = new DataHandler(payloadDataSource); - payloadData = (byte[]) payloadDataHandler.getContent(); - } catch (Exception e) { - log.error(e.getMessage()); + file = new File(payloadFilePath); + payloadData = new byte[(int)file.length()]; + fileInputStream = new FileInputStream(file); + try { + fileInputStream.read(payloadData); + } catch (IOException e) { + log.error(e.getMessage()); + throw new CloudControllerException(e.getMessage(), e); + } + } catch (FileNotFoundException e) { + log.error(e.getMessage()); + throw new CloudControllerException(e.getMessage(), e); + } + try { + fileInputStream.close(); + file.delete(); + } catch (IOException e) { + log.error(e.getMessage()); throw new CloudControllerException(e.getMessage(), e); } + return payloadData; }
