You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/12 13:11:44 UTC
git commit: persisting data holder of CC and handling cartridge
undeployment
Updated Branches:
refs/heads/master 32a905ecc -> e2c0a2a25
persisting data holder of CC and handling cartridge undeployment
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/e2c0a2a2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/e2c0a2a2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/e2c0a2a2
Branch: refs/heads/master
Commit: e2c0a2a25059e6287e189f23d9a52adc12e13562
Parents: 32a905e
Author: Nirmal Fernando <ni...@apache.org>
Authored: Thu Dec 12 17:40:30 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Thu Dec 12 17:41:27 2013 +0530
----------------------------------------------------------------------
.../impl/CloudControllerServiceImpl.java | 99 ++++++--------------
.../cloud/controller/pojo/Cartridge.java | 9 --
.../runtime/FasterLookUpDataHolder.java | 4 +
.../controller/topology/TopologyBuilder.java | 52 +++++-----
4 files changed, 55 insertions(+), 109 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e2c0a2a2/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 34adae5..5ba44ea 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
@@ -215,57 +215,17 @@ public class CloudControllerServiceImpl implements CloudControllerService {
currentData.setClusterIdToContext(serializedObj.getClusterIdToContext());
currentData.setMemberIdToContext(serializedObj.getMemberIdToContext());
currentData.setClusterIdToMemberContext(serializedObj.getClusterIdToMemberContext());
+ currentData.setCartridges(serializedObj.getCartridges());
- // traverse through current Service Contexts
-// for (ServiceContext ctxt : currentData.getServiceCtxtList()) {
-// // traverse through serialized Service Contexts
-// for (ServiceContext serializedCtxt : serializedObj
-// .getServiceCtxtList()) {
-// // if a matching Service Context found
-// if (ctxt.equals(serializedCtxt)) {
-// // persisted node ids of this Service Context
-// List<Object> nodeIds = serializedObj
-// .getNodeIdsOfServiceCtxt(serializedCtxt);
-// for (Object nodeIdObj : nodeIds) {
-// String nodeId = (String) nodeIdObj;
-//
-// // assign persisted data
-// currentData.addNodeId(nodeId, ctxt);
-//
-// }
-//
-// ctxt.setIaasContextMap(serializedCtxt
-// .getIaasCtxts());
-// appendToPublicIpProperty(
-// serializedCtxt
-// .getProperty(CloudControllerConstants.PUBLIC_IP_PROPERTY),
-// ctxt);
-//
-// // assign lastly used IaaS
-// if (serializedCtxt.getCartridge() != null
-// && serializedCtxt.getCartridge()
-// .getLastlyUsedIaas() != null) {
-//
-// if (ctxt.getCartridge() == null) {
-// // load Cartridge
-// ctxt.setCartridge(loadCartridge(
-// ctxt.getCartridgeType(),
-// serializedObj.getCartridges()));
-// }
-//
-// IaasProvider serializedIaas = serializedCtxt
-// .getCartridge().getLastlyUsedIaas();
-// ctxt.getCartridge().setLastlyUsedIaas(
-// serializedIaas);
-//
-// }
-// }
-// }
-// }
-
- log.debug("Data is retrieved from registry.");
+ if(log.isDebugEnabled()) {
+
+ log.debug("Cloud Controller Data is retrieved from registry.");
+ }
} else {
- log.debug("No data is persisted in registry.");
+ if(log.isDebugEnabled()) {
+
+ log.debug("Cloud Controller Data cannot be found in registry.");
+ }
}
} catch (Exception e) {
@@ -316,7 +276,17 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
// TODO transaction begins
+ String cartridgeType = cartridge.getType();
+ if(dataHolder.getCartridge(cartridgeType) != null) {
+ if (dataHolder.getCartridges().remove(cartridge)) {
+ log.info("Successfully undeployed the Cartridge definition: " + cartridgeType);
+ }
+ }
+
dataHolder.addCartridge(cartridge);
+
+ // persist
+ persist();
List<Cartridge> cartridgeList = new ArrayList<Cartridge>();
cartridgeList.add(cartridge);
@@ -324,11 +294,18 @@ public class CloudControllerServiceImpl implements CloudControllerService {
TopologyBuilder.handleServiceCreated(cartridgeList);
// transaction ends
- log.info("Successfully deployed the Cartridge definition: " + cartridge.getType());
+ log.info("Successfully deployed the Cartridge definition: " + cartridgeType);
}
public void undeployCartridgeDefinition(String cartridgeType) {
+ Cartridge cartridge = null;
+ if((cartridge = dataHolder.getCartridge(cartridgeType)) != null) {
+ if (dataHolder.getCartridges().remove(cartridge)) {
+ persist();
+ log.info("Successfully undeployed the Cartridge definition: " + cartridgeType);
+ }
+ }
}
@Override
@@ -1005,6 +982,8 @@ public class CloudControllerServiceImpl implements CloudControllerService {
dataHolder.addClusterContext(new ClusterContext(clusterId, cartridgeType, payload, hostName));
TopologyBuilder.handleClusterCreated(registrant);
+ persist();
+
return true;
}
@@ -1062,26 +1041,8 @@ public class CloudControllerServiceImpl implements CloudControllerService {
dataHolder.removeClusterContext(clusterId);
dataHolder.removeMemberContext(clusterId);
- //subDomain = checkSubDomain(subDomain);
-
- // find the service context
-// ServiceContext subjectedSerCtxt = dataHolder
-// .getServiceContextFromDomain(clusterId);
+ persist();
-
-
-// TopologyBuilder.handleClusterRemoved(subjectedSerCtxt);
-
-// if (subjectedSerCtxt == null) {
-// throw new UnregisteredClusterException(
-// "No registered service found for domain: " + clusterId);
-// }
-//
-// // get the service definition file.
-// File serviceDefFile = subjectedSerCtxt.getFile();
-//
-// // delete that file, so that it gets automatically undeployed.
-// return serviceDefFile.delete();
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e2c0a2a2/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java
index f01be17..d52e52b 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java
@@ -183,14 +183,6 @@ public class Cartridge implements Serializable{
this.lastlyUsedIaas = lastlyUsedIaas;
}
-// public boolean isJcloudsObjectsBuilt() {
-// return isJcloudsObjectsBuilt;
-// }
-//
-// public void setJcloudsObjectsBuilt(boolean isJcloudsObjectsBuilt) {
-// this.isJcloudsObjectsBuilt = isJcloudsObjectsBuilt;
-// }
-
public String getDisplayName() {
return displayName;
}
@@ -216,7 +208,6 @@ public class Cartridge implements Serializable{
}
public void reset(){
-// lastlyUsedIaas = null;
}
public List<String> getDeploymentDirs() {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e2c0a2a2/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 6533efb..b63a2a5 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
@@ -242,6 +242,10 @@ public class FasterLookUpDataHolder implements Serializable{
public List<Cartridge> getCartridges() {
return cartridges;
}
+
+ public void setCartridges(List<Cartridge> cartridges) {
+ this.cartridges = cartridges;
+ }
public Cartridge getCartridge(String cartridgeType) {
for (Cartridge cartridge : cartridges) {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e2c0a2a2/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
index 19c279b..bfc94b4 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
@@ -105,43 +105,33 @@ public class TopologyBuilder {
try {
TopologyManager.getInstance().acquireWriteLock();
service = topology.getService(registrant.getCartridgeType());
-// if (service == null) {
-// service = new Service(registrant.getClusterId());
-// Cluster cluster = new Cluster(registrant.getCartridgeType(),
-// registrant.getClusterId(),
-// registrant.getAutoScalerPolicyName());
-// cluster.setHostName(registrant.getHostName());
-// cluster.setTenantRange(registrant.getTenantRange());
-// cluster.setAutoscalePolicyName(registrant.getAutoScalerPolicyName());
-// service.addCluster(cluster);
-// topology.addService(service);
-// } else {
Properties props = CloudControllerUtil.toJavaUtilProperties(registrant.getProperties());
String property = props.getProperty(Constants.IS_LOAD_BALANCER);
boolean isLb = property != null ? Boolean.parseBoolean(property) : false;
Cluster cluster;
- if (service.clusterExists(registrant.getClusterId())) {
- //update the cluster
- cluster = service.getCluster(registrant.getClusterId());
- cluster.addHostName(registrant.getHostName());
- cluster.setAutoscalePolicyName(registrant.getAutoScalerPolicyName());
- cluster.setTenantRange(registrant.getTenantRange());
- cluster.setProperties(props);
- cluster.setLbCluster(isLb);
- } else {
- cluster = new Cluster(registrant.getCartridgeType(),
- registrant.getClusterId(),
- registrant.getAutoScalerPolicyName());
- cluster.addHostName(registrant.getHostName());
- cluster.setTenantRange(registrant.getTenantRange());
- cluster.setAutoscalePolicyName(registrant.getAutoScalerPolicyName());
- cluster.setProperties(props);
- cluster.setLbCluster(isLb);
- service.addCluster(cluster);
- }
-// }
+ if (service.clusterExists(registrant.getClusterId())) {
+ // update the cluster
+ cluster = service.getCluster(registrant.getClusterId());
+ cluster.addHostName(registrant.getHostName());
+ cluster.setAutoscalePolicyName(registrant.getAutoScalerPolicyName());
+ cluster.setTenantRange(registrant.getTenantRange());
+ cluster.setProperties(props);
+ cluster.setLbCluster(isLb);
+ cluster.setDeploymentPolicyName(registrant.getDeploymentPolicyName());
+
+ } else {
+ cluster =
+ new Cluster(registrant.getCartridgeType(), registrant.getClusterId(),
+ registrant.getAutoScalerPolicyName());
+ cluster.addHostName(registrant.getHostName());
+ cluster.setTenantRange(registrant.getTenantRange());
+ cluster.setProperties(props);
+ cluster.setLbCluster(isLb);
+ cluster.setDeploymentPolicyName(registrant.getDeploymentPolicyName());
+ service.addCluster(cluster);
+ }
TopologyManager.getInstance().updateTopology(topology);
TopologyEventSender.sendClusterCreatedEvent(registrant);