You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2013/09/30 14:48:48 UTC
git commit: AMBARI-3364. Refactor Role to a class from an enum.
(ncole)
Updated Branches:
refs/heads/trunk dda354631 -> 62011714f
AMBARI-3364. Refactor Role to a class from an enum. (ncole)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/62011714
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/62011714
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/62011714
Branch: refs/heads/trunk
Commit: 62011714fec8b34a8431e0a731778f7de31debff
Parents: dda3546
Author: Nate Cole <nc...@hortonworks.com>
Authored: Fri Sep 27 16:17:35 2013 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Mon Sep 30 08:36:12 2013 -0400
----------------------------------------------------------------------
.../java/org/apache/ambari/server/Role.java | 183 ++++++++++++-------
.../server/actionmanager/ActionScheduler.java | 24 ++-
.../ambari/server/actionmanager/Stage.java | 4 +-
.../ambari/server/agent/ExecutionCommand.java | 6 +-
.../server/orm/dao/HostRoleCommandDAO.java | 2 +-
.../orm/entities/HostRoleCommandEntity.java | 34 +++-
.../orm/entities/RoleSuccessCriteriaEntity.java | 19 +-
.../entities/RoleSuccessCriteriaEntityPK.java | 14 +-
.../AmbariManagementControllerTest.java | 4 +-
.../server/metadata/RoleCommandOrderTest.java | 58 +++---
10 files changed, 217 insertions(+), 131 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/Role.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/Role.java b/ambari-server/src/main/java/org/apache/ambari/server/Role.java
index 8913f22..b10197f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/Role.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/Role.java
@@ -18,71 +18,120 @@
package org.apache.ambari.server;
-//This enumerates all the roles that the server can handle.
-//Each component or a job maps to a particular role.
-public enum Role {
- HCFS_SERVICE_CHECK,
- HCFS_CLIENT,
- PEERSTATUS,
- ZOOKEEPER_SERVER,
- ZOOKEEPER_CLIENT,
- NAMENODE,
- NAMENODE_SERVICE_CHECK,
- DATANODE,
- HDFS_SERVICE_CHECK,
- SECONDARY_NAMENODE,
- HDFS_CLIENT,
- HBASE_MASTER,
- HBASE_REGIONSERVER,
- HBASE_CLIENT,
- JOBTRACKER,
- TASKTRACKER,
- MAPREDUCE_CLIENT,
- MAPREDUCE2_CLIENT,
- JAVA_JCE,
- HADOOP_CLIENT,
- JOBTRACKER_SERVICE_CHECK,
- MAPREDUCE_SERVICE_CHECK,
- MAPREDUCE2_SERVICE_CHECK,
- ZOOKEEPER_SERVICE_CHECK,
- ZOOKEEPER_QUORUM_SERVICE_CHECK,
- HBASE_SERVICE_CHECK,
- MYSQL_SERVER,
- HIVE_SERVER,
- HIVE_METASTORE,
- HIVE_CLIENT,
- HIVE_SERVICE_CHECK,
- HCAT,
- HCAT_SERVICE_CHECK,
- OOZIE_CLIENT,
- OOZIE_SERVER,
- OOZIE_SERVICE_CHECK,
- PIG,
- PIG_SERVICE_CHECK,
- SQOOP,
- SQOOP_SERVICE_CHECK,
- WEBHCAT_SERVER,
- WEBHCAT_SERVICE_CHECK,
- DASHBOARD,
- DASHBOARD_SERVICE_CHECK,
- NAGIOS_SERVER,
- GANGLIA_SERVER,
- GANGLIA_MONITOR,
- GMOND_SERVICE_CHECK,
- GMETAD_SERVICE_CHECK,
- MONITOR_WEBSERVER,
- DECOMMISSION_DATANODE,
- HUE_SERVER,
- AMBARI_SERVER_ACTION,
- RESOURCEMANAGER,
- RESOURCEMANAGER_SERVICE_CHECK,
- HISTORYSERVER_SERVICE_CHECK,
- NODEMANAGER,
- YARN_SERVICE_CHECK,
- YARN_CLIENT,
- HISTORYSERVER,
- TEZ_CLIENT,
- FLUME_SERVER,
- JOURNALNODE,
- ZKFC
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Role defines the components that are available to Ambari. It has a few
+ * similar mechanisms to an enum.
+ */
+public class Role {
+
+ private static final Map<String, Role> roles = new ConcurrentHashMap<String, Role>();
+
+ /**
+ * @param name the role name
+ * @return a Role instance, never <code>null</code>
+ */
+ public static Role valueOf(String name) {
+ if (roles.containsKey(name))
+ return roles.get(name);
+
+ Role role = new Role(name);
+ roles.put(name, role);
+ return role;
+ }
+
+ /**
+ * @return a collection of all defined Role instances
+ */
+ public static Collection<Role> values() {
+ return Collections.unmodifiableCollection(roles.values());
+ }
+
+ public static final Role AMBARI_SERVER_ACTION = valueOf("AMBARI_SERVER_ACTION");
+ public static final Role DATANODE = valueOf("DATANODE");
+ public static final Role DECOMMISSION_DATANODE = valueOf("DECOMMISSION_DATANODE");
+ public static final Role FLUME_SERVER = valueOf("FLUME_SERVER");
+ public static final Role GANGLIA_MONITOR = valueOf("GANGLIA_MONITOR");
+ public static final Role GANGLIA_SERVER = valueOf("GANGLIA_SERVER");
+ public static final Role HBASE_CLIENT = valueOf("HBASE_CLIENT");
+ public static final Role HBASE_MASTER = valueOf("HBASE_MASTER");
+ public static final Role HBASE_REGIONSERVER = valueOf("HBASE_REGIONSERVER");
+ public static final Role HBASE_SERVICE_CHECK = valueOf("HBASE_SERVICE_CHECK");
+ public static final Role HCAT = valueOf("HCAT");
+ public static final Role HCAT_SERVICE_CHECK = valueOf("HCAT_SERVICE_CHECK");
+ public static final Role HCFS_CLIENT = valueOf("HCFS_CLIENT");
+ public static final Role HCFS_SERVICE_CHECK = valueOf("HCFS_SERVICE_CHECK");
+ public static final Role HDFS_CLIENT = valueOf("HDFS_CLIENT");
+ public static final Role HDFS_SERVICE_CHECK = valueOf("HDFS_SERVICE_CHECK");
+ public static final Role HISTORYSERVER = valueOf("HISTORYSERVER");
+ public static final Role HIVE_CLIENT = valueOf("HIVE_CLIENT");
+ public static final Role HIVE_METASTORE = valueOf("HIVE_METASTORE");
+ public static final Role HIVE_SERVER = valueOf("HIVE_SERVER");
+ public static final Role HIVE_SERVICE_CHECK = valueOf("HIVE_SERVICE_CHECK");
+ public static final Role JOBTRACKER = valueOf("JOBTRACKER");
+ public static final Role NODEMANAGER = valueOf("NODEMANAGER");
+ public static final Role OOZIE_CLIENT = valueOf("OOZIE_CLIENT");
+ public static final Role OOZIE_SERVER = valueOf("OOZIE_SERVER");
+ public static final Role PEERSTATUS = valueOf("PEERSTATUS");
+ public static final Role PIG = valueOf("PIG");
+ public static final Role PIG_SERVICE_CHECK = valueOf("PIG_SERVICE_CHECK");
+ public static final Role RESOURCEMANAGER = valueOf("RESOURCEMANAGER");
+ public static final Role SECONDARY_NAMENODE = valueOf("SECONDARY_NAMENODE");
+ public static final Role SQOOP = valueOf("SQOOP");
+ public static final Role SQOOP_SERVICE_CHECK = valueOf("SQOOP_SERVICE_CHECK");
+ public static final Role HUE_SERVER = valueOf("HUE_SERVER");
+ public static final Role JOURNALNODE = valueOf("JOURNALNODE");
+ public static final Role MAPREDUCE_CLIENT = valueOf("MAPREDUCE_CLIENT");
+ public static final Role MAPREDUCE_SERVICE_CHECK = valueOf("MAPREDUCE_SERVICE_CHECK");
+ public static final Role MAPREDUCE2_SERVICE_CHECK = valueOf("MAPREDUCE2_SERVICE_CHECK");
+ public static final Role MYSQL_SERVER = valueOf("MYSQL_SERVER");
+ public static final Role NAGIOS_SERVER = valueOf("NAGIOS_SERVER");
+ public static final Role NAMENODE = valueOf("NAMENODE");
+ public static final Role NAMENODE_SERVICE_CHECK = valueOf("NAMENODE_SERVICE_CHECK");
+ public static final Role OOZIE_SERVICE_CHECK = valueOf("OOZIE_SERVICE_CHECK");
+ public static final Role TASKTRACKER = valueOf("TASKTRACKER");
+ public static final Role WEBHCAT_SERVER = valueOf("WEBHCAT_SERVER");
+ public static final Role WEBHCAT_SERVICE_CHECK = valueOf("WEBHCAT_SERVICE_CHECK");
+ public static final Role YARN_SERVICE_CHECK = valueOf("YARN_SERVICE_CHECK");
+ public static final Role ZKFC = valueOf("ZKFC");
+ public static final Role ZOOKEEPER_CLIENT = valueOf("ZOOKEEPER_CLIENT");
+ public static final Role ZOOKEEPER_QUORUM_SERVICE_CHECK = valueOf("ZOOKEEPER_QUORUM_SERVICE_CHECK");
+ public static final Role ZOOKEEPER_SERVER = valueOf("ZOOKEEPER_SERVER");
+
+
+ private String name = null;
+
+ private Role(String roleName) {
+ name = roleName;
+ }
+
+ /**
+ * @return the name given to the role
+ */
+ public String name() {
+ return name;
+ }
+
+ @Override
+ public String toString() {
+ return name;
+ }
+
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (null == o || !Role.class.equals(o.getClass()))
+ return false;
+
+ return this == o || name.equals(((Role) o).name);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java
index c49cc75..803f7f3 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java
@@ -17,7 +17,12 @@
*/
package org.apache.ambari.server.actionmanager;
-import com.google.inject.persist.UnitOfWork;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.Role;
import org.apache.ambari.server.ServiceComponentNotFoundException;
@@ -27,12 +32,19 @@ import org.apache.ambari.server.agent.ExecutionCommand;
import org.apache.ambari.server.controller.HostsMap;
import org.apache.ambari.server.serveraction.ServerAction;
import org.apache.ambari.server.serveraction.ServerActionManager;
-import org.apache.ambari.server.state.*;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Clusters;
+import org.apache.ambari.server.state.Host;
+import org.apache.ambari.server.state.HostState;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponent;
+import org.apache.ambari.server.state.ServiceComponentHost;
import org.apache.ambari.server.state.fsm.InvalidStateTransitionException;
import org.apache.ambari.server.state.svccomphost.ServiceComponentHostOpFailedEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.*;
+
+import com.google.inject.persist.UnitOfWork;
/**
* This class encapsulates the action scheduler thread.
@@ -167,7 +179,7 @@ class ActionScheduler implements Runnable {
//Schedule what we have so far
for (ExecutionCommand cmd : commandsToSchedule) {
- if (cmd.getRole() == Role.AMBARI_SERVER_ACTION) {
+ if (Role.valueOf(cmd.getRole()).equals(Role.AMBARI_SERVER_ACTION)) {
try {
long now = System.currentTimeMillis();
String hostName = cmd.getHostname();
@@ -191,7 +203,7 @@ class ActionScheduler implements Runnable {
} catch (InvalidStateTransitionException e) {
LOG.warn("Could not schedule host role " + cmd.toString(), e);
db.abortHostRole(cmd.getHostname(), s.getRequestId(), s.getStageId(),
- cmd.getRole());
+ Role.valueOf(cmd.getRole()));
}
}
}
@@ -312,7 +324,7 @@ class ActionScheduler implements Runnable {
LOG.warn("Host:" + host + ", role:" + roleStr + ", actionId:"
+ s.getActionId() + " expired");
db.timeoutHostRole(host, s.getRequestId(), s.getStageId(),
- c.getRole());
+ Role.valueOf(c.getRole()));
//Reinitialize status
status = s.getHostRoleStatus(host, roleStr);
ServiceComponentHostOpFailedEvent timeoutEvent =
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
index b57d740..7def25c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java
@@ -197,7 +197,7 @@ public class Stage {
cmd.setClusterName(clusterName);
cmd.setServiceName(serviceName);
cmd.setCommandId(this.getActionId());
- cmd.setRole(role);
+ cmd.setRole(role.name());
cmd.setRoleCommand(command);
Map<String, HostRoleCommand> hrcMap = this.hostRoleCommands.get(host);
if (hrcMap == null) {
@@ -236,7 +236,7 @@ public class Stage {
cmd.setClusterName(clusterName);
cmd.setServiceName("");
cmd.setCommandId(this.getActionId());
- cmd.setRole(role);
+ cmd.setRole(role.name());
cmd.setRoleCommand(command);
Map<String, String> roleParams = new HashMap<String, String>();
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
index 0fc6731..1b4ecdf 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
@@ -44,7 +44,7 @@ public class ExecutionCommand extends AgentCommand {
private long taskId;
private String commandId;
private String hostname;
- private Role role;
+ private String role;
private Map<String, String> hostLevelParams = new HashMap<String, String>();
private Map<String, String> roleParams = null;
private RoleCommand roleCommand;
@@ -103,12 +103,12 @@ public class ExecutionCommand extends AgentCommand {
}
@JsonProperty("role")
- public Role getRole() {
+ public String getRole() {
return role;
}
@JsonProperty("role")
- public void setRole(Role role) {
+ public void setRole(String role) {
this.role = role;
}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
index 36f9142..f77c8a4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostRoleCommandDAO.java
@@ -136,7 +136,7 @@ public class HostRoleCommandDAO {
"AND command.stageId=?3 AND command.role=?4 " +
"ORDER BY command.taskId", HostRoleCommandEntity.class);
- return daoUtils.selectList(query, hostName, requestId, stageId, role);
+ return daoUtils.selectList(query, hostName, requestId, stageId, role.name());
}
@Transactional
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java
index 67f25b3..4877333 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java
@@ -18,16 +18,33 @@
package org.apache.ambari.server.orm.entities;
+import static org.apache.commons.lang.StringUtils.defaultString;
+
+import java.util.Arrays;
+
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.TableGenerator;
+
import org.apache.ambari.server.Role;
import org.apache.ambari.server.RoleCommand;
import org.apache.ambari.server.actionmanager.HostRoleStatus;
import org.apache.commons.lang.ArrayUtils;
-import javax.persistence.*;
-import java.util.Arrays;
-
-import static org.apache.commons.lang.StringUtils.defaultString;
-
@Table(name = "host_role_command")
@Entity
@TableGenerator(name = "host_role_command_id_generator",
@@ -57,8 +74,7 @@ public class HostRoleCommandEntity {
private String hostName;
@Column(name = "role")
- @Enumerated(EnumType.STRING)
- private Role role;
+ private String role;
@Column(name = "event", length = 32000)
@Basic
@@ -143,11 +159,11 @@ public class HostRoleCommandEntity {
}
public Role getRole() {
- return role;
+ return Role.valueOf(this.role);
}
public void setRole(Role role) {
- this.role = role;
+ this.role = role.name();
}
public String getEvent() {
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntity.java
index 24ff4cc..3386c24 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntity.java
@@ -18,9 +18,17 @@
package org.apache.ambari.server.orm.entities;
-import org.apache.ambari.server.Role;
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
-import javax.persistence.*;
+import org.apache.ambari.server.Role;
@IdClass(org.apache.ambari.server.orm.entities.RoleSuccessCriteriaEntityPK.class)
@Table(name = "role_success_criteria")
@@ -37,8 +45,7 @@ public class RoleSuccessCriteriaEntity {
@Id
@Column(name = "role")
- @Enumerated(EnumType.STRING)
- private Role role;
+ private String role;
@Basic
@Column(name = "success_factor", nullable = false)
@@ -65,11 +72,11 @@ public class RoleSuccessCriteriaEntity {
}
public Role getRole() {
- return role;
+ return Role.valueOf(role);
}
public void setRole(Role role) {
- this.role = role;
+ this.role = role.name();
}
public Double getSuccessFactor() {
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntityPK.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntityPK.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntityPK.java
index f62094e..8dcbab8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntityPK.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/RoleSuccessCriteriaEntityPK.java
@@ -18,13 +18,12 @@
package org.apache.ambari.server.orm.entities;
-import org.apache.ambari.server.Role;
+import java.io.Serializable;
import javax.persistence.Column;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
import javax.persistence.Id;
-import java.io.Serializable;
+
+import org.apache.ambari.server.Role;
@SuppressWarnings("serial")
public class RoleSuccessCriteriaEntityPK implements Serializable {
@@ -52,17 +51,16 @@ public class RoleSuccessCriteriaEntityPK implements Serializable {
this.stageId = stageId;
}
- private Role role;
+ private String role;
@Column(name = "role")
- @Enumerated(EnumType.STRING)
@Id
public Role getRole() {
- return role;
+ return Role.valueOf(role);
}
public void setRole(Role role) {
- this.role = role;
+ this.role = role.name();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/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 cb7eaf7..652d7fa 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
@@ -2666,7 +2666,7 @@ public class AmbariManagementControllerTest {
for (Stage s : stages) {
for (List<ExecutionCommandWrapper> list : s.getExecutionCommands().values()) {
for (ExecutionCommandWrapper ecw : list) {
- if (ecw.getExecutionCommand().getRole().name().contains("SERVICE_CHECK")) {
+ if (ecw.getExecutionCommand().getRole().contains("SERVICE_CHECK")) {
Map<String, String> hostParams = ecw.getExecutionCommand().getHostLevelParams();
Assert.assertNotNull(hostParams);
Assert.assertTrue(hostParams.size() > 0);
@@ -3580,7 +3580,7 @@ public class AmbariManagementControllerTest {
assertEquals(task.getTaskId(), hostRoleCommand.getTaskId());
assertEquals(actionRequest.getServiceName(), hostRoleCommand.getExecutionCommandWrapper().getExecutionCommand().getServiceName());
assertEquals(actionRequest.getClusterName(), hostRoleCommand.getExecutionCommandWrapper().getExecutionCommand().getClusterName());
- assertEquals(actionRequest.getActionName(), hostRoleCommand.getExecutionCommandWrapper().getExecutionCommand().getRole().name());
+ assertEquals(actionRequest.getActionName(), hostRoleCommand.getExecutionCommandWrapper().getExecutionCommand().getRole());
assertEquals(Role.HDFS_CLIENT.name(), hostRoleCommand.getEvent().getEvent().getServiceComponentName());
assertEquals(actionRequest.getParameters(), hostRoleCommand.getExecutionCommandWrapper().getExecutionCommand().getRoleParams());
assertNotNull(hostRoleCommand.getExecutionCommandWrapper().getExecutionCommand().getConfigurations());
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/62011714/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 b8879a6..8056317 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
@@ -18,37 +18,38 @@
package org.apache.ambari.server.metadata;
-import com.google.gson.Gson;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.persist.PersistService;
-import static junit.framework.Assert.*;
-import static org.easymock.EasyMock.*;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.Role;
+import org.apache.ambari.server.metadata.RoleCommandOrder.RoleCommandPair;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
-import org.apache.ambari.server.orm.entities.*;
-import org.apache.ambari.server.state.HostState;
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;
import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.type.TypeReference;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.*;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import org.apache.ambari.server.metadata.RoleCommandOrder.RoleCommandPair;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.persist.PersistService;
public class RoleCommandOrderTest {
@@ -203,22 +204,25 @@ public class RoleCommandOrderTest {
InputStream testJsonIS = getClass().getClassLoader().
getResourceAsStream(TEST_RCO_DATA_FILE);
+
ObjectMapper mapper = new ObjectMapper();
- Map<String,Object> testData = mapper.readValue(testJsonIS, Map.class);
+ Map<String,Object> testData = mapper.readValue(testJsonIS,
+ new TypeReference<Map<String,Object>>() {});
+
rco.addDependencies(testData);
mapper.setVisibility(JsonMethod.ALL, JsonAutoDetect.Visibility.ANY);
String dump = mapper.writeValueAsString(rco.getDependencies());
+
String expected = "{\"RoleCommandPair{role=SECONDARY_NAMENODE, " +
- "cmd=UPGRADE}\":[{\"role\":\"NAMENODE\",\"cmd\":\"UPGRADE\"}]," +
- "\"RoleCommandPair{role=SECONDARY_NAMENODE, cmd=START}\":" +
- "[{\"role\":\"NAMENODE\",\"cmd\":\"START\"}]," +
- "\"RoleCommandPair{role=DATANODE, cmd=STOP}\":" +
- "[{\"role\":\"HBASE_MASTER\",\"cmd\":\"STOP\"}," +
- "{\"role\":\"RESOURCEMANAGER\",\"cmd\":\"STOP\"}," +
- "{\"role\":\"TASKTRACKER\",\"cmd\":\"STOP\"},{\"role\":" +
- "\"NODEMANAGER\",\"cmd\":\"STOP\"},{\"role\":\"HISTORYSERVER\"," +
- "\"cmd\":\"STOP\"},{\"role\":\"JOBTRACKER\",\"cmd\":\"STOP\"}]}";
+ "cmd=UPGRADE}\":[{\"role\":{\"name\":\"NAMENODE\"},\"cmd\":\"UPGRADE\"}]," +
+ "\"RoleCommandPair{role=SECONDARY_NAMENODE, cmd=START}\":[{\"role\":{\"name\":\"NAMENODE\"}," +
+ "\"cmd\":\"START\"}],\"RoleCommandPair{role=DATANODE, cmd=STOP}\":[{\"role\":" +
+ "{\"name\":\"HBASE_MASTER\"},\"cmd\":\"STOP\"},{\"role\":{\"name\":\"RESOURCEMANAGER\"}," +
+ "\"cmd\":\"STOP\"},{\"role\":{\"name\":\"TASKTRACKER\"},\"cmd\":\"STOP\"}," +
+ "{\"role\":{\"name\":\"NODEMANAGER\"},\"cmd\":\"STOP\"},{\"role\":{\"name\":\"HISTORYSERVER\"}," +
+ "\"cmd\":\"STOP\"},{\"role\":{\"name\":\"JOBTRACKER\"},\"cmd\":\"STOP\"}]}";
+
assertEquals(expected, dump);
}