void addDependencies(Map<String, Object> jsonSection) {
    if(jsonSection == null) {
      return;
    }

    for (Object blockedObj : jsonSection.keySet()) {
      String blocked = (String) blockedObj;
      if (COMMENT_STR.equals(blocked)) {
        continue; // Skip comments
      }
      ArrayList<String> blockers = (ArrayList<String>) jsonSection.get(blocked);
      for (String blocker : blockers) {
        String [] blockedTuple = blocked.split("-");
        String blockedRole = blockedTuple[0];
        String blockedCommand = blockedTuple[1];

        // 3rd position is -OVERRIDE
        boolean overrideExisting = blockedTuple.length == 3;

        String [] blockerTuple = blocker.split("-");
        String blockerRole = blockerTuple[0];
        String blockerCommand = blockerTuple[1];

        addDependency(Role.valueOf(blockedRole), RoleCommand.valueOf(blockedCommand),
            Role.valueOf(blockerRole), RoleCommand.valueOf(blockerCommand), overrideExisting);
      }
    }
  }
Add a pair of tuples where the tuple defined by the first two parameters are blocked on
the tuple defined by the last two pair.
@param blockedRole Role that is blocked
@param blockedCommand The command on the role that is blocked
@param blockerRole The role that is blocking
@param blockerCommand The command on the blocking role
ambari-server/src/main/java/org/apache/ambari/server/metadata/RoleCommandOrder.java