You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by sa...@apache.org on 2014/02/11 20:19:21 UTC
[4/5] git commit: Further code and config clean up
Further code and config clean up
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/0de42717
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0de42717
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0de42717
Branch: refs/heads/master
Commit: 0de427179174987d0ef6a6bb6caaca206ca5c1d2
Parents: 9af8ef7
Author: Sajith Kariyawasam <sa...@wso2.com>
Authored: Wed Feb 12 00:30:24 2014 +0530
Committer: Sajith Kariyawasam <sa...@wso2.com>
Committed: Wed Feb 12 00:30:24 2014 +0530
----------------------------------------------------------------------
.../DataCartridgeSubscriptionConnector.java | 22 +-
.../manager/CartridgeSubscriptionManager.java | 15 +
.../service/ApplicationManagementService.java | 677 -------------------
.../manager/utils/CartridgeConstants.java | 1 -
.../rest/endpoint/services/ServiceUtils.java | 49 +-
.../src/main/conf/cartridge-config.properties | 14 -
6 files changed, 62 insertions(+), 716 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
index 4764f49..b376da4 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/connector/data/DataCartridgeSubscriptionConnector.java
@@ -19,17 +19,13 @@
package org.apache.stratos.manager.connector.data;
+import java.util.Properties;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.manager.connector.CartridgeSubscriptionConnector;
-import org.apache.stratos.manager.dto.Cartridge;
import org.apache.stratos.manager.exception.ADCException;
-import org.apache.stratos.manager.exception.NotSubscribedException;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.manager.utils.CartridgeConstants;
-
-import java.util.Properties;
public class DataCartridgeSubscriptionConnector extends CartridgeSubscriptionConnector {
@@ -45,10 +41,10 @@ public class DataCartridgeSubscriptionConnector extends CartridgeSubscriptionCon
Properties connectionProperties = new Properties();
- int maxAttempts = Integer.parseInt(System.getProperty(CartridgeConstants.MAX_ATTEMPTS, "50"));
- int attempts = 0;
- while (attempts < maxAttempts) {
- attempts++;
+ // int maxAttempts = Integer.parseInt(System.getProperty(CartridgeConstants.MAX_ATTEMPTS, "50"));
+ //int attempts = 0;
+ // while (attempts < maxAttempts) {
+ //attempts++;
/*Cartridge cartridge = null;
try {
cartridge = ApplicationManagementUtil.getCartridgeInfo(
@@ -74,12 +70,12 @@ public class DataCartridgeSubscriptionConnector extends CartridgeSubscriptionCon
}*/
//}
- if(attempts == maxAttempts) {
+ /*if(attempts == maxAttempts) {
String errorMsg = "Failed to connect " + cartridgeSubscription + " and " + connectingCartridgeSubscription;
log.error(errorMsg);
throw new ADCException(errorMsg);
- }
- }
+ }*/
+ //}
return connectionProperties;
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index 4daa668..1b63890 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@ -288,4 +288,19 @@ public class CartridgeSubscriptionManager {
throw new NotSubscribedException(errorMsg, alias);
}
}
+
+
+ /**
+ *
+ * Returns a collection of Cartridge subscriptions for a particular tenant and a cartridge type
+ *
+ * @param tenantId
+ * @param cartridgeType
+ * @return
+ */
+ public Collection<CartridgeSubscription> isCartridgeSubscribed(int tenantId, String cartridgeType) {
+
+ DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager();
+ return dataInsertionAndRetrievalManager.getCartridgeSubscriptions(tenantId, cartridgeType);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
deleted file mode 100644
index 503bcec..0000000
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
+++ /dev/null
@@ -1,677 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.stratos.manager.service;
-
-import org.apache.axis2.AxisFault;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-import org.apache.stratos.manager.client.CloudControllerServiceClient;
-import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.manager.dto.*;
-import org.apache.stratos.manager.exception.*;
-import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
-import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.manager.utils.CartridgeConstants;
-import org.apache.stratos.manager.utils.PersistenceManager;
-import org.apache.stratos.manager.utils.PolicyHolder;
-import org.wso2.carbon.context.PrivilegedCarbonContext;
-import org.wso2.carbon.core.AbstractAdmin;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-import org.wso2.carbon.utils.DataPaginator;
-import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Pattern;
-
-/**
- *
- *
- *
- */
-public class ApplicationManagementService extends AbstractAdmin {
-
- private static final Log log = LogFactory.getLog(ApplicationManagementService.class);
- //private RegistryManager registryManager = new RegistryManager();
- private CartridgeSubscriptionManager cartridgeSubsciptionManager = new CartridgeSubscriptionManager();
-
- /*
- * Instantiate RepoNotificationService. Since this service is in the same
- * component (org.apache.stratos.manager), a new object is created.
- * TODO: Is there a better way to get this service?
- */
- private RepoNotificationService repoNotificationService = new RepoNotificationService();
-
- /**
- * Get Available Cartridges
- *
- * @return Available Cartridges
- */
- public Cartridge[] getAvailableCartridges(boolean multiTenant) throws ADCException {
- List<Cartridge> cartridges = getAvailableCartridges(null, multiTenant);
- // Following is very important when working with axis2
- return cartridges.isEmpty() ? new Cartridge[0] : cartridges.toArray(new Cartridge[cartridges.size()]);
- }
-
- /**
- * Get Subscribed Cartridges
- *
- * @return Subscribed Cartridges
- */
- public Cartridge[] getSubscribedCartridges() throws ADCException {
- checkSuperTenant();
- List<Cartridge> cartridgeList = getSubscribedCartridges(null);
- // Following is very important when working with axis2
- return cartridgeList.isEmpty() ? new Cartridge[0] : cartridgeList.toArray(new Cartridge[cartridgeList.size()]);
- }
-
- /**
- * Get available cartridges
- */
- public CartridgeWrapper getPagedAvailableCartridges(String cartridgeSearchString, int pageNumber, boolean multiTenant)
- throws ADCException {
- checkSuperTenant();
- CartridgeWrapper cartridgeWrapper = new CartridgeWrapper();
- List<Cartridge> cartridges = getAvailableCartridges(cartridgeSearchString, multiTenant);
-
- // TODO Improve pagination
- if (!cartridges.isEmpty()) {
- // Paginate only if cartridges are there.
- DataPaginator.doPaging(pageNumber, cartridges, cartridgeWrapper);
- } else {
- // Must set this value as axis2 stub client will return an array
- // with length = 1 and null element if cartridges[] is null
- cartridgeWrapper.set(cartridges);
- }
- return cartridgeWrapper;
- }
-
- private List<Cartridge> getAvailableCartridges(String cartridgeSearchString, Boolean multiTenant) throws ADCException {
- List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
- if (log.isDebugEnabled()) {
- log.debug("Getting available cartridges. Search String: " + cartridgeSearchString + ", Multi-Tenant: " + multiTenant);
- }
-
- boolean allowMultipleSubscription = new Boolean(
- System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
- try {
- Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
-
- String[] availableCartridges = CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
-
- if (availableCartridges != null) {
- for (String cartridgeType : availableCartridges) {
- CartridgeInfo cartridgeInfo = null;
- try {
- cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
- } catch (Exception e) {
- if (log.isWarnEnabled()) {
- log.warn("Error when calling getCartridgeInfo for " + cartridgeType + ", Error: "
- + e.getMessage());
- }
- }
- if (cartridgeInfo == null) {
- // This cannot happen. But continue
- if (log.isDebugEnabled()) {
- log.debug("Cartridge Info not found: " + cartridgeType);
- }
- continue;
- }
-
- if (multiTenant != null && !multiTenant && cartridgeInfo.getMultiTenant()) {
- // Need only Single-Tenant cartridges
- continue;
- } else if (multiTenant != null && multiTenant && !cartridgeInfo.getMultiTenant()) {
- // Need only Multi-Tenant cartridges
- continue;
- }
-
- if (!cartridgeMatches(cartridgeInfo, searchPattern)) {
- continue;
- }
-
- Cartridge cartridge = new Cartridge();
- cartridge.setCartridgeType(cartridgeType);
- cartridge.setProvider(cartridgeInfo.getProvider());
- cartridge.setDisplayName(cartridgeInfo.getDisplayName());
- cartridge.setDescription(cartridgeInfo.getDescription());
- cartridge.setVersion(cartridgeInfo.getVersion());
- cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
- //cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
- cartridge.setCartridgeAlias("-");
- //cartridge.setActiveInstances(0);
- cartridges.add(cartridge);
-
- if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
- // If the cartridge is multi-tenant. We should not let users
- // createSubscription twice.
- if (PersistenceManager.isAlreadySubscribed(cartridgeType,
- ApplicationManagementUtil.getTenantId(getConfigContext()))) {
- if (log.isDebugEnabled()) {
- log.debug("Already subscribed to " + cartridgeType
- + ". This multi-tenant cartridge will not be available to createSubscription");
- }
- //cartridge.setStatus(CartridgeConstants.SUBSCRIBED);
- }
- }
- }
- } else {
- if (log.isDebugEnabled()) {
- log.debug("There are no available cartridges");
- }
- }
- } catch (Exception e) {
- String msg = "Error when getting available cartridges. " + e.getMessage();
- log.error(msg, e);
- throw new ADCException("An error occurred getting available cartridges ", e);
- }
-
- Collections.sort(cartridges);
-
- if (log.isDebugEnabled()) {
- log.debug("Returning available cartridges " + cartridges.size());
- }
-
- return cartridges;
- }
-
- /**
- * Get subscribed cartridges
- */
- public CartridgeWrapper getPagedSubscribedCartridges(String cartridgeSearchString, int pageNumber)
- throws ADCException {
- checkSuperTenant();
- CartridgeWrapper cartridgeWrapper = new CartridgeWrapper();
- List<Cartridge> cartridges = getSubscribedCartridges(cartridgeSearchString);
-
- // TODO Improve pagination
- if (!cartridges.isEmpty()) {
- // Paginate only if cartridges are there.
- DataPaginator.doPaging(pageNumber, cartridges, cartridgeWrapper);
- } else {
- cartridgeWrapper.set(cartridges);
- }
- return cartridgeWrapper;
- }
-
- private List<Cartridge> getSubscribedCartridges(String cartridgeSearchString) throws ADCException {
- List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
- if (log.isDebugEnabled()) {
- log.debug("Getting subscribed cartridges. Search String: " + cartridgeSearchString);
- }
-
- try {
- Pattern searchPattern = getSearchStringPattern(cartridgeSearchString);
-
- List<CartridgeSubscriptionInfo> subscriptionList = PersistenceManager
- .retrieveSubscribedCartridges(ApplicationManagementUtil.getTenantId(getConfigContext()));
-
- if (subscriptionList != null && !subscriptionList.isEmpty()) {
- for (CartridgeSubscriptionInfo subscription : subscriptionList) {
- CartridgeInfo cartridgeInfo = null;
- try {
- cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(
- subscription.getCartridge());
- } catch (Exception e) {
- if (log.isWarnEnabled()) {
- log.warn("Error when calling getCartridgeInfo for " + subscription.getCartridge()
- + ", Error: " + e.getMessage());
- }
- }
- if (cartridgeInfo == null) {
- // This cannot happen. But continue
- if (log.isDebugEnabled()) {
- log.debug("Cartridge Info not found: " + subscription.getCartridge());
- }
- continue;
- }
- if (!cartridgeMatches(cartridgeInfo, subscription, searchPattern)) {
- continue;
- }
- /*TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
- String[] ips = topologyMgtService.getActiveIPs(subscription.getCartridge(),
- subscription.getClusterDomain(), subscription.getClusterSubdomain());
- Cartridge cartridge = ApplicationManagementUtil.populateCartridgeInfo(cartridgeInfo, subscription, ips, getTenantDomain());
- cartridges.add(cartridge);*/
- }
- } else {
- if (log.isDebugEnabled()) {
- log.debug("There are no subscribed cartridges");
- }
- }
- } catch (Exception e) {
- String msg = "Error when getting subscribed cartridges. " + e.getMessage();
- log.error(msg, e);
- throw new ADCException("An Error occurred when getting subscribed cartridges.", e);
- }
-
- Collections.sort(cartridges);
-
- if (log.isDebugEnabled()) {
- log.debug("Returning subscribed cartridges " + cartridges.size());
- }
-
- return cartridges;
- }
-
- private Pattern getSearchStringPattern(String searchString) {
- if (log.isDebugEnabled()) {
- log.debug("Creating search pattern for " + searchString);
- }
- if (searchString != null) {
- // Copied from org.wso2.carbon.webapp.mgt.WebappAdmin.doesWebappSatisfySearchString(WebApplication, String)
- String regex = searchString.toLowerCase().replace("..?", ".?").replace("..*", ".*").replaceAll("\\?", ".?")
- .replaceAll("\\*", ".*?");
- if (log.isDebugEnabled()) {
- log.debug("Created regex: " + regex + " for search string " + searchString);
- }
-
- Pattern pattern = Pattern.compile(regex);
- return pattern;
- }
- return null;
- }
-
- // TODO: Improve search method
- private boolean cartridgeMatches(CartridgeInfo cartridgeInfo, Pattern pattern) {
- if (pattern != null) {
- boolean matches = false;
- if (cartridgeInfo.getDisplayName() != null) {
- matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
- }
- if (!matches && cartridgeInfo.getDescription() != null) {
- matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
- }
- return matches;
- }
- return true;
- }
-
- private boolean cartridgeMatches(CartridgeInfo cartridgeInfo, CartridgeSubscriptionInfo cartridgeSubscriptionInfo, Pattern pattern) {
- if (pattern != null) {
- boolean matches = false;
- if (cartridgeInfo.getDisplayName() != null) {
- matches = pattern.matcher(cartridgeInfo.getDisplayName().toLowerCase()).find();
- }
- if (!matches && cartridgeInfo.getDescription() != null) {
- matches = pattern.matcher(cartridgeInfo.getDescription().toLowerCase()).find();
- }
- if (!matches && cartridgeSubscriptionInfo.getCartridge() != null) {
- matches = pattern.matcher(cartridgeSubscriptionInfo.getCartridge().toLowerCase()).find();
- }
- if (!matches && cartridgeSubscriptionInfo.getAlias() != null) {
- matches = pattern.matcher(cartridgeSubscriptionInfo.getAlias().toLowerCase()).find();
- }
- return matches;
- }
- return true;
- }
-
- public Cartridge getCartridgeInfo(String alias) throws ADCException, NotSubscribedException {
- checkSuperTenant();
- return ApplicationManagementUtil.getCartridgeInfo(alias, getTenantDomain());
- }
-
- public String[] getSubscribedCartridgeAliases() throws AxisFault {
- try {
- List<CartridgeSubscriptionInfo> subscriptionList = PersistenceManager
- .retrieveSubscribedCartridges(ApplicationManagementUtil.getTenantId(getConfigContext()));
- List<String> subscribedAliases = new ArrayList<String>();
- for (CartridgeSubscriptionInfo cartridgeSubscriptionInfo : subscriptionList) {
-
- if(cartridgeSubscriptionInfo.getProvider().equalsIgnoreCase(CartridgeConstants.PROVIDER_NAME_WSO2) &&
- getCartridgeInfo(cartridgeSubscriptionInfo.getAlias()).isMultiTenant()) {
-
- subscribedAliases.add(cartridgeSubscriptionInfo.getCartridge());
- } else {
- subscribedAliases.add(cartridgeSubscriptionInfo.getAlias());
- }
- }
- if(subscribedAliases.size() == 0) {
- return new String[]{""};
- } else {
- return subscribedAliases.toArray(new String[subscribedAliases.size()]);
- }
-
- } catch (Exception e) {
- String msg = "Exception in getting subscribed cartridge aliases :" + e.getMessage();
- log.error(msg, e);
- throw new AxisFault("An error occurred while getting subscribed cartridge aliases", e);
- }
- }
-
- public PolicyDefinition[] getPolicyDefinitions() {
- List<PolicyDefinition> policyDefinitions = PolicyHolder.getInstance().getPolicyDefinitions();
- return policyDefinitions == null || policyDefinitions.isEmpty() ? new PolicyDefinition[0] : policyDefinitions
- .toArray(new PolicyDefinition[policyDefinitions.size()]);
- }
-
- /**
- * Subscribe to a cartridge
- */
- public SubscriptionInfo subscribe(String cartridgeType, String alias, String policy, String repoURL,
- boolean privateRepo, String repoUsername, String repoPassword, String dataCartridgeType,
- String dataCartridgeAlias) throws ADCException, PolicyException, UnregisteredCartridgeException,
- InvalidCartridgeAliasException, DuplicateCartridgeAliasException, RepositoryRequiredException,
- AlreadySubscribedException, RepositoryCredentialsRequiredException, InvalidRepositoryException,
- RepositoryTransportException {
-
- checkSuperTenant();
-
- //return ApplicationManagementUtil.doSubscribe(cartridgeType, alias, policy, repoURL, privateRepo, repoUsername,
- // repoPassword, dataCartridgeType, dataCartridgeAlias, getUsername(),
- // ApplicationManagementUtil.getTenantId(getConfigContext()), getTenantDomain());
-
- CartridgeSubscription cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType,
- alias.trim(), "economyPolicy", "economy-deployment", getTenantDomain(), ApplicationManagementUtil.getTenantId(configurationContext),
- getUsername(), "git", repoURL, privateRepo, repoUsername, repoPassword, null);
-
- if(dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) {
-
- /*dataCartridgeAlias = dataCartridgeAlias.trim();
-
- CartridgeSubscription connectingCartridgeSubscription = null;
- try {
- connectingCartridgeSubscription = cartridgeSubsciptionManager.getCartridgeSubscriptionForCluster(getTenantDomain(),
- dataCartridgeAlias);
- } catch (NotSubscribedException e) {
- log.error(e.getMessage(), e);
- }
- if (connectingCartridgeSubscription != null) {
- // Publish tenant subscribed event
- CartridgeSubscriptionUtils.publishTenantSubscribedEvent(getTenantId(), connectingCartridgeSubscription.getCartridgeInfo().getType());
-
- try {
- cartridgeSubsciptionManager.connectCartridges(getTenantDomain(), cartridgeSubscription,
- connectingCartridgeSubscription.getAlias());
-
- } catch (NotSubscribedException e) {
- log.error(e.getMessage(), e);
-
- } catch (AxisFault axisFault) {
- log.error(axisFault.getMessage(), axisFault);
- }
- } else {
- log.error("Failed to connect. No cartridge subscription found for tenant " +
- ApplicationManagementUtil.getTenantId(configurationContext) + " with alias " + alias);
- } */
- }
-
- return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
-
- }
-
- /**
- * Unsubscribing the cartridge
- *
- * @param alias name of the cartridge to be unsubscribed
- */
- public void unsubscribe(String alias) throws ADCException, NotSubscribedException {
-
- checkSuperTenant();
-
- // Find subscription of alias
- CartridgeSubscriptionInfo subscription;
- String errorMessage = String.format("Tenant %s is not subscribed for %s", getTenantDomain(), alias);
- try {
- subscription = PersistenceManager.getSubscription(getTenantDomain(), alias);
- if(subscription == null) {
- throw new ADCException(errorMessage);
- }
- } catch (Exception e) {
- throw new ADCException(errorMessage);
- }
-
- // Un-subscribe from cartridge
- cartridgeSubsciptionManager.unsubscribeFromCartridge(getTenantDomain(), alias);
-
- // Publish tenant un-subscribed event
- String serviceName = subscription.getCartridge();
- CartridgeSubscriptionUtils.publishTenantUnSubscribedEvent(getTenantId(), serviceName);
-
-
- /*CartridgeSubscriptionInfo subscription = null;
-
- try {
- subscription = PersistenceManager.getSubscription(getTenantDomain(), alias);
- } catch (Exception e) {
- String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + alias;
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
-
- if (subscription == null) {
- String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + alias;
- log.error(msg);
- throw new NotSubscribedException("You have not subscribed for " + alias, alias);
- }
-
- try {
- String clusterDomain = subscription.getClusterDomain();
- String clusterSubDomain = subscription.getClusterSubdomain();
-
- if (log.isDebugEnabled()) {
- log.debug("Finding cartridge information for " + subscription.getCartridge());
- }
- CartridgeInfo cartridgeInfo = CloudControllerServiceClient.getServiceClient().getCartridgeInfo(subscription.getCartridge());
- if (log.isDebugEnabled()) {
- log.debug("Found " + cartridgeInfo.getDisplayName() + " for " + subscription.getCartridge());
- }
- if (!cartridgeInfo.getMultiTenant()) {
- log.info("Terminating all instances of " + clusterDomain + " " + clusterSubDomain);
- CloudControllerServiceClient.getServiceClient().terminateAllInstances(clusterDomain, clusterSubDomain);
- log.info("All instances terminated.");
- log.info("Unregistering services...");
- CloudControllerServiceClient.getServiceClient().unregisterService(clusterDomain, clusterSubDomain);
- log.info("Successfully terminated instances ..");
- } else {
- if (log.isInfoEnabled()) {
- log.info("Cartridge "
- + subscription.getCartridge()
- + " is a multi-tenant cartridge and therefore will not terminate all instances and unregister services");
- }
- }
-
- new RepositoryFactory().destroyRepository(alias, getTenantDomain(), getUsername());
- log.info("Repo is destroyed successfully.. ");
-
- PersistenceManager.updateSubscriptionState(subscription.getSubscriptionId(), "UNSUBSCRIBED");
- new DNSManager().removeSubDomain(subscription.getHostName());
- registryManager.removeDomainMappingFromRegistry(subscription.getHostName());
- TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
-
- String[] ips = topologyMgtService.getActiveIPs(subscription.getCartridge(),
- subscription.getClusterDomain(), subscription.getClusterSubdomain());
- PersistenceManager.updateInstanceState("INACTIVE", ips, subscription.getClusterDomain(), subscription.getClusterSubdomain(), subscription.getCartridge());
-
- } catch (ADCException e) {
- log.error(e.getMessage(), e);
- throw e;
- } catch (Exception e1) {
- String msg1 = "Exception occurred :" + e1.getMessage();
- log.error(msg1);
- throw new ADCException("Unsubscribe failed for cartridge " + alias, e1);
- }*/
- }
-
-
- public String addDomainMapping(String mappedDomain, String cartridgeAlias) throws ADCException, DomainMappingExistsException, NotSubscribedException {
- checkSuperTenant();
- // TODO Following was in CLI. Fix this
- // if (domain.indexOf('.') == -1) {
- // System.out.println("\nOwn domain should include a '.' ");
- // }
-
- CartridgeSubscriptionInfo subscription = null;
- String actualHost = null;
-
- try {
- subscription = PersistenceManager.getSubscription(getTenantDomain(), cartridgeAlias);
- } catch (Exception e) {
- String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + cartridgeAlias;
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
- if (subscription == null) {
- String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + cartridgeAlias;
- log.error(msg);
- throw new NotSubscribedException("You have not subscribed for " + cartridgeAlias, cartridgeAlias);
- }
-
- try {
- actualHost = getActualHost(cartridgeAlias);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //registryManager.addDomainMappingToRegistry(mappedDomain, actualHost);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- log.info("Domain mapping is added for " + mappedDomain + " tenant: " + getTenantDomain());
- PersistenceManager.updateDomainMapping(
- ApplicationManagementUtil.getTenantId(getConfigContext()), cartridgeAlias, mappedDomain);
- } catch (RegistryException e) {
- String msg = "Unable to add the mapping due to registry transaction error";
- log.error(msg, e);
- throw new ADCException("Unable to add the mapping due to internal error!", e);
- } catch (DomainMappingExistsException e) {
- String msg = "Domain mapping already exists.";
- log.error(msg, e);
- throw e;
- } catch (Exception e) {
- String msg = "Error occurred. Reason : " + e.getMessage();
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
- return actualHost;
- }
-
- private String getActualHost(String cartridgeName) throws Exception {
- return PersistenceManager.getHostNameForCartridgeName(
- ApplicationManagementUtil.getTenantId(getConfigContext()), cartridgeName);
- }
-
- public void removeDomainMapping(String cartridgeAlias) throws ADCException, NotSubscribedException {
- checkSuperTenant();
- CartridgeSubscriptionInfo subscription = null;
- String actualHost = null;
-
- try {
- subscription = PersistenceManager.getSubscription(getTenantDomain(), cartridgeAlias);
- } catch (Exception e) {
- String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + cartridgeAlias;
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
- if (subscription == null) {
- String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + cartridgeAlias;
- log.error(msg);
- throw new NotSubscribedException("You have not subscribed for " + cartridgeAlias, cartridgeAlias);
- }
-
- try {
- actualHost = getActualHost(cartridgeAlias);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //registryManager.removeDomainMappingFromRegistry(actualHost);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- log.info("Domain mapping is removed for " + actualHost + " tenant: " + getTenantDomain());
- PersistenceManager.updateDomainMapping(ApplicationManagementUtil.getTenantId(getConfigContext()),
- cartridgeAlias, null);
- } catch (RegistryException e) {
- String msg = "Unable to remove the mapping due to registry transaction error";
- log.error(msg, e);
- throw new ADCException("Unable to remove the mapping due to internal error!", e);
- } catch (Exception e) {
- String msg = "Error occurred. Reason : " + e.getMessage();
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
- }
-
- public void synchronizeRepository(String cartridgeAlias) throws ADCException, NotSubscribedException {
- checkSuperTenant();
- CartridgeSubscriptionInfo subscription = null;
-
- // Validating subscription
- try {
- subscription = PersistenceManager.getSubscription(getTenantDomain(), cartridgeAlias);
- } catch (Exception e) {
- String msg = "Failed to get subscription for " + getTenantDomain() + " and alias " + cartridgeAlias;
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
- if (subscription == null) {
- String msg = "Tenant " + getTenantDomain() + " is not subscribed for " + cartridgeAlias;
- log.error(msg);
- throw new NotSubscribedException("You have not subscribed for " + cartridgeAlias, cartridgeAlias);
- }
-
- try {
- repoNotificationService.notifyRepoUpdate(getTenantDomain(), cartridgeAlias);
- } catch (Exception e) {
- throw new ADCException(e.getMessage() != null ? e.getMessage() : "Failed to synchronize repository", e);
- }
- }
-
- public String getTenantDomain() {
- PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- return carbonContext.getTenantDomain();
- }
-
- public int getTenantId() {
- PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
- return carbonContext.getTenantId();
- }
-
- /**
- * Allow to check whether features are enabled in the back-end
- *
- * @param key
- * The propery key
- * @return {@code true} if feature is enabled
- */
- public boolean isFeatureEnabled(String key) {
- if (key != null && key.startsWith("feature.")) {
- return new Boolean(System.getProperty(key));
- }
- return false;
- }
-
-
- public RepositoryInformation testRepositoryConnection(String repoURL, String repoUsername, String repoPassword, boolean privateRepo)
- throws RepositoryRequiredException, ADCException, RepositoryCredentialsRequiredException,
- InvalidRepositoryException, RepositoryTransportException {
- return ApplicationManagementUtil.validateRepository(repoURL, repoUsername, repoPassword, privateRepo, true);
- }
-
- // TODO Remove following when we support cartridge subscription for Super-tenant
- private void checkSuperTenant() throws ADCException {
- if (log.isDebugEnabled()) {
- log.debug("Checking whether super tenant accesses the service methods. Tenant ID: "
- + ApplicationManagementUtil.getTenantId(getConfigContext()) + ", Tenant Domain: " + getTenantDomain());
- }
- if (MultitenantConstants.SUPER_TENANT_ID == ApplicationManagementUtil.getTenantId(getConfigContext())) {
- throw new ADCException("Super Tenant is not allowed to complete requested operation");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
index d56ba0b..f3ff654 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/CartridgeConstants.java
@@ -37,7 +37,6 @@ public class CartridgeConstants {
public static final String APPEND_SCRIPT = "append.script";
public static final String REMOVE_SCRIPT = "remove.script";
public static final String BIND_FILE_PATH = "bind.file.path";
- public static final String MAX_ATTEMPTS = "max.attempts";
public static final String FEATURE_EXTERNAL_REPO_VAIDATION_ENABLED = "feature.externalrepo.validation.enabled";
public static final String FEATURE_INTERNAL_REPO_ENABLED = "feature.internalrepo.enabled";
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index 8fd6d52..fc83700 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -18,16 +18,40 @@
package org.apache.stratos.rest.endpoint.services;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+import java.util.Set;
+import java.util.regex.Pattern;
+
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.cloud.controller.pojo.CartridgeConfig;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.LoadbalancerConfig;
+import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.cloud.controller.pojo.Property;
import org.apache.stratos.manager.client.AutoscalerServiceClient;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
import org.apache.stratos.manager.deploy.service.ServiceDeploymentManager;
import org.apache.stratos.manager.dto.Cartridge;
import org.apache.stratos.manager.dto.SubscriptionInfo;
-import org.apache.stratos.manager.exception.*;
+import org.apache.stratos.manager.exception.ADCException;
+import org.apache.stratos.manager.exception.AlreadySubscribedException;
+import org.apache.stratos.manager.exception.DuplicateCartridgeAliasException;
+import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
+import org.apache.stratos.manager.exception.InvalidRepositoryException;
+import org.apache.stratos.manager.exception.NotSubscribedException;
+import org.apache.stratos.manager.exception.PolicyException;
+import org.apache.stratos.manager.exception.RepositoryCredentialsRequiredException;
+import org.apache.stratos.manager.exception.RepositoryRequiredException;
+import org.apache.stratos.manager.exception.RepositoryTransportException;
+import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
import org.apache.stratos.manager.subscription.DataCartridgeSubscription;
@@ -35,9 +59,6 @@ import org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
import org.apache.stratos.manager.utils.ApplicationManagementUtil;
import org.apache.stratos.manager.utils.CartridgeConstants;
-import org.apache.stratos.manager.utils.PersistenceManager;
-import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
-import org.apache.stratos.cloud.controller.pojo.Properties;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Member;
import org.apache.stratos.messaging.domain.topology.MemberStatus;
@@ -48,11 +69,6 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.Autosca
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
-import org.apache.stratos.cloud.controller.pojo.*;
-
-
-import java.util.*;
-import java.util.regex.Pattern;
public class ServiceUtils {
private static Log log = LogFactory.getLog(ServiceUtils.class);
@@ -471,7 +487,7 @@ public class ServiceUtils {
if (cartridgeInfo.getMultiTenant() && !allowMultipleSubscription) {
// If the cartridge is multi-tenant. We should not let users
// createSubscription twice.
- if (PersistenceManager.isAlreadySubscribed(cartridgeType,
+ if (isAlreadySubscribed(cartridgeType,
ApplicationManagementUtil.getTenantId(configurationContext))) {
if (log.isDebugEnabled()) {
log.debug("Already subscribed to " + cartridgeType
@@ -501,7 +517,18 @@ public class ServiceUtils {
return cartridges;
}
- static List<Cartridge> getSubscriptions (String cartridgeSearchString, ConfigurationContext configurationContext) throws ADCException {
+ private static boolean isAlreadySubscribed(String cartridgeType,
+ int tenantId) {
+
+ Collection<CartridgeSubscription> subscriptionList = cartridgeSubsciptionManager.isCartridgeSubscribed(tenantId, cartridgeType);
+ if(subscriptionList == null || subscriptionList.isEmpty()){
+ return false;
+ }else {
+ return true;
+ }
+ }
+
+ static List<Cartridge> getSubscriptions (String cartridgeSearchString, ConfigurationContext configurationContext) throws ADCException {
List<Cartridge> cartridges = new ArrayList<Cartridge>();
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0de42717/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
----------------------------------------------------------------------
diff --git a/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties b/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
index 53b50f2..302b4c1 100644
--- a/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
+++ b/products/stratos-manager/modules/distribution/src/main/conf/cartridge-config.properties
@@ -19,20 +19,6 @@
#
#
-# Configuration properties
-#this file is in product
autoscaler.service.url=https://as.stratos.apache.org:9446/services/AutoScalerService/
cloud.controller.service.url=https://cc.stratos.apache.org:9444/services/CloudControllerService/
-autoscaler.time.out=190000
puppet.ip=127.0.0.1
-
-adc.jdbc.url=jdbc:h2:repository/database/WSO2S2_DB
-adc.jdbc.username=wso2carbon
-adc.jdbc.password=wso2carbon
-adc.jdbc.driver=org.h2.Driver
-
-feature.externalrepo.validation.enabled=true
-feature.internalrepo.enabled=false
-feature.multitenant.multiplesubscription.enabled=false
-
-max.attempts=1000