You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/01/04 09:27:37 UTC

[11/12] git commit: adding the unscubscribed subscription instances to a different path in registry

adding the unscubscribed subscription instances to a different path in registry


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/1cdbca5c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/1cdbca5c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/1cdbca5c

Branch: refs/heads/master
Commit: 1cdbca5ccf1ccb3ddfbc4736e75886e2d0a55392
Parents: 1afbb1f
Author: Isuru <is...@wso2.com>
Authored: Sat Jan 4 13:55:47 2014 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sat Jan 4 13:55:47 2014 +0530

----------------------------------------------------------------------
 .../manager/CartridgeSubscriptionManager.java   | 13 +++++-----
 .../RegistryBasedPersistenceManager.java        | 27 +++++++++++++++-----
 .../adc/mgt/registry/RegistryManager.java       | 25 ++++++++++++++++++
 .../DataInsertionAndRetrievalManager.java       |  6 ++---
 .../rest/endpoint/services/ServiceUtils.java    | 10 ++------
 5 files changed, 57 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1cdbca5c/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 50b5ba6..b8c622a 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
@@ -393,28 +393,27 @@ public class CartridgeSubscriptionManager {
             cartridgeSubscription.removeSubscription();
 
             //set status as 'UNSUBSCRIBED'
-            cartridgeSubscription.setSubscriptionStatus(CartridgeConstants.UNSUBSCRIBED);
+            //cartridgeSubscription.setSubscriptionStatus(CartridgeConstants.UNSUBSCRIBED);
 
-            // currently this is disabled
             // remove subscription
-            /*try {
-                dataInsertionAndRetrievalManager.removeSubscription(CarbonContext.getThreadLocalCarbonContext().getTenantId(), alias);
+            try {
+                dataInsertionAndRetrievalManager.removeSubscription(cartridgeSubscription.getSubscriber().getTenantId(), alias);
 
             } catch (PersistenceManagerException e) {
                 String errorMsg = "Error removing subscription for tenant " + tenantDomain + ", alias " + cartridgeSubscription.getAlias();
                 log.error(errorMsg);
                 throw new ADCException(errorMsg, e);
-            }*/
+            }
 
             // update with new state
