Updated Branches:
  refs/heads/master b1999c5de -> fcf1dc7fa

registry based persistence of CC information model - initial version


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

Branch: refs/heads/master
Commit: 3ba57aacdeaccb6b02258b6623dcdee284b351a4
Parents: b1999c5
Author: Nirmal Fernando <[email protected]>
Authored: Tue Dec 3 21:33:08 2013 +0530
Committer: Nirmal Fernando <[email protected]>
Committed: Tue Dec 3 21:33:08 2013 +0530

----------------------------------------------------------------------
 .../impl/CloudControllerServiceImpl.java        | 82 +++++++++++---------
 .../runtime/FasterLookUpDataHolder.java         | 14 +++-
 2 files changed, 56 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ba57aac/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 e934c3d..97c967d 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
@@ -31,6 +31,7 @@ import 
org.apache.stratos.cloud.controller.exception.UnregisteredCartridgeExcept
 import 
org.apache.stratos.cloud.controller.exception.UnregisteredClusterException;
 import org.apache.stratos.cloud.controller.interfaces.CloudControllerService;
 import org.apache.stratos.cloud.controller.interfaces.Iaas;
+import org.apache.stratos.cloud.controller.persist.Deserializer;
 import org.apache.stratos.cloud.controller.pojo.Cartridge;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.ClusterContext;
@@ -38,6 +39,7 @@ import org.apache.stratos.cloud.controller.pojo.IaasProvider;
 import org.apache.stratos.cloud.controller.pojo.MemberContext;
 import org.apache.stratos.cloud.controller.pojo.Registrant;
 import 
org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublisherTask;
+import org.apache.stratos.cloud.controller.registry.RegistryManager;
 import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.cloud.controller.topic.TopologySynchronizerTask;
 import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
@@ -56,6 +58,7 @@ import org.wso2.carbon.ntask.core.TaskInfo;
 import org.wso2.carbon.ntask.core.TaskInfo.TriggerInfo;
 import org.wso2.carbon.ntask.core.TaskManager;
 import org.wso2.carbon.ntask.core.service.TaskService;
