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/29 03:04:36 UTC
svn commit: r1207732 - in /incubator/ambari/trunk: CHANGES.txt
controller/src/main/java/org/apache/ambari/controller/Cluster.java
controller/src/main/java/org/apache/ambari/controller/Clusters.java
Author: vgogate
Date: Tue Nov 29 02:04:35 2011
New Revision: 1207732
URL: http://svn.apache.org/viewvc?rev=1207732&view=rev
Log:
AMBARI-144. Implement getInstallAndConfigureScript for a given revision of cluster definition.
Modified:
incubator/ambari/trunk/CHANGES.txt
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
Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1207732&r1=1207731&r2=1207732&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Tue Nov 29 02:04:35 2011
@@ -2,6 +2,8 @@ Ambari Change log
Release 0.1.0 - unreleased
+ AMBARI-144. Implement getInstallAndConfigureScript for a given revision of cluster definition. (vgogate)
+
AMBARI-143. Fixes an annotation issue in HeartBeat class (ddas)
AMBZRI-142. Add cluster must validate if requested nodes are pre-allocated to any other existing cluster (vgogate)
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=1207732&r1=1207731&r2=1207732&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 Tue Nov 29 02:04:35 2011
@@ -117,16 +117,6 @@ public class Cluster {
loadPlugins(c);
}
- /**
- * @return Add puppet configuration
- */
- public synchronized void updatePuppetConfiguration(String puppetConfig) throws Exception {
- //this.latestRevisionNumber = dataStore.storeClusterDefinition(c);
- //this.clusterDefinitionRevisionsList.put(this.latestRevisionNumber, c);
- //this.latestDefinition = c;
- }
-
-
/*
* Load plugins for the current definition of the cluster
*/
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=1207732&r1=1207731&r2=1207732&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 Tue Nov 29 02:04:35 2011
@@ -295,11 +295,10 @@ public class Clusters {
/*
* Create Puppet config
-
if (configChanged || updateNodeToRolesAssociation || updateNodesReservation) {
String puppetConfig = this.getPuppetConfigString (newcd);
- //cls.updatePuppetConfiguration(puppetConfig);
- }*/
+ cls.updatePuppetConfiguration(puppetConfig);
+ } */
/*
* Update the nodes reservation and node to roles association
@@ -312,6 +311,11 @@ public class Clusters {
}
/*
+ * Print puppet config
+ */
+ System.out.println(getInstallAndConfigureScript(clusterName, -1));
+
+ /*
* Invoke state machine event
*/
if(c.getGoalState().equals(ClusterState.CLUSTER_STATE_ACTIVE)) {
@@ -374,15 +378,6 @@ public class Clusters {
}
/*
- * TODO: Create and update the puppet configuration
- */
- String puppetConfig = this.getPuppetConfigString (cdef);
- System.out.println("==============================");
- System.out.println(puppetConfig);
- System.out.println("==============================");
-
-
- /*
* Persist the new cluster and add entry to cache
*/
Cluster cls = this.addClusterEntry(cdef, clsState);
@@ -403,6 +398,11 @@ public class Clusters {
}
/*
+ * Print puppet config
+ */
+ System.out.println(getInstallAndConfigureScript(clusterName, -1));
+
+ /*
* Create the cluster object with state machine &
* activate it if the goal state is ACTIVE
* TODO: Make sure createCluster is idempotent (i.e. if object already exists
@@ -719,16 +719,7 @@ public class Clusters {
}
return bp;
}
-
-
- /*
- * Get the deployment script for this clustername/revision combo
- */
- public String getInstallAndConfigureScript(String clusterName,
- int revision) {
- return ""; //TODO: fill
- }
-
+
/*
* Get the latest cluster definition
*/
@@ -874,7 +865,12 @@ public class Clusters {
}
}
- private String getPuppetConfigString (ClusterDefinition c) throws Exception {
+
+ /*
+ * Get the deployment script for this clustername/revision combo
+ */
+ public String getInstallAndConfigureScript(String clusterName, int revision) throws Exception {
+ ClusterDefinition c = getClusterByName (clusterName).getClusterDefinition(revision);
// TODO: ignore if comps or roles are not present in stack.
Stacks stacksCtx = Stacks.getInstance();
Stack stack = stacksCtx.getStack(c.getStackName(), Integer.parseInt(c.getStackRevision()));
@@ -882,21 +878,36 @@ public class Clusters {
if (stack.getComponents() != null) {
for (Component comp : stack.getComponents()) {
if (comp.getRoles() != null) {
- for (Role role : comp.getRoles()) {
+ for (int k=0; k<comp.getRoles().size(); k++) {
+ Role role = comp.getRoles().get(k);
//config = config + comp.getName()+"_"+role.getName()+" => { ";
config = config+role.getName()+" => { ";
if (role.getConfiguration() != null && role.getConfiguration().getCategory() != null) {
- for (ConfigurationCategory cat : role.getConfiguration().getCategory()) {
- config = config+"\""+cat.getName()+"\" => { ";
- if (cat.getProperty() != null) {
- for (Property p : cat.getProperty()) {
- config = config+p.getName()+" => "+p.getValue()+", ";
+ for (int j=0; j<role.getConfiguration().getCategory().size(); j++) {
+ ConfigurationCategory cat = role.getConfiguration().getCategory().get(j);
+ config = config+"\""+cat.getName()+"\" => { ";
+ if (cat.getProperty() != null) {
+ for (int i=0; i<cat.getProperty().size(); i++) {
+ Property p = cat.getProperty().get(i);
+ if (i == cat.getProperty().size()-1) {
+ config = config+p.getName()+" => "+p.getValue()+" ";
+ } else {
+ config = config+p.getName()+" => "+p.getValue()+", ";
+ }
}
}
- config = config +" }, \n";
+ if (j == role.getConfiguration().getCategory().size()-1) {
+ config = config +" } \n";
+ } else {
+ config = config +" }, \n";
+ }
}
}
- config = config + "}, \n";
+ if (k == comp.getRoles().size()-1) {
+ config = config + "} \n";
+ } else {
+ config = config + "}, \n";
+ }
}
}
}
@@ -904,15 +915,25 @@ public class Clusters {
config = config + "} \n";
config = config + "$role_to_nodes = { ";
- for (RoleToNodes roleToNodesEntry : c.getRoleToNodesMap()) {
+ for (int i=0; i<c.getRoleToNodesMap().size(); i++) {
+ RoleToNodes roleToNodesEntry = c.getRoleToNodesMap().get(i);
config = config + roleToNodesEntry.getRoleName()+ " => [";
- for (String host : this.getHostnamesFromRangeExpressions(roleToNodesEntry.getNodes())) {
- config = config + "\'"+host+"\',";
+ List<String> host_list = this.getHostnamesFromRangeExpressions(roleToNodesEntry.getNodes());
+ for (int j=0; j<host_list.size(); j++) {
+ String host = host_list.get(j);
+ if (j == host_list.size()-1) {
+ config = config + "\'"+host+"\'";
+ } else {
+ config = config + "\'"+host+"\',";
+ }
+ }
+ if (i == c.getRoleToNodesMap().size()-1) {
+ config = config + "] \n";
+ } else {
+ config = config + "], \n";
}
- config = config + "], \n";
}
- config = config + "} \n";
-
+ config = config + "} \n";
return config;
}
}