-            try {
+            /*try {
                 dataInsertionAndRetrievalManager.cacheAndPersistSubcription(cartridgeSubscription);
 
             } catch (PersistenceManagerException e) {
                 String errorMsg = "Error updating subscription for tenant " + tenantDomain + ", alias " + cartridgeSubscription.getAlias();
                 log.error(errorMsg);
                 throw new ADCException(errorMsg, e);
-            }
+            }*/
 
             // Publish tenant un-subscribed event to message broker
             CartridgeSubscriptionUtils.publishTenantUnSubscribedEvent(cartridgeSubscription.getSubscriber().getTenantId(),

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1cdbca5c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java
index af47e79..359f5da 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java
@@ -41,7 +41,8 @@ public class RegistryBasedPersistenceManager extends PersistenceManager {
     private static final Log log = LogFactory.getLog(RegistryBasedPersistenceManager.class);
     // Registry paths
     private static final String STRATOS_MANAGER_REOSURCE = "/stratos_manager";
-    private static final String SUBSCRIPTIONS = "/subscriptions";
+    private static final String ACTIVE_SUBSCRIPTIONS = "/subscriptions/active";
+    private static final String INACTIVE_SUBSCRIPTIONS = "/subscriptions/inactive";
 
     @Override
     public void persistCartridgeSubscription (CartridgeSubscription cartridgeSubscription) throws PersistenceManagerException {
@@ -68,9 +69,9 @@ public class RegistryBasedPersistenceManager extends PersistenceManager {
 
     private void persistSubscription (CartridgeSubscription cartridgeSubscription) throws PersistenceManagerException {
 
-        // persist in the path SUBSCRIPTION_CONTEXT
+        // persist
         try {
-            RegistryManager.getInstance().persist(STRATOS_MANAGER_REOSURCE + SUBSCRIPTIONS + "/" +
+            RegistryManager.getInstance().persist(STRATOS_MANAGER_REOSURCE + ACTIVE_SUBSCRIPTIONS + "/" +
                     Integer.toString(cartridgeSubscription.getSubscriber().getTenantId()) + "/" +
                     cartridgeSubscription.getType() + "/" +
                     cartridgeSubscription.getAlias(), Serializer.serializeSubscriptionSontextToByteArray(cartridgeSubscription), cartridgeSubscription.getClusterDomain());
@@ -112,7 +113,7 @@ public class RegistryBasedPersistenceManager extends PersistenceManager {
 
     private void removeSubscription (int tenantId, String type, String alias) throws PersistenceManagerException {
 
-        String resourcePath = STRATOS_MANAGER_REOSURCE + SUBSCRIPTIONS + "/" + Integer.toString(tenantId) + "/" + type + "/" + alias;
+        /*String resourcePath = STRATOS_MANAGER_REOSURCE + ACTIVE_SUBSCRIPTIONS + "/" + Integer.toString(tenantId) + "/" + type + "/" + alias;
 
         try {
             RegistryManager.getInstance().delete(resourcePath);
@@ -122,6 +123,20 @@ public class RegistryBasedPersistenceManager extends PersistenceManager {
 
         } catch (RegistryException e) {
             throw new PersistenceManagerException(e);
+        }*/
+
+        // move the subscription from active set to inactive set
+        String sourcePath = STRATOS_MANAGER_REOSURCE + ACTIVE_SUBSCRIPTIONS + "/" + Integer.toString(tenantId) + "/" + type + "/" + alias;
+        String targetPath = STRATOS_MANAGER_REOSURCE + INACTIVE_SUBSCRIPTIONS + "/" + Integer.toString(tenantId) + "/" + type + "/" + alias;
+
+        try {
+            RegistryManager.getInstance().move(sourcePath, targetPath);
+            if (log.isDebugEnabled()) {
+                log.debug("Moved CartridgeSubscription on " + sourcePath + " to " + targetPath + " successfully");
+            }
+
+        } catch (RegistryException e) {
+            throw new PersistenceManagerException(e);
         }
     }
 
@@ -216,7 +231,7 @@ public class RegistryBasedPersistenceManager extends PersistenceManager {
     @Override
     public Collection<CartridgeSubscription> getCartridgeSubscriptions () throws PersistenceManagerException {
 
-        return traverseAndGetCartridgeSubscriptions(STRATOS_MANAGER_REOSURCE + SUBSCRIPTIONS);
+        return traverseAndGetCartridgeSubscriptions(STRATOS_MANAGER_REOSURCE + ACTIVE_SUBSCRIPTIONS);
     }
 
     private Collection<CartridgeSubscription> traverseAndGetCartridgeSubscriptions (String resourcePath) throws PersistenceManagerException  {
@@ -323,7 +338,7 @@ public class RegistryBasedPersistenceManager extends PersistenceManager {
     @Override
     public Collection<CartridgeSubscription> getCartridgeSubscriptions (int tenantId) throws PersistenceManagerException {
 
-        return traverseAndGetCartridgeSubscriptions(STRATOS_MANAGER_REOSURCE + SUBSCRIPTIONS + "/" + Integer.toString(tenantId));
+        return traverseAndGetCartridgeSubscriptions(STRATOS_MANAGER_REOSURCE + ACTIVE_SUBSCRIPTIONS + "/" + Integer.toString(tenantId));
     }
 
     /*@Override

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1cdbca5c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/registry/RegistryManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/registry/RegistryManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/registry/RegistryManager.java
index 08700da..a9dfb1c 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/registry/RegistryManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/registry/RegistryManager.java
@@ -260,6 +260,31 @@ public class RegistryManager {
         }
     }
 
+    public void move (String sourcePath, String targetPath) throws RegistryException {
+
+        UserRegistry registry = initRegistry();
+
+        try {
+            registry.beginTransaction();
+            registry.move(sourcePath, targetPath);
+            registry.commitTransaction();
+
+        } catch (RegistryException e) {
+            String errorMsg = "Could not move the resource at "+ sourcePath + " to " + targetPath;
+            log.error(errorMsg, e);
+            // rollback
+            try {
+                registry.rollbackTransaction();
+
+            } catch (RegistryException e1) {
+                errorMsg = "Failed to rollback moving the resource at " + sourcePath + " to " + targetPath;
+                log.error(errorMsg, e1);
+                throw e1;
+            }
+            throw e;
+        }
+    }
+
     public void delete (String resourcePath) throws RegistryException {
 
         UserRegistry registry = initRegistry();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1cdbca5c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataInsertionAndRetrievalManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataInsertionAndRetrievalManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataInsertionAndRetrievalManager.java
index f18311c..ddc2a44 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataInsertionAndRetrievalManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataInsertionAndRetrievalManager.java
@@ -75,9 +75,6 @@ public class DataInsertionAndRetrievalManager {
         LookupDataHolder.getInstance().acquireWriteLock();
 
         try {
-            // remove from cache
-            LookupDataHolder.getInstance().removeSubscription(tenantId, cartridgeType, subscriptionAlias, clusterId);
-
             // remove from persistence manager
             try {
                 persistenceManager.removeCartridgeSubscription(tenantId, cartridgeType, subscriptionAlias);
@@ -88,6 +85,9 @@ public class DataInsertionAndRetrievalManager {
                 throw e;
             }
 
+            // remove from cache
+            LookupDataHolder.getInstance().removeSubscription(tenantId, cartridgeType, subscriptionAlias, clusterId);
+
         } finally {
             LookupDataHolder.getInstance().releaseWriteLock();
         }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1cdbca5c/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 dc3d753..0c4c265 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
@@ -522,16 +522,10 @@ public class ServiceUtils {
                         continue;
                     }
 
-                    if (!subscription.getSubscriptionStatus().equals(CartridgeConstants.SUBSCRIBED)) {
+                    /*if (!subscription.getSubscriptionStatus().equals(CartridgeConstants.SUBSCRIBED)) {
                         // not in the subscribed state, skip
                         continue;
-                    }
-                    /*TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
-                    String[] ips = topologyMgtService.getActiveIPs(subscription.getCartridge(),
-                            subscription.getClusterDomain(), subscription.getClusterSubdomain());
-                    String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
-                    Cartridge cartridge = ApplicationManagementUtil.populateCartridgeInfo(cartridgeInfo, subscription, ips, tenantDomain);
-                    cartridges.add(cartridge);*/
+                    }*/
                     Cartridge cartridge = new Cartridge();
                     cartridge.setCartridgeType(subscription.getCartridgeInfo().getType());
                     cartridge.setMultiTenant(subscription.getCartridgeInfo().getMultiTenant());