+import org.wso2.carbon.registry.core.exceptions.RegistryException;
 
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -198,21 +201,22 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
 
        private void acquireData() {
 
-//             Object obj = RegistryManager.getInstance().retrieve();
-//             if (obj != null) {
-//                     try {
-//                             Object dataObj = Deserializer
-//                                             
.deserializeFromByteArray((byte[]) obj);
-//                             if (dataObj instanceof FasterLookUpDataHolder) {
-//                                     FasterLookUpDataHolder serializedObj = 
(FasterLookUpDataHolder) dataObj;
-//                                     FasterLookUpDataHolder currentData = 
FasterLookUpDataHolder
-//                                                     .getInstance();
-//
-//                                     // assign necessary data
-//                                     
currentData.setNodeIdToServiceContextMap(serializedObj
-//                                                     
.getNodeIdToServiceContextMap());
-//
-//                                     // traverse through current Service 
Contexts
+               Object obj = RegistryManager.getInstance().retrieve();
+               if (obj != null) {
+                       try {
+                               Object dataObj = Deserializer
+                                               
.deserializeFromByteArray((byte[]) obj);
+                               if (dataObj instanceof FasterLookUpDataHolder) {
+                                       FasterLookUpDataHolder serializedObj = 
(FasterLookUpDataHolder) dataObj;
+                                       FasterLookUpDataHolder currentData = 
FasterLookUpDataHolder
+                                                       .getInstance();
+
+                                       // assign necessary data
+                                       
currentData.setClusterIdToContext(serializedObj.getClusterIdToContext());
+                                       
currentData.setMemberIdToContext(serializedObj.getMemberIdToContext());
+                                       
currentData.setClusterIdToMemberContext(serializedObj.getClusterIdToMemberContext());
+
+                                       // traverse through current Service 
Contexts
 //                                     for (ServiceContext ctxt : 
currentData.getServiceCtxtList()) {
 //                                             // traverse through serialized 
Service Contexts
 //                                             for (ServiceContext 
serializedCtxt : serializedObj
@@ -258,18 +262,18 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
 //                                                     }
 //                                             }
 //                                     }
-//
-//                                     log.debug("Data is retrieved from 
registry.");
-//                             } else {
-//                                     log.debug("No data is persisted in 
registry.");
-//                             }
-//                     } catch (Exception e) {
-//
-//                             String msg = "Unable to acquire data from 
Registry. Hence, any historical data will not get reflected.";
-//                             log.warn(msg, e);
-//                     }
 
-//             }
+                                       log.debug("Data is retrieved from 
registry.");
+                               } else {
+                                       log.debug("No data is persisted in 
registry.");
+                               }
+                       } catch (Exception e) {
+
+                               String msg = "Unable to acquire data from 
Registry. Hence, any historical data will not get reflected.";
+                               log.warn(msg, e);
+                       }
+
+               }
        }
 
     @Override
@@ -466,15 +470,15 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
         * Persist data in registry.
         */
        private void persist() {
-//             try {
-//                     RegistryManager.getInstance().persist(
-//                                     dataHolder);
-//             } catch (RegistryException e) {
-//
-//                     String msg = "Failed to persist the Cloud Controller 
data in registry. Further, transaction roll back also failed.";
-//                     log.fatal(msg);
-//                     throw new CloudControllerException(msg, e);
-//             }
+               try {
+                       RegistryManager.getInstance().persist(
+                                       dataHolder);
+               } catch (RegistryException e) {
+
+                       String msg = "Failed to persist the Cloud Controller 
data in registry. Further, transaction roll back also failed.";
+                       log.fatal(msg);
+                       throw new CloudControllerException(msg, e);
+               }
        }
 
     private String generateMemberId(String clusterId) {
@@ -920,9 +924,11 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
            String cartridgeType = registrant.getCartridgeType();
            String clusterId = registrant.getClusterId();
         String payload = registrant.getPayload();
+        String hostName = registrant.getHostName();
         
-        if(cartridgeType == null || clusterId == null || payload == null) {
-               String msg = "Null Argument/s detected: Cartridge type: 
"+cartridgeType+", Cluster Id: "+clusterId+", Payload: "+payload;
+        if(cartridgeType == null || clusterId == null || payload == null || 
hostName == null) {
+               String msg = "Null Argument/s detected: Cartridge type: 
"+cartridgeType+", " +
+                       "Cluster Id: "+clusterId+", Payload: "+payload+", Host 
name: "+hostName;
                log.error(msg);
                throw new IllegalArgumentException(msg);
            }
@@ -935,7 +941,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
             throw new UnregisteredCartridgeException(msg);
         }
         
-           dataHolder.addClusterContext(new ClusterContext(clusterId, 
cartridgeType, payload));
+           dataHolder.addClusterContext(new ClusterContext(clusterId, 
cartridgeType, payload, hostName));
            TopologyBuilder.handleClusterCreated(registrant);
            
                return true;

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/3ba57aac/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
index 558a382..6533efb 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/runtime/FasterLookUpDataHolder.java
@@ -48,7 +48,8 @@ public class FasterLookUpDataHolder implements Serializable{
      */
     private Map<String, List<MemberContext>> clusterIdToMemberContext = new 
HashMap<String, List<MemberContext>>();
     
-       /**
+
+    /**
         * Key - member id
         * Value - {@link MemberContext}
         */
@@ -426,7 +427,9 @@ public class FasterLookUpDataHolder implements Serializable{
     
     public void removeMemberContext(String clusterId) {
         List<MemberContext> ctxts = clusterIdToMemberContext.remove(clusterId);
-        
+        if(ctxts == null) {
+            return;
+        }
         for (MemberContext memberContext : ctxts) {
             String memberId = memberContext.getMemberId();
             memberIdToContext.remove(memberId);
@@ -441,6 +444,13 @@ public class FasterLookUpDataHolder implements 
Serializable{
         return clusterIdToMemberContext.get(clusterId);
     }
 
+    public Map<String, List<MemberContext>> getClusterIdToMemberContext() {
+        return clusterIdToMemberContext;
+    }
+    
+    public void setClusterIdToMemberContext(Map<String, List<MemberContext>> 
clusterIdToMemberContext) {
+        this.clusterIdToMemberContext = clusterIdToMemberContext;
+    }
 //    public void addNodeId(String memberId, String nodeId) {
 //        memberIdToNodeId.put(memberId, nodeId);
 //    }

Reply via email to