Updated Branches: refs/heads/master fe32cc521 -> 224f2007f
Adding cartrdige key per subscription to encrypt git repo password. Modifying cartridge agent script to remove git.sh generation. Adding SUBSCRIPTION_KEY column Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/b863a144 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/b863a144 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/b863a144 Branch: refs/heads/master Commit: b863a144b584e9a99ba66f4a71ca17a2d68feaf8 Parents: f02cc2b Author: Sajith Kariyawasam <[email protected]> Authored: Mon Nov 25 12:12:26 2013 +0530 Committer: Sajith Kariyawasam <[email protected]> Committed: Mon Nov 25 12:12:26 2013 +0530 ---------------------------------------------------------------------- components/org.apache.stratos.adc.mgt/pom.xml | 5 + .../adc/mgt/dao/CartridgeSubscriptionInfo.java | 9 ++ .../internal/ADCManagementServerComponent.java | 2 +- .../manager/CartridgeSubscriptionManager.java | 12 +- .../adc/mgt/payload/NonCarbonPayload.java | 5 +- .../apache/stratos/adc/mgt/payload/Payload.java | 4 +- .../stratos/adc/mgt/payload/PayloadArg.java | 9 ++ .../service/RepositoryInformationService.java | 6 +- .../mgt/subscription/CartridgeSubscription.java | 13 +- .../subscription/DataCartridgeSubscription.java | 2 +- .../MultiTenantCartridgeSubscription.java | 2 +- .../SingleTenantCartridgeSubscription.java | 2 +- .../mgt/utils/ApplicationManagementUtil.java | 50 +++++--- .../adc/mgt/utils/PersistenceManager.java | 13 +- .../adc/mgt/utils/RepoPasswordMgtUtil.java | 8 +- .../cartridge-agent/ec2/php/cartridge-agent.sh | 123 ------------------- .../resources/stratos_foundation.sql | 1 + 17 files changed, 102 insertions(+), 164 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/pom.xml ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/pom.xml b/components/org.apache.stratos.adc.mgt/pom.xml index 1e97f45..af4618d 100644 --- a/components/org.apache.stratos.adc.mgt/pom.xml +++ b/components/org.apache.stratos.adc.mgt/pom.xml @@ -96,6 +96,11 @@ <artifactId>junit</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.1</version> + </dependency> </dependencies> <build> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/CartridgeSubscriptionInfo.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/CartridgeSubscriptionInfo.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/CartridgeSubscriptionInfo.java index f915a4a..6addf8a 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/CartridgeSubscriptionInfo.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/CartridgeSubscriptionInfo.java @@ -43,6 +43,7 @@ public class CartridgeSubscriptionInfo { private String mappedDomain; private String mgtClusterDomain; private String mgtClusterSubDomain; + private String subscriptionKey; public int getSubscriptionId() { return subscriptionId; @@ -188,4 +189,12 @@ public class CartridgeSubscriptionInfo { this.mgtClusterSubDomain = mgtClusterSubDomain; } + public String getSubscriptionKey() { + return subscriptionKey; + } + + public void setSubscriptionKey(String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + } + } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/internal/ADCManagementServerComponent.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/internal/ADCManagementServerComponent.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/internal/ADCManagementServerComponent.java index 56e3507..97b5e05 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/internal/ADCManagementServerComponent.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/internal/ADCManagementServerComponent.java @@ -72,7 +72,7 @@ public class ADCManagementServerComponent { DataHolder.setEventPublisher(new EventPublisher(Constants.ARTIFACT_SYNCHRONIZATION_TOPIC)); //initialting the subscriber - TopicSubscriber subscriber = new TopicSubscriber("instance-status"); + TopicSubscriber subscriber = new TopicSubscriber(Constants.INSTANCE_STATUS_TOPIC); subscriber.setMessageListener(new InstanceStatusListener()); Thread tsubscriber = new Thread(subscriber); tsubscriber.start(); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java index 83fc9a2..bc4641b 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java @@ -20,6 +20,7 @@ package org.apache.stratos.adc.mgt.manager; import org.apache.axis2.AxisFault; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.adc.mgt.client.CloudControllerServiceClient; @@ -126,10 +127,12 @@ public class CartridgeSubscriptionManager { Subscriber subscriber = new Subscriber(tenantAdminUsername, tenantId, tenantDomain); CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo); + Repository repository = cartridgeSubscription.manageRepository(repositoryURL, repositoryUsername, repositoryPassword, isPrivateRepository, cartridgeAlias, cartridgeInfo, tenantDomain); - + cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoScalingPolicy, repository); + cartridgeSubscription.setSubscriptionKey(generateSubscriptionKey()); // TODO ---- fix properly log.info("Tenant [" + tenantId + "] with username [" + tenantAdminUsername + " subscribed to " + "] Cartridge Alias " + cartridgeAlias + ", Cartridge Type: " + cartridgeType + @@ -435,4 +438,11 @@ public class CartridgeSubscriptionManager { return cartridgeSubscription; } + + + private String generateSubscriptionKey() { + String key = RandomStringUtils.randomAlphanumeric(16); + log.info("Generated key : " + key); // TODO -- remove the log + return key; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java index b706459..e0df759 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java @@ -63,10 +63,7 @@ public class NonCarbonPayload extends Payload { if(payloadArg.getPolicy() != null) { payloadBuilder.append(getAutoscalingParams(payloadArg.getPolicy())); } - - // git repository specific - payloadBuilder.append(","); - payloadBuilder.append("CARTRIDGE_KEY=" + CartridgeConstants.DEFAULT_SECURITY_KEY); + } private String createPortMappingPayloadString(CartridgeInfo cartridgeInfo) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java index 85e3acb..724c32d 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java @@ -76,7 +76,9 @@ public abstract class Payload { payloadBuilder.append("CEP_PORT=" + System.getProperty(CartridgeConstants.CEP_PORT)); payloadBuilder.append(","); payloadBuilder.append("CLUSTER_ID=" + payloadArg.getServiceDomain()); - + payloadBuilder.append(","); + payloadBuilder.append("CARTRIDGE_KEY=" + payloadArg.getSubscriptionKey()); + if(payloadArg.getCartridgeInfo() != null) { payloadBuilder.append(","); payloadBuilder.append("SERVICE_NAME=" + payloadArg.getCartridgeInfo().getType()); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java index 98986f7..b7aed36 100755 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java @@ -43,6 +43,7 @@ public class PayloadArg { private String mgtServiceDomain; private String mgtServiceSubDomain; private String deployment; + private String subscriptionKey; //data cartridge specific private String dataCartridgeHost; @@ -182,4 +183,12 @@ public class PayloadArg { public void setServiceName(String serviceName) { this.serviceName = serviceName; } + public String getSubscriptionKey() { + return subscriptionKey; + } + public void setSubscriptionKey(String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + } + + } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/service/RepositoryInformationService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/service/RepositoryInformationService.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/service/RepositoryInformationService.java index 6534710..6ea6e04 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/service/RepositoryInformationService.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/service/RepositoryInformationService.java @@ -52,7 +52,7 @@ public class RepositoryInformationService { public RepositoryCredentials getRepositoryCredentials(int tenantId, String cartridgeType, String alias) throws Exception { - RepositoryCredentials repoCredentials = null; + /*RepositoryCredentials repoCredentials = null; try { repoCredentials = PersistenceManager.getRepoCredentials(tenantId,cartridgeType, alias); } catch (Exception e) { @@ -64,6 +64,8 @@ public class RepositoryInformationService { log.error("Repository credentials are not successfully retrieved " + "for tenant [" + tenantId + "] and cartridge [" + cartridgeType + "] "); } - return repoCredentials; + return repoCredentials;*/ + log.error("This method is no longer supported"); + throw new Exception("This method is no longer supported"); } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java index afd3791..7ab5db2 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java @@ -60,6 +60,7 @@ public abstract class CartridgeSubscription { private String subscriptionStatus; private String mappedDomain; private List<String> connectedSubscriptionAliases; + private String subscriptionKey; /** * Constructor @@ -164,7 +165,7 @@ public abstract class CartridgeSubscription { payloadArg.setTenantDomain(getSubscriber().getTenantDomain()); payloadArg.setCartridgeAlias(getAlias()); payloadArg.setServiceName(getCartridgeInfo().getType()); - + payloadArg.setSubscriptionKey(subscriptionKey); return payloadArg; } @@ -413,4 +414,14 @@ public abstract class CartridgeSubscription { public void setSubscriptionStatus(String subscriptionStatus) { this.subscriptionStatus = subscriptionStatus; } + + public String getSubscriptionKey() { + return subscriptionKey; + } + + public void setSubscriptionKey(String subscriptionKey) { + this.subscriptionKey = subscriptionKey; + } + + } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java index fcc7700..f87f0d3 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java @@ -97,7 +97,7 @@ public class DataCartridgeSubscription extends SingleTenantCartridgeSubscription return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(), getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(), getRepository(), getHostName(), getClusterDomain(), getClusterSubDomain(), - getMgtClusterDomain(), getMgtClusterSubDomain(), dataCartridge, "PENDING"); + getMgtClusterDomain(), getMgtClusterSubDomain(), dataCartridge, "PENDING",getSubscriptionKey()); } public String getHost() { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java index 4e7796d..f6a4b59 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java @@ -122,7 +122,7 @@ public class MultiTenantCartridgeSubscription extends CartridgeSubscription { return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(), getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(), getRepository(), getHostName(), getClusterDomain(), getClusterSubDomain(), - getMgtClusterDomain(), getMgtClusterSubDomain(), null, "PENDING"); + getMgtClusterDomain(), getMgtClusterSubDomain(), null, "PENDING",getSubscriptionKey()); } @Override http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java index 4ed9bc5..1a551a0 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java @@ -73,7 +73,7 @@ public class SingleTenantCartridgeSubscription extends CartridgeSubscription { return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(), getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(), getRepository(), getHostName(), getClusterDomain(), getClusterSubDomain(), - getMgtClusterDomain(), getMgtClusterSubDomain(), null, "PENDING"); + getMgtClusterDomain(), getMgtClusterSubDomain(), null, "PENDING",getSubscriptionKey()); } @Override http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/ApplicationManagementUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/ApplicationManagementUtil.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/ApplicationManagementUtil.java index e502b2f..0450def 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/ApplicationManagementUtil.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/ApplicationManagementUtil.java @@ -1,4 +1,3 @@ -package org.apache.stratos.adc.mgt.utils; /* * * Licensed to the Apache Software Foundation (ASF) under one @@ -20,13 +19,29 @@ package org.apache.stratos.adc.mgt.utils; * */ +package org.apache.stratos.adc.mgt.utils; + + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.rmi.RemoteException; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.regex.Pattern; -import com.google.gson.Gson; import org.apache.axis2.clustering.ClusteringAgent; import org.apache.axis2.clustering.Member; import org.apache.axis2.clustering.management.GroupManagementAgent; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.engine.AxisConfiguration; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.adc.mgt.client.CloudControllerServiceClient; @@ -38,12 +53,19 @@ import org.apache.stratos.adc.mgt.dto.Cartridge; import org.apache.stratos.adc.mgt.dto.Policy; import org.apache.stratos.adc.mgt.dto.RepositoryInformation; import org.apache.stratos.adc.mgt.dto.SubscriptionInfo; -import org.apache.stratos.adc.mgt.exception.*; +import org.apache.stratos.adc.mgt.exception.ADCException; +import org.apache.stratos.adc.mgt.exception.DuplicateCartridgeAliasException; +import org.apache.stratos.adc.mgt.exception.InvalidCartridgeAliasException; +import org.apache.stratos.adc.mgt.exception.InvalidRepositoryException; +import org.apache.stratos.adc.mgt.exception.NotSubscribedException; +import org.apache.stratos.adc.mgt.exception.RepositoryCredentialsRequiredException; +import org.apache.stratos.adc.mgt.exception.RepositoryRequiredException; +import org.apache.stratos.adc.mgt.exception.RepositoryTransportException; +import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException; import org.apache.stratos.adc.mgt.internal.DataHolder; import org.apache.stratos.adc.mgt.repository.Repository; import org.apache.stratos.adc.mgt.service.RepositoryInfoBean; import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService; -import org.apache.stratos.adc.topology.mgt.serviceobjects.DomainContext; import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException; import org.apache.stratos.cloud.controller.util.xsd.CartridgeInfo; import org.apache.stratos.cloud.controller.util.xsd.Properties; @@ -57,21 +79,8 @@ import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.storage.file.FileRepository; import org.eclipse.jgit.transport.CredentialsProvider; import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; -import org.wso2.carbon.utils.CarbonUtils; import org.wso2.carbon.utils.multitenancy.MultitenantUtils; -import javax.activation.DataHandler; -import javax.activation.FileDataSource; -import java.io.*; -import java.net.MalformedURLException; -import java.net.URL; -import java.rmi.RemoteException; -import java.text.DecimalFormat; -import java.util.*; -import java.util.regex.Pattern; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - /** * This class contains utility methods used by ApplicationManagementService. */ @@ -100,7 +109,8 @@ public class ApplicationManagementUtil { String mgtClusterDomain, String mgtClusterSubDomain, DataCartridge dataCartridge, - String state) { + String state, + String subscribeKey) { CartridgeSubscriptionInfo cartridgeSubscriptionInfo = new CartridgeSubscriptionInfo(); cartridgeSubscriptionInfo.setCartridge(cartridgeType); @@ -120,11 +130,13 @@ public class ApplicationManagementUtil { cartridgeSubscriptionInfo.setBaseDirectory(cartridgeInfo.getBaseDir()); //cartridgeSubscriptionInfo.setState("PENDING"); cartridgeSubscriptionInfo.setState(state); + cartridgeSubscriptionInfo.setSubscriptionKey(subscribeKey); return cartridgeSubscriptionInfo; } - private static List<PortMapping> createPortMappings(CartridgeInfo cartridgeInfo) { + + private static List<PortMapping> createPortMappings(CartridgeInfo cartridgeInfo) { List<PortMapping> portMappings = new ArrayList<PortMapping>(); if (cartridgeInfo.getPortMappings() != null) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java index ae3170d..1d7492c 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/PersistenceManager.java @@ -262,7 +262,7 @@ public class PersistenceManager { repoCredentials = new RepositoryCredentials(); repoCredentials.setUrl(resultSet.getString("REPO_NAME")); repoCredentials.setUserName(resultSet.getString("REPO_USER_NAME")); - repoCredentials.setPassword(RepoPasswordMgtUtil.decryptPassword(resultSet.getString("REPO_USER_PASSWORD"))); + repoCredentials.setPassword(RepoPasswordMgtUtil.decryptPassword(resultSet.getString("REPO_USER_PASSWORD"),null)); // TODO this is no longer supported } } catch (Exception s) { String msg = "Error while sql connection :" + s.getMessage(); @@ -323,7 +323,7 @@ public class PersistenceManager { // persist repo if (cartridgeSubscriptionInfo.getRepository() != null) { String encryptedRepoUserPassword = RepoPasswordMgtUtil.encryptPassword(cartridgeSubscriptionInfo.getRepository() - .getPassword()); + .getPassword(),cartridgeSubscriptionInfo.getSubscriptionKey()); String insertRepo = "INSERT INTO REPOSITORY (REPO_NAME,STATE,REPO_USER_NAME,REPO_USER_PASSWORD)" + " VALUES (?,?,?,?)"; @@ -363,10 +363,11 @@ public class PersistenceManager { StratosDBUtils.closeResultSet(res); } + // TODO - Mapped domain is not used. Is it not used anymore? String insertSubscription = "INSERT INTO CARTRIDGE_SUBSCRIPTION (TENANT_ID, CARTRIDGE, PROVIDER," - + "HOSTNAME, POLICY, CLUSTER_DOMAIN, " + "CLUSTER_SUBDOMAIN, MGT_DOMAIN, MGT_SUBDOMAIN, STATE, " - + "ALIAS, TENANT_DOMAIN, BASE_DIR, REPO_ID, DATA_CARTRIDGE_ID)" - + " VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + + "HOSTNAME, POLICY, CLUSTER_DOMAIN, CLUSTER_SUBDOMAIN, MGT_DOMAIN, MGT_SUBDOMAIN, STATE, " + + "ALIAS, TENANT_DOMAIN, BASE_DIR, REPO_ID, DATA_CARTRIDGE_ID, SUBSCRIPTION_KEY)" + + " VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; insertSubscriptionStmt = con.prepareStatement(insertSubscription, Statement.RETURN_GENERATED_KEYS); insertSubscriptionStmt.setInt(1, cartridgeSubscriptionInfo.getTenantId()); @@ -384,6 +385,7 @@ public class PersistenceManager { insertSubscriptionStmt.setString(13, cartridgeSubscriptionInfo.getBaseDirectory()); insertSubscriptionStmt.setInt(14, repoId); insertSubscriptionStmt.setInt(15, dataCartridgeId); + insertSubscriptionStmt.setString(16, cartridgeSubscriptionInfo.getSubscriptionKey()); if (log.isDebugEnabled()) { log.debug("Executing insert: " + insertSubscription); } @@ -536,6 +538,7 @@ public class PersistenceManager { cartridgeSubscriptionInfo.setBaseDirectory(resultSet.getString("BASE_DIR")); cartridgeSubscriptionInfo.setSubscriptionId(resultSet.getInt("SUBSCRIPTION_ID")); cartridgeSubscriptionInfo.setMappedDomain(resultSet.getString("MAPPED_DOMAIN")); + cartridgeSubscriptionInfo.setSubscriptionKey(resultSet.getString("SUBSCRIPTION_KEY")); } private static List<PortMapping> getPortMappings(int subscriptionId) throws Exception { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/RepoPasswordMgtUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/RepoPasswordMgtUtil.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/RepoPasswordMgtUtil.java index e5c02ec..533ceb2 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/RepoPasswordMgtUtil.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/utils/RepoPasswordMgtUtil.java @@ -67,9 +67,9 @@ public class RepoPasswordMgtUtil { return securityKey; } - public static String encryptPassword(String repoUserPassword) { + public static String encryptPassword(String repoUserPassword, String secKey) { String encryptPassword = ""; - String secret = getSecurityKey(); // secret key length must be 16 + String secret = /*getSecurityKey()*/secKey; // secret key length must be 16 SecretKey key; Cipher cipher; Base64 coder; @@ -86,10 +86,10 @@ public class RepoPasswordMgtUtil { return encryptPassword; } - public static String decryptPassword(String repoUserPassword) { + public static String decryptPassword(String repoUserPassword, String secKey) { String decryptPassword = ""; - String secret = getSecurityKey(); // secret key length must be 16 + String secret = /*getSecurityKey()*/secKey; // secret key length must be 16 SecretKey key; Cipher cipher; Base64 coder; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/products/cartridge-agent/modules/cartridge-agent/ec2/php/cartridge-agent.sh ---------------------------------------------------------------------- diff --git a/products/cartridge-agent/modules/cartridge-agent/ec2/php/cartridge-agent.sh b/products/cartridge-agent/modules/cartridge-agent/ec2/php/cartridge-agent.sh index d9e56b6..04e983a 100755 --- a/products/cartridge-agent/modules/cartridge-agent/ec2/php/cartridge-agent.sh +++ b/products/cartridge-agent/modules/cartridge-agent/ec2/php/cartridge-agent.sh @@ -104,129 +104,6 @@ popd # ----------------------------------------------------- -# Generate git.sh -# ----------------------------------------------------- -echo "Creating repoinfo request " | tee -a $LOG -echo "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://org.apache.axis2/xsd\"> - <soapenv:Header/> - <soapenv:Body> - <xsd:getRepositoryCredentials> - <xsd:tenantId>${TENANT_ID}</xsd:tenantId> - <xsd:cartridgeType>${SERVICE_NAME}</xsd:cartridgeType> - <xsd:alias>${CARTRIDGE_ALIAS}</xsd:alias> - </xsd:getRepositoryCredentials> - </soapenv:Body> -</soapenv:Envelope>" > ${instance_path}/repoinforequest.xml - -echo "Repoinfo request created " | tee -a $LOG - - -echo "Generating git.sh..." | tee -a $LOG -# If repo is available do a git pull, else clone -echo "#!/bin/bash -set -e -GIT_SH_LOG=/var/log/apache-stratos/git-sh.log -if [ -d \"${APP_PATH}/.git\" ]; then - cd ${APP_PATH} - echo \"Invoking repo info service...\" | tee -a \$GIT_SH_LOG - username=\$1 - password=\$2 - repo=\$3 - echo \"username=\$username repo=\${repo}\" | tee -a \$GIT_SH_LOG - echo \"Preparing .netrc...\" | tee -a \$GIT_SH_LOG - url=\`echo \$repo |sed 's/http.*\/\///g' |sed 's/\:.*//g' |sed 's/\/.*//g'\` - echo \"machine \${url} login \${username} password \${password}\" > ~/.netrc - sudo echo \"machine \${url} login \${username} password \${password}\" > /root/.netrc - chmod 600 ~/.netrc - sudo chmod 600 /root/.netrc - echo \"Setting git http.sslVerify false\" | tee -a \$GIT_SH_LOG - git config --global --bool --add http.sslVerify false - echo \"Running git pull...\" | tee -a \$GIT_SH_LOG - sudo git pull - if [ -f ~/.netrc ]; then - echo \"Removing ~/.netrc...\" | tee -a \$GIT_SH_LOG - rm ~/.netrc - fi - if [ -f /root/.netrc ]; then - echo \"Removing /root/.netrc...\" | tee -a \$GIT_SH_LOG - sudo rm /root/.netrc - fi - - echo \"Changing owner of application path/www to www-data:www-data...\" | tee -a \$GIT_SH_LOG - sudo chown -R www-data:www-data ${APP_PATH}/www - if [ -f \"${APP_PATH}/sql/alter.sql\" ] && [ -n \"${MYSQL_HOST}\" ] && [ -n \"${MYSQL_USER}\" ] && [ -n \"${MYSQL_PASSWORD}\" ]; then - mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} < ${APP_PATH}/sql/alter.sql - fi -else - echo \"Removing index.html from application path...\" | tee -a \$GIT_SH_LOG - sudo rm -f ${APP_PATH}/index.html - echo \"Invoking repo info service...\" | tee -a \$GIT_SH_LOG - curl -X POST -H \"Content-Type: text/xml\" -H \"SOAPAction: urn:getRepositoryCredentials\" -d @${instance_path}/repoinforequest.xml --silent \"${REPO_INFO_EPR}\" --insecure > /tmp/git.xml - echo \"Processing repo info service response...\" | tee -a \$GIT_SH_LOG - sed '1,5d' /tmp/git.xml > /tmp/git1.xml - sed '2d' /tmp/git1.xml > /tmp/git.xml - username=\`xml_grep 'ax29:userName' /tmp/git.xml --text_only\` - password=\`xml_grep 'ax29:password' /tmp/git.xml --text_only\` - repo=\`xml_grep 'ax29:url' /tmp/git.xml --text_only\` - echo \"username=\$username repo=\${repo}\" | tee -a \$GIT_SH_LOG - rm /tmp/git1.xml - rm /tmp/git.xml - echo \"Preparing .netrc...\" | tee -a \$GIT_SH_LOG - url=\`echo \$repo |sed 's/http.*\/\///g' |sed 's/\:.*//g' |sed 's/\/.*//g'\` - echo \"machine \${url} login \${username} password \${password}\" > ~/.netrc - sudo echo \"machine \${url} login \${username} password \${password}\" > /root/.netrc - chmod 600 ~/.netrc - sudo chmod 600 /root/.netrc - echo \"Setting git http.sslVerify false\" | tee -a \$GIT_SH_LOG - git config --global --bool --add http.sslVerify false - echo \"Creating temporary git folder...\" | tee -a \$GIT_SH_LOG - sudo mkdir ${instance_path}/temp_git - echo \"Running git clone...\" | tee -a \$GIT_SH_LOG - git clone \${repo} ${instance_path}/temp_git - echo \"Moving content to /var/www\" | tee -a \$GIT_SH_LOG - sudo mv ${instance_path}/temp_git/* /var/www - sudo mv ${instance_path}/temp_git/.git /var/www - sudo rm -rf ${instance_path}/temp_git - if [ -f ~/.netrc ]; then - echo \"Removing ~/.netrc...\" | tee -a \$GIT_SH_LOG - rm ~/.netrc - fi - if [ -f /root/.netrc ]; then - echo \"Removing /root/.netrc...\" | tee -a \$GIT_SH_LOG - sudo rm /root/.netrc - fi - - if [ -n \"${MYSQL_HOST}\" ] && [ -n \"${MYSQL_USER}\" ] && [ -n \"${MYSQL_PASSWORD}\" ]; then - if [ -f \"${APP_PATH}/sql/init.sql\" ]; then - mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} < ${APP_PATH}/sql/init.sql - fi - echo \"Generating .htaccess...\" | tee -a \$GIT_SH_LOG - echo \"SetEnv STRATOS_MYSQL_USER ${MYSQL_USER} - SetEnv STRATOS_MYSQL_HOST ${MYSQL_HOST} - SetEnv STRATOS_MYSQL_PASSWORD ${MYSQL_PASSWORD} - \" > /tmp/.htaccess - echo \"Copying .htaccess to application path...\" | tee -a \$GIT_SH_LOG - sudo mv /tmp/.htaccess ${APP_PATH}/ - fi - echo \"Changing owner of application path/www to www-data:www-data...\" | tee -a \$GIT_SH_LOG - sudo chown -R www-data:www-data ${APP_PATH}/www - -fi -echo \"git.sh done\" | tee -a \$LOG" > ${instance_path}/git.sh -echo "git.sh generated" | tee -a $LOG -chmod 755 ${instance_path}/git.sh - - -# ----------------------------------------------------- -# Git clone -# ----------------------------------------------------- -pushd ${instance_path} -echo "Running git.sh..." | tee -a $LOG -sudo sh ${instance_path}/git.sh -echo "Git clone done" | tee -a $LOG - - -# ----------------------------------------------------- # Publish member-activated-event # ----------------------------------------------------- while true http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b863a144/tools/stratos-installer/resources/stratos_foundation.sql ---------------------------------------------------------------------- diff --git a/tools/stratos-installer/resources/stratos_foundation.sql b/tools/stratos-installer/resources/stratos_foundation.sql index ce32a3b..7ca346d 100644 --- a/tools/stratos-installer/resources/stratos_foundation.sql +++ b/tools/stratos-installer/resources/stratos_foundation.sql @@ -80,6 +80,7 @@ CREATE TABLE `stratos_foundation`.`CARTRIDGE_SUBSCRIPTION` ( `REPO_ID` int(11) DEFAULT NULL, `DATA_CARTRIDGE_ID` int(11) DEFAULT NULL, `MAPPED_DOMAIN` varchar(255), + `SUBSCRIPTION_KEY` varchar(255) NOT NULL, PRIMARY KEY (`SUBSCRIPTION_ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
