You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by od...@apache.org on 2013/10/11 19:37:51 UTC
git commit: AMBARI-3499. Refactor
RoleCommandOrder.initialize().(odiachenko)
Updated Branches:
refs/heads/trunk 4dd856eaa -> f1d232fb8
AMBARI-3499. Refactor RoleCommandOrder.initialize().(odiachenko)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/f1d232fb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/f1d232fb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/f1d232fb
Branch: refs/heads/trunk
Commit: f1d232fb88af5577160805dacd12d503ab41d514
Parents: 4dd856e
Author: Oleksandr Diachenko <od...@hortonworks.com>
Authored: Fri Oct 11 20:37:31 2013 +0300
Committer: Oleksandr Diachenko <od...@hortonworks.com>
Committed: Fri Oct 11 20:37:40 2013 +0300
----------------------------------------------------------------------
.../src/main/resources/role_command_order.json | 100 ---------------
ambari-server/pom.xml | 2 +-
.../server/api/services/AmbariMetaInfo.java | 1 +
.../server/api/util/StackExtensionHelper.java | 8 +-
.../server/configuration/Configuration.java | 19 ---
.../server/metadata/RoleCommandOrder.java | 45 +++++--
.../apache/ambari/server/state/StackInfo.java | 9 ++
.../src/main/resources/role_command_order.json | 100 +++++++++++++++
.../stacks/HDP/2.0.6/role_command_order.json | 100 +++++++++++++++
.../AmbariManagementControllerTest.java | 1 +
.../server/metadata/RoleCommandOrderTest.java | 27 ++++
.../ambari/server/metadata/RoleGraphTest.java | 126 +++----------------
.../server/orm/InMemoryDefaultTestModule.java | 2 -
.../server/stageplanner/TestStagePlanner.java | 106 ++--------------
.../stacks/HDP/2.0.6/role_command_order.json | 100 +++++++++++++++
15 files changed, 407 insertions(+), 339 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-common/src/main/resources/role_command_order.json
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/resources/role_command_order.json b/ambari-common/src/main/resources/role_command_order.json
deleted file mode 100644
index 307f211..0000000
--- a/ambari-common/src/main/resources/role_command_order.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "_comment" : "Record format:",
- "_comment" : "blockedRole-blockedCommand: [blockerRole1-blockerCommand1, blockerRole2-blockerCommand2, ...]",
- "general_deps" : {
- "_comment" : "dependencies for all cases",
- "NAGIOS_SERVER-INSTALL" : ["HIVE_CLIENT-INSTALL", "HCAT-INSTALL",
- "MAPREDUCE_CLIENT-INSTALL", "OOZIE_CLIENT-INSTALL"],
- "HBASE_MASTER-START": ["ZOOKEEPER_SERVER-START"],
- "HBASE_REGIONSERVER-START": ["HBASE_MASTER-START"],
- "OOZIE_SERVER-START": ["JOBTRACKER-START", "TASKTRACKER-START"],
- "WEBHCAT_SERVER-START": ["TASKTRACKER-START", "HIVE_SERVER-START"],
- "HIVE_METASTORE-START": ["MYSQL_SERVER-START"],
- "HIVE_SERVER-START": ["TASKTRACKER-START", "MYSQL_SERVER-START"],
- "HUE_SERVER-START": ["HIVE_SERVER-START", "HCAT-START", "OOZIE_SERVER-START"],
- "FLUME_SERVER-START": ["OOZIE_SERVER-START"],
- "NAGIOS_SERVER-START": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START",
- "GANGLIA_SERVER-START", "GANGLIA_MONITOR-START", "HCAT-START",
- "HIVE_SERVER-START", "HIVE_METASTORE-START", "HUE_SERVER-START",
- "JOBTRACKER-START", "TASKTRACKER-START", "ZOOKEEPER_SERVER-START",
- "MYSQL_SERVER-START", "OOZIE_SERVER-START", "PIG-START", "SQOOP-START",
- "WEBHCAT_SERVER-START", "FLUME_SERVER-START"],
- "MAPREDUCE_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
- "OOZIE_SERVICE_CHECK-EXECUTE": ["OOZIE_SERVER-START"],
- "WEBHCAT_SERVICE_CHECK-EXECUTE": ["WEBHCAT_SERVER-START"],
- "HBASE_SERVICE_CHECK-EXECUTE": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START"],
- "HIVE_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START", "HIVE_METASTORE-START"],
- "HCAT_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START"],
- "PIG_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
- "SQOOP_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
- "ZOOKEEPER_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
- "ZOOKEEPER_QUORUM_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
- "ZOOKEEPER_SERVER-STOP" : ["HBASE_MASTER-STOP", "HBASE_REGIONSERVER-STOP"],
- "HBASE_MASTER-STOP": ["HBASE_REGIONSERVER-STOP"],
- "TASKTRACKER-UPGRADE": ["JOBTRACKER-UPGRADE"],
- "MAPREDUCE_CLIENT-UPGRADE": ["TASKTRACKER-UPGRADE", "JOBTRACKER-UPGRADE"],
- "ZOOKEEPER_SERVER-UPGRADE": ["MAPREDUCE_CLIENT-UPGRADE"],
- "ZOOKEEPER_CLIENT-UPGRADE": ["ZOOKEEPER_SERVER-UPGRADE"],
- "HBASE_MASTER-UPGRADE": ["ZOOKEEPER_CLIENT-UPGRADE"],
- "HBASE_REGIONSERVER-UPGRADE": ["HBASE_MASTER-UPGRADE"],
- "HBASE_CLIENT-UPGRADE": ["HBASE_REGIONSERVER-UPGRADE"],
- "HIVE_SERVER-UPGRADE" : ["HBASE_CLIENT-UPGRADE"],
- "HIVE_METASTORE-UPGRADE" : ["HIVE_SERVER-UPGRADE"],
- "MYSQL_SERVER-UPGRADE": ["HIVE_METASTORE-UPGRADE"],
- "HIVE_CLIENT-UPGRADE": ["MYSQL_SERVER-UPGRADE"],
- "HCAT-UPGRADE": ["HIVE_CLIENT-UPGRADE"],
- "OOZIE_SERVER-UPGRADE" : ["HCAT-UPGRADE"],
- "OOZIE_CLIENT-UPGRADE" : ["OOZIE_SERVER-UPGRADE"],
- "WEBHCAT_SERVER-UPGRADE" : ["OOZIE_CLIENT-UPGRADE"],
- "PIG-UPGRADE" : ["WEBHCAT_SERVER-UPGRADE"],
- "SQOOP-UPGRADE" : ["PIG-UPGRADE"],
- "NAGIOS_SERVER-UPGRADE" : ["SQOOP-UPGRADE"],
- "GANGLIA_SERVER-UPGRADE" : ["NAGIOS_SERVER-UPGRADE"],
- "GANGLIA_MONITOR-UPGRADE" : ["GANGLIA_SERVER-UPGRADE"]
- },
- "_comment" : "HCFS-specific dependencies",
- "optional_hcfs": {
- "HBASE_MASTER-START": ["PEERSTATUS-START"],
- "JOBTRACKER-START": ["PEERSTATUS-START"],
- "TASKTRACKER-START": ["PEERSTATUS-START"],
- "HCFS_SERVICE_CHECK-EXECUTE": ["PEERSTATUS-START"],
- "JOBTRACKER-UPGRADE": ["HCFS_CLIENT-UPGRADE"]
- },
- "_comment" : "Dependencies that are used when HCFS is not present in cluster",
- "optional_no_hcfs": {
- "SECONDARY_NAMENODE-START": ["NAMENODE-START"],
- "RESOURCEMANAGER-START": ["NAMENODE-START", "DATANODE-START"],
- "NODEMANAGER-START": ["NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START"],
- "HISTORYSERVER-START": ["NAMENODE-START", "DATANODE-START"],
- "HBASE_MASTER-START": ["NAMENODE-START", "DATANODE-START"],
- "JOBTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
- "TASKTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
- "HIVE_SERVER-START": ["DATANODE-START"],
- "WEBHCAT_SERVER-START": ["DATANODE-START"],
- "NAGIOS_SERVER-START": ["NAMENODE-START", "SECONDARY_NAMENODE-START",
- "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START", "HISTORYSERVER-START"],
- "HDFS_SERVICE_CHECK-EXECUTE": ["NAMENODE-START", "DATANODE-START",
- "SECONDARY_NAMENODE-START"],
- "MAPREDUCE2_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START",
- "RESOURCEMANAGER-START", "HISTORYSERVER-START", "YARN_SERVICE_CHECK-EXECUTE"],
- "YARN_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START", "RESOURCEMANAGER-START"],
- "RESOURCEMANAGER_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START"],
- "PIG_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START", "NODEMANAGER-START"],
- "NAMENODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
- "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
- "DATANODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
- "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
- "SECONDARY_NAMENODE-UPGRADE": ["NAMENODE-UPGRADE"],
- "DATANODE-UPGRADE": ["SECONDARY_NAMENODE-UPGRADE"],
- "HDFS_CLIENT-UPGRADE": ["DATANODE-UPGRADE"],
- "JOBTRACKER-UPGRADE": ["HDFS_CLIENT-UPGRADE"]
- },
- "_comment" : "Dependencies that are used in HA NameNode cluster",
- "optional_ha": {
- "NAMENODE-START": ["JOURNALNODE-START", "ZOOKEEPER_SERVER-START"],
- "ZKFC-START": ["NAMENODE-START"],
- "NAGIOS_SERVER-START": ["ZKFC-START", "JOURNALNODE-START"],
- "HDFS_SERVICE_CHECK-EXECUTE": ["ZKFC-START"]
- }
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/pom.xml
----------------------------------------------------------------------
diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml
index a409324..ad3f53d 100644
--- a/ambari-server/pom.xml
+++ b/ambari-server/pom.xml
@@ -316,7 +316,7 @@
</source>
<source>
<!-- This file is also included into agent rpm-->
- <location>../ambari-common/src/main/resources/role_command_order.json</location>
+ <location>src/main/resources/role_command_order.json</location>
</source>
</sources>
</mapping>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
index 6e2b731..86266d3 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java
@@ -68,6 +68,7 @@ public class AmbariMetaInfo {
public static final String SERVICE_METAINFO_FILE_NAME = "metainfo.xml";
public static final String SERVICE_CONFIG_FOLDER_NAME = "configuration";
public static final String SERVICE_CONFIG_FILE_NAME_POSTFIX = ".xml";
+ public static final String RCO_FILE_NAME = "role_command_order.json";
private static final String REPOSITORY_FILE_NAME = "repoinfo.xml";
private static final String REPOSITORY_FOLDER_NAME = "repos";
private static final String REPOSITORY_XML_PROPERTY_BASEURL = "baseurl";
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
index cb18373..8feca20 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/util/StackExtensionHelper.java
@@ -31,19 +31,14 @@ import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
-import org.apache.ambari.server.orm.dao.MetainfoDAO;
-import org.apache.ambari.server.orm.entities.MetainfoEntity;
import org.apache.ambari.server.state.ComponentInfo;
import org.apache.ambari.server.state.PropertyInfo;
-import org.apache.ambari.server.state.RepositoryInfo;
import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.StackInfo;
import org.apache.ambari.server.state.stack.ConfigurationXml;
import org.apache.ambari.server.state.stack.RepositoryXml;
import org.apache.ambari.server.state.stack.ServiceMetainfoXml;
import org.apache.ambari.server.state.stack.StackMetainfoXml;
-import org.apache.ambari.server.state.stack.RepositoryXml.Os;
-import org.apache.ambari.server.state.stack.RepositoryXml.Repo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -272,6 +267,9 @@ public class StackExtensionHelper {
stackInfo.setMinUpgradeVersion(smx.getVersion().getUpgrade());
stackInfo.setActive(smx.getVersion().isActive());
stackInfo.setParentStackVersion(smx.getExtends());
+ String rcoFileLocation = stackVersionFolder.getAbsolutePath() + File.separator + AmbariMetaInfo.RCO_FILE_NAME;
+ if (new File(rcoFileLocation).exists())
+ stackInfo.setRcoFileLocation(rcoFileLocation);
}
try {
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
index 1684427..59404fe 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
@@ -248,22 +248,6 @@ public class Configuration {
public static final String MASTER_KEY_ENV_PROP =
"AMBARI_SECURITY_MASTER_KEY";
public static final String MASTER_KEY_FILENAME_DEFAULT = "master";
-
- /**
- * File role_command_order.json
- */
- public static final String RCO_FILE_LOCATION_KEY = "server.rco.file";
-
- /**
- * Location of role_command_order.json in production system
- */
- public static final String RCO_FILE_LOCATION_DEFAULT = "/var/lib/ambari-server/" +
- "resources/role_command_order.json".replace("/", File.separator);
- /**
- * Location of role_command_order.json when tests are running
- */
- public static final String RCO_FILE_LOCATION_TEST = "../ambari-common/src/" +
- "main/resources/role_command_order.json".replace("/", File.separator);
/**
* Key for repo validation suffixes.
@@ -341,9 +325,6 @@ public class Configuration {
configsMap.put(JAVA_HOME_KEY, properties.getProperty(
JAVA_HOME_KEY, JAVA_HOME_DEFAULT));
- configsMap.put(RCO_FILE_LOCATION_KEY, properties.getProperty(
- RCO_FILE_LOCATION_KEY, RCO_FILE_LOCATION_DEFAULT));
-
File passFile = new File(configsMap.get(SRVR_KSTR_DIR_KEY) + File.separator
+ configsMap.get(SRVR_CRT_PASS_FILE_KEY));
String password = null;
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java b/ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java
index e3b06a8..26ba410 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java
@@ -23,10 +23,14 @@ import java.util.*;
import com.google.inject.Inject;
import org.apache.ambari.server.Role;
import org.apache.ambari.server.RoleCommand;
+import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.stageplanner.RoleGraphNode;
import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.StackId;
+import org.apache.ambari.server.state.StackInfo;
import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.type.TypeReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.ambari.server.AmbariException;
@@ -38,6 +42,7 @@ import org.apache.ambari.server.AmbariException;
public class RoleCommandOrder {
@Inject Configuration configs;
+ @Inject AmbariMetaInfo ambariMetaInfo;
private final static Logger LOG =
LoggerFactory.getLogger(RoleCommandOrder.class);
@@ -47,6 +52,7 @@ public class RoleCommandOrder {
private final static String NO_HCFS_DEPS_KEY = "optional_no_hcfs";
private final static String HA_DEPS_KEY = "optional_ha";
private final static String COMMENT_STR = "_comment";
+ private static final String ROLE_COMMAND_ORDER_FILE = "role_command_order.json";
static class RoleCommandPair {
Role role;
@@ -118,11 +124,17 @@ public class RoleCommandOrder {
this.dependencies.get(rcp1).add(rcp2);
}
- private File getRCOFile() {
- Map<String, String> configsMap = configs.getConfigsMap();
- String rcoLocation = configsMap.get(Configuration.RCO_FILE_LOCATION_KEY);
- File rcoFile = new File(rcoLocation);
- return rcoFile;
+ private File getRCOFile(String stackName, String stackVersion) {
+ StackInfo stackInfo;
+ String rcoFileLocation = null;
+ try {
+ stackInfo = ambariMetaInfo.getStackInfo(stackName, stackVersion);
+ rcoFileLocation = stackInfo.getRcoFileLocation();
+ } catch (AmbariException e) {
+ LOG.warn("Error getting stack info for :" + stackName + "-" + stackVersion);
+ }
+
+ return rcoFileLocation == null ? null : new File(rcoFileLocation);
}
void addDependencies(Map<String, Object> jsonSection) {
@@ -170,13 +182,28 @@ public class RoleCommandOrder {
// Read data from JSON
ObjectMapper mapper = new ObjectMapper();
- File rcoFile = getRCOFile();
+ StackId currentStackVersion = cluster.getCurrentStackVersion();
+ String stackName = currentStackVersion.getStackName();
+ String stackVersion = currentStackVersion.getStackVersion();
+ File rcoFile = getRCOFile(stackName, stackVersion);
Map<String,Object> userData = null;
+
try {
- userData = mapper.readValue(rcoFile, Map.class);
+
+ TypeReference<Map<String,Object>> rcoElementTypeReference = new TypeReference<Map<String,Object>>() {};
+
+ if (rcoFile != null) {
+ userData = mapper.readValue(rcoFile, rcoElementTypeReference);
+ LOG.info("Role command order info was loaded from file: " + rcoFile.getAbsolutePath());
+ } else {
+ InputStream rcoInputStream = ClassLoader.getSystemResourceAsStream(ROLE_COMMAND_ORDER_FILE);
+ userData = mapper.readValue(rcoInputStream, rcoElementTypeReference);
+ LOG.info("Role command order info was loaded from classpath: " +
+ ClassLoader.getSystemResource(ROLE_COMMAND_ORDER_FILE));
+ }
+
} catch (IOException e) {
- String errorMsg = String.format("Can not read file %s", rcoFile.getAbsolutePath());
- LOG.error(errorMsg, e);
+ LOG.error("Can not read role command order info", e);
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
index 896a969..6affad9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
@@ -28,6 +28,7 @@ public class StackInfo {
private String version;
private String minUpgradeVersion;
private boolean active;
+ private String rcoFileLocation;
private List<RepositoryInfo> repositories;
private List<ServiceInfo> services;
private String parentStackVersion;
@@ -136,4 +137,12 @@ public class StackInfo {
public void setParentStackVersion(String parentStackVersion) {
this.parentStackVersion = parentStackVersion;
}
+
+ public String getRcoFileLocation() {
+ return rcoFileLocation;
+ }
+
+ public void setRcoFileLocation(String rcoFileLocation) {
+ this.rcoFileLocation = rcoFileLocation;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/resources/role_command_order.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/role_command_order.json b/ambari-server/src/main/resources/role_command_order.json
new file mode 100644
index 0000000..307f211
--- /dev/null
+++ b/ambari-server/src/main/resources/role_command_order.json
@@ -0,0 +1,100 @@
+{
+ "_comment" : "Record format:",
+ "_comment" : "blockedRole-blockedCommand: [blockerRole1-blockerCommand1, blockerRole2-blockerCommand2, ...]",
+ "general_deps" : {
+ "_comment" : "dependencies for all cases",
+ "NAGIOS_SERVER-INSTALL" : ["HIVE_CLIENT-INSTALL", "HCAT-INSTALL",
+ "MAPREDUCE_CLIENT-INSTALL", "OOZIE_CLIENT-INSTALL"],
+ "HBASE_MASTER-START": ["ZOOKEEPER_SERVER-START"],
+ "HBASE_REGIONSERVER-START": ["HBASE_MASTER-START"],
+ "OOZIE_SERVER-START": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "WEBHCAT_SERVER-START": ["TASKTRACKER-START", "HIVE_SERVER-START"],
+ "HIVE_METASTORE-START": ["MYSQL_SERVER-START"],
+ "HIVE_SERVER-START": ["TASKTRACKER-START", "MYSQL_SERVER-START"],
+ "HUE_SERVER-START": ["HIVE_SERVER-START", "HCAT-START", "OOZIE_SERVER-START"],
+ "FLUME_SERVER-START": ["OOZIE_SERVER-START"],
+ "NAGIOS_SERVER-START": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START",
+ "GANGLIA_SERVER-START", "GANGLIA_MONITOR-START", "HCAT-START",
+ "HIVE_SERVER-START", "HIVE_METASTORE-START", "HUE_SERVER-START",
+ "JOBTRACKER-START", "TASKTRACKER-START", "ZOOKEEPER_SERVER-START",
+ "MYSQL_SERVER-START", "OOZIE_SERVER-START", "PIG-START", "SQOOP-START",
+ "WEBHCAT_SERVER-START", "FLUME_SERVER-START"],
+ "MAPREDUCE_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "OOZIE_SERVICE_CHECK-EXECUTE": ["OOZIE_SERVER-START"],
+ "WEBHCAT_SERVICE_CHECK-EXECUTE": ["WEBHCAT_SERVER-START"],
+ "HBASE_SERVICE_CHECK-EXECUTE": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START"],
+ "HIVE_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START", "HIVE_METASTORE-START"],
+ "HCAT_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START"],
+ "PIG_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "SQOOP_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "ZOOKEEPER_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
+ "ZOOKEEPER_QUORUM_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
+ "ZOOKEEPER_SERVER-STOP" : ["HBASE_MASTER-STOP", "HBASE_REGIONSERVER-STOP"],
+ "HBASE_MASTER-STOP": ["HBASE_REGIONSERVER-STOP"],
+ "TASKTRACKER-UPGRADE": ["JOBTRACKER-UPGRADE"],
+ "MAPREDUCE_CLIENT-UPGRADE": ["TASKTRACKER-UPGRADE", "JOBTRACKER-UPGRADE"],
+ "ZOOKEEPER_SERVER-UPGRADE": ["MAPREDUCE_CLIENT-UPGRADE"],
+ "ZOOKEEPER_CLIENT-UPGRADE": ["ZOOKEEPER_SERVER-UPGRADE"],
+ "HBASE_MASTER-UPGRADE": ["ZOOKEEPER_CLIENT-UPGRADE"],
+ "HBASE_REGIONSERVER-UPGRADE": ["HBASE_MASTER-UPGRADE"],
+ "HBASE_CLIENT-UPGRADE": ["HBASE_REGIONSERVER-UPGRADE"],
+ "HIVE_SERVER-UPGRADE" : ["HBASE_CLIENT-UPGRADE"],
+ "HIVE_METASTORE-UPGRADE" : ["HIVE_SERVER-UPGRADE"],
+ "MYSQL_SERVER-UPGRADE": ["HIVE_METASTORE-UPGRADE"],
+ "HIVE_CLIENT-UPGRADE": ["MYSQL_SERVER-UPGRADE"],
+ "HCAT-UPGRADE": ["HIVE_CLIENT-UPGRADE"],
+ "OOZIE_SERVER-UPGRADE" : ["HCAT-UPGRADE"],
+ "OOZIE_CLIENT-UPGRADE" : ["OOZIE_SERVER-UPGRADE"],
+ "WEBHCAT_SERVER-UPGRADE" : ["OOZIE_CLIENT-UPGRADE"],
+ "PIG-UPGRADE" : ["WEBHCAT_SERVER-UPGRADE"],
+ "SQOOP-UPGRADE" : ["PIG-UPGRADE"],
+ "NAGIOS_SERVER-UPGRADE" : ["SQOOP-UPGRADE"],
+ "GANGLIA_SERVER-UPGRADE" : ["NAGIOS_SERVER-UPGRADE"],
+ "GANGLIA_MONITOR-UPGRADE" : ["GANGLIA_SERVER-UPGRADE"]
+ },
+ "_comment" : "HCFS-specific dependencies",
+ "optional_hcfs": {
+ "HBASE_MASTER-START": ["PEERSTATUS-START"],
+ "JOBTRACKER-START": ["PEERSTATUS-START"],
+ "TASKTRACKER-START": ["PEERSTATUS-START"],
+ "HCFS_SERVICE_CHECK-EXECUTE": ["PEERSTATUS-START"],
+ "JOBTRACKER-UPGRADE": ["HCFS_CLIENT-UPGRADE"]
+ },
+ "_comment" : "Dependencies that are used when HCFS is not present in cluster",
+ "optional_no_hcfs": {
+ "SECONDARY_NAMENODE-START": ["NAMENODE-START"],
+ "RESOURCEMANAGER-START": ["NAMENODE-START", "DATANODE-START"],
+ "NODEMANAGER-START": ["NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START"],
+ "HISTORYSERVER-START": ["NAMENODE-START", "DATANODE-START"],
+ "HBASE_MASTER-START": ["NAMENODE-START", "DATANODE-START"],
+ "JOBTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
+ "TASKTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
+ "HIVE_SERVER-START": ["DATANODE-START"],
+ "WEBHCAT_SERVER-START": ["DATANODE-START"],
+ "NAGIOS_SERVER-START": ["NAMENODE-START", "SECONDARY_NAMENODE-START",
+ "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START", "HISTORYSERVER-START"],
+ "HDFS_SERVICE_CHECK-EXECUTE": ["NAMENODE-START", "DATANODE-START",
+ "SECONDARY_NAMENODE-START"],
+ "MAPREDUCE2_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START",
+ "RESOURCEMANAGER-START", "HISTORYSERVER-START", "YARN_SERVICE_CHECK-EXECUTE"],
+ "YARN_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START", "RESOURCEMANAGER-START"],
+ "RESOURCEMANAGER_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START"],
+ "PIG_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START", "NODEMANAGER-START"],
+ "NAMENODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
+ "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
+ "DATANODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
+ "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
+ "SECONDARY_NAMENODE-UPGRADE": ["NAMENODE-UPGRADE"],
+ "DATANODE-UPGRADE": ["SECONDARY_NAMENODE-UPGRADE"],
+ "HDFS_CLIENT-UPGRADE": ["DATANODE-UPGRADE"],
+ "JOBTRACKER-UPGRADE": ["HDFS_CLIENT-UPGRADE"]
+ },
+ "_comment" : "Dependencies that are used in HA NameNode cluster",
+ "optional_ha": {
+ "NAMENODE-START": ["JOURNALNODE-START", "ZOOKEEPER_SERVER-START"],
+ "ZKFC-START": ["NAMENODE-START"],
+ "NAGIOS_SERVER-START": ["ZKFC-START", "JOURNALNODE-START"],
+ "HDFS_SERVICE_CHECK-EXECUTE": ["ZKFC-START"]
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/main/resources/stacks/HDP/2.0.6/role_command_order.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/role_command_order.json b/ambari-server/src/main/resources/stacks/HDP/2.0.6/role_command_order.json
new file mode 100644
index 0000000..307f211
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/role_command_order.json
@@ -0,0 +1,100 @@
+{
+ "_comment" : "Record format:",
+ "_comment" : "blockedRole-blockedCommand: [blockerRole1-blockerCommand1, blockerRole2-blockerCommand2, ...]",
+ "general_deps" : {
+ "_comment" : "dependencies for all cases",
+ "NAGIOS_SERVER-INSTALL" : ["HIVE_CLIENT-INSTALL", "HCAT-INSTALL",
+ "MAPREDUCE_CLIENT-INSTALL", "OOZIE_CLIENT-INSTALL"],
+ "HBASE_MASTER-START": ["ZOOKEEPER_SERVER-START"],
+ "HBASE_REGIONSERVER-START": ["HBASE_MASTER-START"],
+ "OOZIE_SERVER-START": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "WEBHCAT_SERVER-START": ["TASKTRACKER-START", "HIVE_SERVER-START"],
+ "HIVE_METASTORE-START": ["MYSQL_SERVER-START"],
+ "HIVE_SERVER-START": ["TASKTRACKER-START", "MYSQL_SERVER-START"],
+ "HUE_SERVER-START": ["HIVE_SERVER-START", "HCAT-START", "OOZIE_SERVER-START"],
+ "FLUME_SERVER-START": ["OOZIE_SERVER-START"],
+ "NAGIOS_SERVER-START": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START",
+ "GANGLIA_SERVER-START", "GANGLIA_MONITOR-START", "HCAT-START",
+ "HIVE_SERVER-START", "HIVE_METASTORE-START", "HUE_SERVER-START",
+ "JOBTRACKER-START", "TASKTRACKER-START", "ZOOKEEPER_SERVER-START",
+ "MYSQL_SERVER-START", "OOZIE_SERVER-START", "PIG-START", "SQOOP-START",
+ "WEBHCAT_SERVER-START", "FLUME_SERVER-START"],
+ "MAPREDUCE_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "OOZIE_SERVICE_CHECK-EXECUTE": ["OOZIE_SERVER-START"],
+ "WEBHCAT_SERVICE_CHECK-EXECUTE": ["WEBHCAT_SERVER-START"],
+ "HBASE_SERVICE_CHECK-EXECUTE": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START"],
+ "HIVE_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START", "HIVE_METASTORE-START"],
+ "HCAT_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START"],
+ "PIG_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "SQOOP_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "ZOOKEEPER_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
+ "ZOOKEEPER_QUORUM_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
+ "ZOOKEEPER_SERVER-STOP" : ["HBASE_MASTER-STOP", "HBASE_REGIONSERVER-STOP"],
+ "HBASE_MASTER-STOP": ["HBASE_REGIONSERVER-STOP"],
+ "TASKTRACKER-UPGRADE": ["JOBTRACKER-UPGRADE"],
+ "MAPREDUCE_CLIENT-UPGRADE": ["TASKTRACKER-UPGRADE", "JOBTRACKER-UPGRADE"],
+ "ZOOKEEPER_SERVER-UPGRADE": ["MAPREDUCE_CLIENT-UPGRADE"],
+ "ZOOKEEPER_CLIENT-UPGRADE": ["ZOOKEEPER_SERVER-UPGRADE"],
+ "HBASE_MASTER-UPGRADE": ["ZOOKEEPER_CLIENT-UPGRADE"],
+ "HBASE_REGIONSERVER-UPGRADE": ["HBASE_MASTER-UPGRADE"],
+ "HBASE_CLIENT-UPGRADE": ["HBASE_REGIONSERVER-UPGRADE"],
+ "HIVE_SERVER-UPGRADE" : ["HBASE_CLIENT-UPGRADE"],
+ "HIVE_METASTORE-UPGRADE" : ["HIVE_SERVER-UPGRADE"],
+ "MYSQL_SERVER-UPGRADE": ["HIVE_METASTORE-UPGRADE"],
+ "HIVE_CLIENT-UPGRADE": ["MYSQL_SERVER-UPGRADE"],
+ "HCAT-UPGRADE": ["HIVE_CLIENT-UPGRADE"],
+ "OOZIE_SERVER-UPGRADE" : ["HCAT-UPGRADE"],
+ "OOZIE_CLIENT-UPGRADE" : ["OOZIE_SERVER-UPGRADE"],
+ "WEBHCAT_SERVER-UPGRADE" : ["OOZIE_CLIENT-UPGRADE"],
+ "PIG-UPGRADE" : ["WEBHCAT_SERVER-UPGRADE"],
+ "SQOOP-UPGRADE" : ["PIG-UPGRADE"],
+ "NAGIOS_SERVER-UPGRADE" : ["SQOOP-UPGRADE"],
+ "GANGLIA_SERVER-UPGRADE" : ["NAGIOS_SERVER-UPGRADE"],
+ "GANGLIA_MONITOR-UPGRADE" : ["GANGLIA_SERVER-UPGRADE"]
+ },
+ "_comment" : "HCFS-specific dependencies",
+ "optional_hcfs": {
+ "HBASE_MASTER-START": ["PEERSTATUS-START"],
+ "JOBTRACKER-START": ["PEERSTATUS-START"],
+ "TASKTRACKER-START": ["PEERSTATUS-START"],
+ "HCFS_SERVICE_CHECK-EXECUTE": ["PEERSTATUS-START"],
+ "JOBTRACKER-UPGRADE": ["HCFS_CLIENT-UPGRADE"]
+ },
+ "_comment" : "Dependencies that are used when HCFS is not present in cluster",
+ "optional_no_hcfs": {
+ "SECONDARY_NAMENODE-START": ["NAMENODE-START"],
+ "RESOURCEMANAGER-START": ["NAMENODE-START", "DATANODE-START"],
+ "NODEMANAGER-START": ["NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START"],
+ "HISTORYSERVER-START": ["NAMENODE-START", "DATANODE-START"],
+ "HBASE_MASTER-START": ["NAMENODE-START", "DATANODE-START"],
+ "JOBTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
+ "TASKTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
+ "HIVE_SERVER-START": ["DATANODE-START"],
+ "WEBHCAT_SERVER-START": ["DATANODE-START"],
+ "NAGIOS_SERVER-START": ["NAMENODE-START", "SECONDARY_NAMENODE-START",
+ "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START", "HISTORYSERVER-START"],
+ "HDFS_SERVICE_CHECK-EXECUTE": ["NAMENODE-START", "DATANODE-START",
+ "SECONDARY_NAMENODE-START"],
+ "MAPREDUCE2_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START",
+ "RESOURCEMANAGER-START", "HISTORYSERVER-START", "YARN_SERVICE_CHECK-EXECUTE"],
+ "YARN_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START", "RESOURCEMANAGER-START"],
+ "RESOURCEMANAGER_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START"],
+ "PIG_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START", "NODEMANAGER-START"],
+ "NAMENODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
+ "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
+ "DATANODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
+ "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
+ "SECONDARY_NAMENODE-UPGRADE": ["NAMENODE-UPGRADE"],
+ "DATANODE-UPGRADE": ["SECONDARY_NAMENODE-UPGRADE"],
+ "HDFS_CLIENT-UPGRADE": ["DATANODE-UPGRADE"],
+ "JOBTRACKER-UPGRADE": ["HDFS_CLIENT-UPGRADE"]
+ },
+ "_comment" : "Dependencies that are used in HA NameNode cluster",
+ "optional_ha": {
+ "NAMENODE-START": ["JOURNALNODE-START", "ZOOKEEPER_SERVER-START"],
+ "ZKFC-START": ["NAMENODE-START"],
+ "NAGIOS_SERVER-START": ["ZKFC-START", "JOURNALNODE-START"],
+ "HDFS_SERVICE_CHECK-EXECUTE": ["ZKFC-START"]
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
index a18bcc6..96adc3c 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
@@ -3527,6 +3527,7 @@ public class AmbariManagementControllerTest {
Cluster cluster = clusters.getCluster("c1");
cluster.setDesiredStackVersion(new StackId("HDP-0.1"));
+ cluster.setCurrentStackVersion(new StackId("HDP-0.1"));
ConfigFactory cf = injector.getInstance(ConfigFactory.class);
Config config1 = cf.createNew(cluster, "global",
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleCommandOrderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleCommandOrderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleCommandOrderTest.java
index 8056317..5b36299 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleCommandOrderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleCommandOrderTest.java
@@ -38,6 +38,7 @@ import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.ServiceComponent;
+import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.cluster.ClusterImpl;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonMethod;
@@ -79,6 +80,7 @@ public class RoleCommandOrderTest {
RoleCommandOrder rco = injector.getInstance(RoleCommandOrder.class);
ClusterImpl cluster = createMock(ClusterImpl.class);
Service service = createMock(Service.class);
+ expect(cluster.getCurrentStackVersion()).andReturn(new StackId("HDP", "2.0.6"));
expect(cluster.getService("HCFS")).andReturn(service);
expect(cluster.getService("HDFS")).andReturn(null);
replay(cluster);
@@ -127,6 +129,7 @@ public class RoleCommandOrderTest {
expect(cluster.getService("HDFS")).andReturn(hdfsService).atLeastOnce();
expect(hdfsService.getServiceComponent("JOURNALNODE")).andReturn(null);
+ expect(cluster.getCurrentStackVersion()).andReturn(new StackId("HDP", "2.0.6"));
replay(cluster);
replay(hdfsService);
@@ -170,6 +173,7 @@ public class RoleCommandOrderTest {
expect(cluster.getService("HDFS")).andReturn(hdfsService).atLeastOnce();
expect(hdfsService.getServiceComponent("JOURNALNODE")).andReturn(journalnodeSC);
+ expect(cluster.getCurrentStackVersion()).andReturn(new StackId("HDP", "2.0.6"));
replay(cluster);
replay(hdfsService);
@@ -225,7 +229,30 @@ public class RoleCommandOrderTest {
assertEquals(expected, dump);
}
+
+
+ @Test
+ public void testInitializeDefault() throws IOException {
+ RoleCommandOrder rco = injector.getInstance(RoleCommandOrder.class);
+ ClusterImpl cluster = createMock(ClusterImpl.class);
+ expect(cluster.getService("HCFS")).andReturn(null);
+
+ Service hdfsService = createMock(Service.class);
+
+ expect(cluster.getService("HDFS")).andReturn(hdfsService).atLeastOnce();
+ expect(hdfsService.getServiceComponent("JOURNALNODE")).andReturn(null);
+ //There is no rco file in this stack, should use default
+ expect(cluster.getCurrentStackVersion()).andReturn(new StackId("HDP", "2.0.5"));
+ replay(cluster);
+ replay(hdfsService);
+
+ rco.initialize(cluster);
+
+ verify(cluster);
+ verify(hdfsService);
+ }
+
private boolean dependenciesContainBlockedRole(Map<RoleCommandPair,
Set<RoleCommandPair>> deps, Role blocked) {
for (RoleCommandPair blockedPair : deps.keySet()) {
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleGraphTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleGraphTest.java b/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleGraphTest.java
index 924f181..9b3b586 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleGraphTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/metadata/RoleGraphTest.java
@@ -18,10 +18,6 @@
package org.apache.ambari.server.metadata;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -32,111 +28,30 @@ import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.Role;
import org.apache.ambari.server.RoleCommand;
import org.apache.ambari.server.stageplanner.RoleGraphNode;
+import org.junit.After;
import org.junit.Test;
-import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
-import org.apache.ambari.server.orm.entities.HostEntity;
-import org.apache.ambari.server.state.HostState;
-import org.apache.ambari.server.orm.entities.HostStateEntity;
-import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.state.StackId;
-import com.google.gson.Gson;
+
import com.google.inject.Guice;
import com.google.inject.Injector;
-import org.apache.ambari.server.orm.GuiceJpaInitializer;
-import org.apache.ambari.server.state.cluster.ClusterImpl;
import com.google.inject.persist.PersistService;
+
+import org.apache.ambari.server.state.cluster.ClusterImpl;
+import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
-import org.junit.After;
import org.junit.Before;
public class RoleGraphTest {
+
private Injector injector;
-
- public ClusterEntity createDummyData() {
- ClusterEntity clusterEntity = new ClusterEntity();
- clusterEntity.setClusterName("test_cluster1");
- clusterEntity.setClusterInfo("test_cluster_info1");
- clusterEntity.setClusterId(1l);
-
- HostEntity host1 = new HostEntity();
- HostEntity host2 = new HostEntity();
- HostEntity host3 = new HostEntity();
-
- host1.setHostName("test_host1");
- host2.setHostName("test_host2");
- host3.setHostName("test_host3");
- host1.setIpv4("192.168.0.1");
- host2.setIpv4("192.168.0.2");
- host3.setIpv4("192.168.0.3");
-
- List<HostEntity> hostEntities = new ArrayList<HostEntity>();
- hostEntities.add(host1);
- hostEntities.add(host2);
-
- clusterEntity.setHostEntities(hostEntities);
- clusterEntity.setClusterConfigEntities(Collections.EMPTY_LIST);
- //both sides of relation should be set when modifying in runtime
- host1.setClusterEntities(Arrays.asList(clusterEntity));
- host2.setClusterEntities(Arrays.asList(clusterEntity));
-
- HostStateEntity hostStateEntity1 = new HostStateEntity();
- hostStateEntity1.setCurrentState(HostState.HEARTBEAT_LOST);
- hostStateEntity1.setHostEntity(host1);
- HostStateEntity hostStateEntity2 = new HostStateEntity();
- hostStateEntity2.setCurrentState(HostState.HEALTHY);
- hostStateEntity2.setHostEntity(host2);
- host1.setHostStateEntity(hostStateEntity1);
- host2.setHostStateEntity(hostStateEntity2);
-
- ClusterServiceEntity clusterServiceEntity = new ClusterServiceEntity();
-
- clusterServiceEntity.setServiceName("HDFS");
- clusterServiceEntity.setClusterEntity(clusterEntity);
- clusterServiceEntity.setServiceComponentDesiredStateEntities(
- Collections.EMPTY_LIST);
- clusterServiceEntity.setServiceConfigMappings(Collections.EMPTY_LIST);
- ServiceDesiredStateEntity stateEntity = mock(ServiceDesiredStateEntity.class);
- Gson gson = new Gson();
- when(stateEntity.getDesiredStackVersion()).thenReturn(gson.toJson(new StackId("HDP-2.0.5"),
- StackId.class));
- clusterServiceEntity.setServiceDesiredStateEntity(stateEntity);
- List<ClusterServiceEntity> clusterServiceEntities = new ArrayList<ClusterServiceEntity>();
- clusterServiceEntities.add(clusterServiceEntity);
- clusterEntity.setClusterServiceEntities(clusterServiceEntities);
-
-
- return clusterEntity;
- }
-
+
@Before
public void setup() throws Exception {
injector = Guice.createInjector(new InMemoryDefaultTestModule());
- injector.getInstance(GuiceJpaInitializer.class);
- /*
- clusters = injector.getInstance(Clusters.class);
- serviceFactory = injector.getInstance(ServiceFactory.class);
- serviceComponentFactory = injector.getInstance(
- ServiceComponentFactory.class);
- serviceComponentHostFactory = injector.getInstance(
- ServiceComponentHostFactory.class);
- configFactory = injector.getInstance(ConfigFactory.class);
- metaInfo = injector.getInstance(AmbariMetaInfo.class);
- metaInfo.init();
- clusters.addCluster("c1");
- c1 = clusters.getCluster("c1");
- Assert.assertEquals("c1", c1.getClusterName());
- Assert.assertEquals(1, c1.getClusterId());
- clusters.addHost("h1");
- Host host = clusters.getHost("h1");
- host.setIPv4("ipv4");
- host.setIPv6("ipv6");
- host.setOsType("centos5");
- host.persist();
- c1.setDesiredStackVersion(new StackId("HDP-0.1"));
- clusters.mapHostToCluster("h1", "c1");
- */
+ injector.getInstance(GuiceJpaInitializer.class);
}
@After
@@ -145,10 +60,12 @@ public class RoleGraphTest {
}
@Test
- public void testValidateOrder() {
+ public void testValidateOrder() throws AmbariException {
RoleCommandOrder rco = injector.getInstance(RoleCommandOrder.class);
- ClusterEntity entity = createDummyData();
- ClusterImpl cluster = new ClusterImpl(entity, injector);
+ ClusterImpl cluster = mock(ClusterImpl.class);
+
+ when(cluster.getCurrentStackVersion()).thenReturn(new StackId("HDP-2.0.6"));
+
rco.initialize(cluster);
RoleGraphNode datanode_upgrade = new RoleGraphNode(Role.DATANODE, RoleCommand.UPGRADE);
@@ -254,19 +171,16 @@ public class RoleGraphTest {
//Enable HA for cluster
- try {
- cluster.getService("HDFS").addServiceComponent("JOURNALNODE");
- } catch (AmbariException e) {
- Assert.fail("Failed to add journal node for cluster.");
- }
+ Service hdfsServiceMock = mock(Service.class);
+ ServiceComponent jnComponentMock = mock(ServiceComponent.class);
+ when(cluster.getService("HDFS")).thenReturn(hdfsServiceMock);
+ when(hdfsServiceMock.getServiceComponent("JOURNALNODE")).thenReturn(jnComponentMock);
+
rco.initialize(cluster);
Assert.assertEquals(1, rco.order(nn_start, jn_start));
Assert.assertEquals(1, rco.order(nn_start, zk_server_start));
Assert.assertEquals(1, rco.order(zkfc_start, nn_start));
Assert.assertEquals(1, rco.order(nagios_start, zkfc_start));
Assert.assertEquals(1, rco.order(nagios_start, jn_start));
-
-
-
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/test/java/org/apache/ambari/server/orm/InMemoryDefaultTestModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/InMemoryDefaultTestModule.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/InMemoryDefaultTestModule.java
index 459929f..eed56a4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/InMemoryDefaultTestModule.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/InMemoryDefaultTestModule.java
@@ -37,8 +37,6 @@ public class InMemoryDefaultTestModule extends AbstractModule {
"target/version");
properties.setProperty(Configuration.OS_VERSION_KEY,
"centos5");
- properties.setProperty(Configuration.RCO_FILE_LOCATION_KEY,
- Configuration.RCO_FILE_LOCATION_TEST);
try {
install(new ControllerModule(properties));
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/test/java/org/apache/ambari/server/stageplanner/TestStagePlanner.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/stageplanner/TestStagePlanner.java b/ambari-server/src/test/java/org/apache/ambari/server/stageplanner/TestStagePlanner.java
index ecd1ea5..8206fff 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/stageplanner/TestStagePlanner.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/stageplanner/TestStagePlanner.java
@@ -21,16 +21,11 @@ import static org.junit.Assert.*;
import java.util.HashMap;
import java.util.List;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
+import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.Role;
import org.apache.ambari.server.RoleCommand;
import org.apache.ambari.server.actionmanager.Stage;
-import org.apache.ambari.server.controller.HostsMap;
import org.apache.ambari.server.metadata.RoleCommandOrder;
import org.apache.ambari.server.state.svccomphost.ServiceComponentHostStartEvent;
import org.apache.ambari.server.utils.StageUtils;
@@ -39,16 +34,7 @@ import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.orm.entities.ClusterEntity;
-import org.apache.ambari.server.orm.entities.ClusterServiceEntity;
-import org.apache.ambari.server.state.Cluster;
-import org.apache.ambari.server.orm.entities.HostEntity;
-import org.apache.ambari.server.state.HostState;
-import org.apache.ambari.server.orm.entities.HostStateEntity;
-import org.apache.ambari.server.orm.entities.ServiceDesiredStateEntity;
import org.apache.ambari.server.state.StackId;
-import com.google.gson.Gson;
import com.google.inject.Guice;
import com.google.inject.Injector;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
@@ -62,85 +48,10 @@ public class TestStagePlanner {
private Injector injector;
- public ClusterEntity createDummyData() {
- ClusterEntity clusterEntity = new ClusterEntity();
- clusterEntity.setClusterName("test_cluster1");
- clusterEntity.setClusterInfo("test_cluster_info1");
-
- HostEntity host1 = new HostEntity();
- HostEntity host2 = new HostEntity();
- HostEntity host3 = new HostEntity();
-
- host1.setHostName("test_host1");
- host2.setHostName("test_host2");
- host3.setHostName("test_host3");
- host1.setIpv4("192.168.0.1");
- host2.setIpv4("192.168.0.2");
- host3.setIpv4("192.168.0.3");
-
- List<HostEntity> hostEntities = new ArrayList<HostEntity>();
- hostEntities.add(host1);
- hostEntities.add(host2);
-
- clusterEntity.setHostEntities(hostEntities);
- clusterEntity.setClusterConfigEntities(Collections.EMPTY_LIST);
- //both sides of relation should be set when modifying in runtime
- host1.setClusterEntities(Arrays.asList(clusterEntity));
- host2.setClusterEntities(Arrays.asList(clusterEntity));
-
- HostStateEntity hostStateEntity1 = new HostStateEntity();
- hostStateEntity1.setCurrentState(HostState.HEARTBEAT_LOST);
- hostStateEntity1.setHostEntity(host1);
- HostStateEntity hostStateEntity2 = new HostStateEntity();
- hostStateEntity2.setCurrentState(HostState.HEALTHY);
- hostStateEntity2.setHostEntity(host2);
- host1.setHostStateEntity(hostStateEntity1);
- host2.setHostStateEntity(hostStateEntity2);
-
- ClusterServiceEntity clusterServiceEntity = new ClusterServiceEntity();
- clusterServiceEntity.setServiceName("HDFS");
- clusterServiceEntity.setClusterEntity(clusterEntity);
- clusterServiceEntity.setServiceComponentDesiredStateEntities(
- Collections.EMPTY_LIST);
- clusterServiceEntity.setServiceConfigMappings(Collections.EMPTY_LIST);
- ServiceDesiredStateEntity stateEntity = mock(ServiceDesiredStateEntity.class);
- Gson gson = new Gson();
- when(stateEntity.getDesiredStackVersion()).thenReturn(gson.toJson(new StackId("HDP-0.1"),
- StackId.class));
- clusterServiceEntity.setServiceDesiredStateEntity(stateEntity);
- List<ClusterServiceEntity> clusterServiceEntities = new ArrayList<ClusterServiceEntity>();
- clusterServiceEntities.add(clusterServiceEntity);
- clusterEntity.setClusterServiceEntities(clusterServiceEntities);
- return clusterEntity;
- }
-
@Before
public void setup() throws Exception {
injector = Guice.createInjector(new InMemoryDefaultTestModule());
injector.getInstance(GuiceJpaInitializer.class);
- /*
- clusters = injector.getInstance(Clusters.class);
- serviceFactory = injector.getInstance(ServiceFactory.class);
- serviceComponentFactory = injector.getInstance(
- ServiceComponentFactory.class);
- serviceComponentHostFactory = injector.getInstance(
- ServiceComponentHostFactory.class);
- configFactory = injector.getInstance(ConfigFactory.class);
- metaInfo = injector.getInstance(AmbariMetaInfo.class);
- metaInfo.init();
- clusters.addCluster("c1");
- c1 = clusters.getCluster("c1");
- Assert.assertEquals("c1", c1.getClusterName());
- Assert.assertEquals(1, c1.getClusterId());
- clusters.addHost("h1");
- Host host = clusters.getHost("h1");
- host.setIPv4("ipv4");
- host.setIPv6("ipv6");
- host.setOsType("centos5");
- host.persist();
- c1.setDesiredStackVersion(new StackId("HDP-0.1"));
- clusters.mapHostToCluster("h1", "c1");
- */
}
@After
@@ -149,10 +60,11 @@ public class TestStagePlanner {
}
@Test
- public void testSingleStagePlan() {
+ public void testSingleStagePlan() throws AmbariException {
RoleCommandOrder rco = injector.getInstance(RoleCommandOrder.class);
- ClusterEntity entity = createDummyData();
- ClusterImpl cluster = new ClusterImpl(entity, injector);
+ ClusterImpl cluster = mock(ClusterImpl.class);
+ when(cluster.getCurrentStackVersion()).thenReturn(new StackId("HDP-2.0.6"));
+
rco.initialize(cluster);
RoleGraph rg = new RoleGraph(rco);
@@ -171,8 +83,8 @@ public class TestStagePlanner {
@Test
public void testMultiStagePlan() {
RoleCommandOrder rco = injector.getInstance(RoleCommandOrder.class);
- ClusterEntity entity = createDummyData();
- ClusterImpl cluster = new ClusterImpl(entity, injector);
+ ClusterImpl cluster = mock(ClusterImpl.class);
+ when(cluster.getCurrentStackVersion()).thenReturn(new StackId("HDP-2.0.6"));
rco.initialize(cluster);
RoleGraph rg = new RoleGraph(rco);
long now = System.currentTimeMillis();
@@ -197,8 +109,8 @@ public class TestStagePlanner {
@Test
public void testManyStages() {
RoleCommandOrder rco = injector.getInstance(RoleCommandOrder.class);
- ClusterEntity entity = createDummyData();
- ClusterImpl cluster = new ClusterImpl(entity, injector);
+ ClusterImpl cluster = mock(ClusterImpl.class);
+ when(cluster.getCurrentStackVersion()).thenReturn(new StackId("HDP-2.0.6"));
rco.initialize(cluster);
RoleGraph rg = new RoleGraph(rco);
long now = System.currentTimeMillis();
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/f1d232fb/ambari-server/src/test/resources/stacks/HDP/2.0.6/role_command_order.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/resources/stacks/HDP/2.0.6/role_command_order.json b/ambari-server/src/test/resources/stacks/HDP/2.0.6/role_command_order.json
new file mode 100644
index 0000000..307f211
--- /dev/null
+++ b/ambari-server/src/test/resources/stacks/HDP/2.0.6/role_command_order.json
@@ -0,0 +1,100 @@
+{
+ "_comment" : "Record format:",
+ "_comment" : "blockedRole-blockedCommand: [blockerRole1-blockerCommand1, blockerRole2-blockerCommand2, ...]",
+ "general_deps" : {
+ "_comment" : "dependencies for all cases",
+ "NAGIOS_SERVER-INSTALL" : ["HIVE_CLIENT-INSTALL", "HCAT-INSTALL",
+ "MAPREDUCE_CLIENT-INSTALL", "OOZIE_CLIENT-INSTALL"],
+ "HBASE_MASTER-START": ["ZOOKEEPER_SERVER-START"],
+ "HBASE_REGIONSERVER-START": ["HBASE_MASTER-START"],
+ "OOZIE_SERVER-START": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "WEBHCAT_SERVER-START": ["TASKTRACKER-START", "HIVE_SERVER-START"],
+ "HIVE_METASTORE-START": ["MYSQL_SERVER-START"],
+ "HIVE_SERVER-START": ["TASKTRACKER-START", "MYSQL_SERVER-START"],
+ "HUE_SERVER-START": ["HIVE_SERVER-START", "HCAT-START", "OOZIE_SERVER-START"],
+ "FLUME_SERVER-START": ["OOZIE_SERVER-START"],
+ "NAGIOS_SERVER-START": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START",
+ "GANGLIA_SERVER-START", "GANGLIA_MONITOR-START", "HCAT-START",
+ "HIVE_SERVER-START", "HIVE_METASTORE-START", "HUE_SERVER-START",
+ "JOBTRACKER-START", "TASKTRACKER-START", "ZOOKEEPER_SERVER-START",
+ "MYSQL_SERVER-START", "OOZIE_SERVER-START", "PIG-START", "SQOOP-START",
+ "WEBHCAT_SERVER-START", "FLUME_SERVER-START"],
+ "MAPREDUCE_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "OOZIE_SERVICE_CHECK-EXECUTE": ["OOZIE_SERVER-START"],
+ "WEBHCAT_SERVICE_CHECK-EXECUTE": ["WEBHCAT_SERVER-START"],
+ "HBASE_SERVICE_CHECK-EXECUTE": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START"],
+ "HIVE_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START", "HIVE_METASTORE-START"],
+ "HCAT_SERVICE_CHECK-EXECUTE": ["HIVE_SERVER-START"],
+ "PIG_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "SQOOP_SERVICE_CHECK-EXECUTE": ["JOBTRACKER-START", "TASKTRACKER-START"],
+ "ZOOKEEPER_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
+ "ZOOKEEPER_QUORUM_SERVICE_CHECK-EXECUTE": ["ZOOKEEPER_SERVER-START"],
+ "ZOOKEEPER_SERVER-STOP" : ["HBASE_MASTER-STOP", "HBASE_REGIONSERVER-STOP"],
+ "HBASE_MASTER-STOP": ["HBASE_REGIONSERVER-STOP"],
+ "TASKTRACKER-UPGRADE": ["JOBTRACKER-UPGRADE"],
+ "MAPREDUCE_CLIENT-UPGRADE": ["TASKTRACKER-UPGRADE", "JOBTRACKER-UPGRADE"],
+ "ZOOKEEPER_SERVER-UPGRADE": ["MAPREDUCE_CLIENT-UPGRADE"],
+ "ZOOKEEPER_CLIENT-UPGRADE": ["ZOOKEEPER_SERVER-UPGRADE"],
+ "HBASE_MASTER-UPGRADE": ["ZOOKEEPER_CLIENT-UPGRADE"],
+ "HBASE_REGIONSERVER-UPGRADE": ["HBASE_MASTER-UPGRADE"],
+ "HBASE_CLIENT-UPGRADE": ["HBASE_REGIONSERVER-UPGRADE"],
+ "HIVE_SERVER-UPGRADE" : ["HBASE_CLIENT-UPGRADE"],
+ "HIVE_METASTORE-UPGRADE" : ["HIVE_SERVER-UPGRADE"],
+ "MYSQL_SERVER-UPGRADE": ["HIVE_METASTORE-UPGRADE"],
+ "HIVE_CLIENT-UPGRADE": ["MYSQL_SERVER-UPGRADE"],
+ "HCAT-UPGRADE": ["HIVE_CLIENT-UPGRADE"],
+ "OOZIE_SERVER-UPGRADE" : ["HCAT-UPGRADE"],
+ "OOZIE_CLIENT-UPGRADE" : ["OOZIE_SERVER-UPGRADE"],
+ "WEBHCAT_SERVER-UPGRADE" : ["OOZIE_CLIENT-UPGRADE"],
+ "PIG-UPGRADE" : ["WEBHCAT_SERVER-UPGRADE"],
+ "SQOOP-UPGRADE" : ["PIG-UPGRADE"],
+ "NAGIOS_SERVER-UPGRADE" : ["SQOOP-UPGRADE"],
+ "GANGLIA_SERVER-UPGRADE" : ["NAGIOS_SERVER-UPGRADE"],
+ "GANGLIA_MONITOR-UPGRADE" : ["GANGLIA_SERVER-UPGRADE"]
+ },
+ "_comment" : "HCFS-specific dependencies",
+ "optional_hcfs": {
+ "HBASE_MASTER-START": ["PEERSTATUS-START"],
+ "JOBTRACKER-START": ["PEERSTATUS-START"],
+ "TASKTRACKER-START": ["PEERSTATUS-START"],
+ "HCFS_SERVICE_CHECK-EXECUTE": ["PEERSTATUS-START"],
+ "JOBTRACKER-UPGRADE": ["HCFS_CLIENT-UPGRADE"]
+ },
+ "_comment" : "Dependencies that are used when HCFS is not present in cluster",
+ "optional_no_hcfs": {
+ "SECONDARY_NAMENODE-START": ["NAMENODE-START"],
+ "RESOURCEMANAGER-START": ["NAMENODE-START", "DATANODE-START"],
+ "NODEMANAGER-START": ["NAMENODE-START", "DATANODE-START", "RESOURCEMANAGER-START"],
+ "HISTORYSERVER-START": ["NAMENODE-START", "DATANODE-START"],
+ "HBASE_MASTER-START": ["NAMENODE-START", "DATANODE-START"],
+ "JOBTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
+ "TASKTRACKER-START": ["NAMENODE-START", "DATANODE-START"],
+ "HIVE_SERVER-START": ["DATANODE-START"],
+ "WEBHCAT_SERVER-START": ["DATANODE-START"],
+ "NAGIOS_SERVER-START": ["NAMENODE-START", "SECONDARY_NAMENODE-START",
+ "DATANODE-START", "RESOURCEMANAGER-START", "NODEMANAGER-START", "HISTORYSERVER-START"],
+ "HDFS_SERVICE_CHECK-EXECUTE": ["NAMENODE-START", "DATANODE-START",
+ "SECONDARY_NAMENODE-START"],
+ "MAPREDUCE2_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START",
+ "RESOURCEMANAGER-START", "HISTORYSERVER-START", "YARN_SERVICE_CHECK-EXECUTE"],
+ "YARN_SERVICE_CHECK-EXECUTE": ["NODEMANAGER-START", "RESOURCEMANAGER-START"],
+ "RESOURCEMANAGER_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START"],
+ "PIG_SERVICE_CHECK-EXECUTE": ["RESOURCEMANAGER-START", "NODEMANAGER-START"],
+ "NAMENODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
+ "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
+ "DATANODE-STOP": ["JOBTRACKER-STOP", "TASKTRACKER-STOP", "RESOURCEMANAGER-STOP",
+ "NODEMANAGER-STOP", "HISTORYSERVER-STOP", "HBASE_MASTER-STOP"],
+ "SECONDARY_NAMENODE-UPGRADE": ["NAMENODE-UPGRADE"],
+ "DATANODE-UPGRADE": ["SECONDARY_NAMENODE-UPGRADE"],
+ "HDFS_CLIENT-UPGRADE": ["DATANODE-UPGRADE"],
+ "JOBTRACKER-UPGRADE": ["HDFS_CLIENT-UPGRADE"]
+ },
+ "_comment" : "Dependencies that are used in HA NameNode cluster",
+ "optional_ha": {
+ "NAMENODE-START": ["JOURNALNODE-START", "ZOOKEEPER_SERVER-START"],
+ "ZKFC-START": ["NAMENODE-START"],
+ "NAGIOS_SERVER-START": ["ZKFC-START", "JOURNALNODE-START"],
+ "HDFS_SERVICE_CHECK-EXECUTE": ["ZKFC-START"]
+ }
+}
+