You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vg...@apache.org on 2011/11/28 01:08:51 UTC
svn commit: r1206932 - in
/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari:
controller/ datastore/ datastore/impl/
Author: vgogate
Date: Mon Nov 28 00:08:50 2011
New Revision: 1206932
URL: http://svn.apache.org/viewvc?rev=1206932&view=rev
Log:
AMBARI-138. Implement stack persistence
Modified:
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Cluster.java
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Controller.java
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Stacks.java
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/PersistentDataStore.java
incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/impl/ZookeeperDS.java
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Cluster.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Cluster.java?rev=1206932&r1=1206931&r2=1206932&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Cluster.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Cluster.java Mon Nov 28 00:08:50 2011
@@ -112,7 +112,7 @@ public class Cluster {
this.latestRevisionNumber = dataStore.storeClusterDefinition(c);
this.clusterDefinitionRevisionsList.put(this.latestRevisionNumber, c);
this.latestDefinition = c;
-
+
// find the plugins for the current definition of the cluster
loadPlugins(c);
}
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java?rev=1206932&r1=1206931&r2=1206932&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Clusters.java Mon Nov 28 00:08:50 2011
@@ -70,7 +70,7 @@ public class Clusters {
cluster123.setGoalState(ClusterState.CLUSTER_STATE_ATTIC);
List<String> activeServices = new ArrayList<String>();
activeServices.add("hdfs");
- activeServices.add("mapred");
+ //activeServices.add("mapred");
cluster123.setActiveServices(activeServices);
String nodes = "jt-nodex,nn-nodex,hostname-1x,hostname-2x,hostname-3x,"+
@@ -108,7 +108,7 @@ public class Clusters {
cluster124.setGoalState(ClusterState.CLUSTER_STATE_INACTIVE);
activeServices = new ArrayList<String>();
activeServices.add("hdfs");
- activeServices.add("mapred");
+ //activeServices.add("mapred");
cluster124.setActiveServices(activeServices);
nodes = "jt-node,nn-node,hostname-1,hostname-2,hostname-3,hostname-4,"+
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Controller.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Controller.java?rev=1206932&r1=1206931&r2=1206932&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Controller.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Controller.java Mon Nov 28 00:08:50 2011
@@ -112,11 +112,11 @@ public class Controller {
Nodes nodesCtx = Nodes.getInstance();
/*
- * Recover controller state for Clusters, Stacks and Nodes before
- * opening up the server to clients
+ * Recover controller state before oopening up the server to clients
+ * Restore stacks before clusters
*/
- clustersCtx.recoverClustersStateAfterRestart();
stacksCtx.recoverStacksAfterRestart();
+ clustersCtx.recoverClustersStateAfterRestart();
/*
* Start the server after controller state is recovered.
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Stacks.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Stacks.java?rev=1206932&r1=1206931&r2=1206932&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Stacks.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/controller/Stacks.java Mon Nov 28 00:08:50 2011
@@ -56,9 +56,15 @@ public class Stacks {
try {
JAXBContext jaxbContext =
JAXBContext.newInstance("org.apache.ambari.common.rest.entities");
- loadDummyStack(jaxbContext, "hadoop-security", 0);
- loadDummyStack(jaxbContext, "cluster123", 0);
- loadDummyStack(jaxbContext, "cluster124", 0);
+ if (!this.dataStore.stackExists("hadoop-security")) {
+ loadDummyStack(jaxbContext, "hadoop-security", 0);
+ }
+ if (!this.dataStore.stackExists("cluster123")) {
+ loadDummyStack(jaxbContext, "cluster123", 0);
+ }
+ if (!this.dataStore.stackExists("cluster124")) {
+ loadDummyStack(jaxbContext, "cluster124", 0);
+ }
//loadDummyStack(jaxbContext, "puppet1", 0);
} catch (JAXBException e) {
throw new RuntimeException("Can't create jaxb context", e);
@@ -111,8 +117,9 @@ public class Stacks {
* Check if stack exists. Names and latest version number is always
* cached in the memory
*/
- public boolean stackExists(String stackName) {
- if (!this.stacks.containsKey(stackName)) {
+ public boolean stackExists(String stackName) throws IOException {
+ if (!this.stacks.containsKey(stackName) &&
+ !this.dataStore.stackExists(stackName)) {
return false;
}
return true;
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/PersistentDataStore.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/PersistentDataStore.java?rev=1206932&r1=1206931&r2=1206932&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/PersistentDataStore.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/PersistentDataStore.java Mon Nov 28 00:08:50 2011
@@ -88,5 +88,10 @@ public interface PersistentDataStore {
* Delete stack
*/
public void deleteStack(String stackName) throws IOException;
+
+ /**
+ * Check if stack exists
+ */
+ boolean stackExists(String stackName) throws IOException;
}
Modified: incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/impl/ZookeeperDS.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/impl/ZookeeperDS.java?rev=1206932&r1=1206931&r2=1206932&view=diff
==============================================================================
--- incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/impl/ZookeeperDS.java (original)
+++ incubator/ambari/trunk/controller/src/main/java/org/apache/ambari/datastore/impl/ZookeeperDS.java Mon Nov 28 00:08:50 2011
@@ -338,6 +338,17 @@ public class ZookeeperDS implements Pers
}
}
+ @Override
+ public boolean stackExists(String stackName) throws IOException {
+ try {
+ if (zk.exists(ZOOKEEPER_STACKS_ROOT_PATH+"/"+stackName, false) == null) {
+ return false;
+ }
+ } catch (Exception e) {
+ throw new IOException(e);
+ }
+ return true;
+ }
@Override
public void process(WatchedEvent event) {