public static boolean isValidStateTransition()

in ambari-server/src/main/java/org/apache/ambari/server/state/State.java [139:181]


  public static boolean isValidStateTransition(State startState, State desiredState) {
    switch(desiredState) {
      case INSTALLED:
        if (startState == State.INIT
            || startState == State.UNINSTALLED
            || startState == State.INSTALLED
            || startState == State.INSTALLING
            || startState == State.STARTED
            || startState == State.INSTALL_FAILED
            || startState == State.UPGRADING
            || startState == State.STOPPING
            || startState == State.UNKNOWN
            || startState == State.MAINTENANCE) {
          return true;
        }
        break;
      case STARTED:
        if (startState == State.INSTALLED
            || startState == State.STARTING
            || startState == State.STARTED) {
          return true;
        }
        break;
      case UNINSTALLED:
        if (startState == State.INSTALLED
            || startState == State.UNINSTALLED
            || startState == State.UNINSTALLING) {
          return true;
        }
      case INIT:
        if (startState == State.UNINSTALLED
            || startState == State.INIT
            || startState == State.WIPING_OUT) {
          return true;
        }
      case MAINTENANCE:
        if (startState == State.INSTALLED
            || startState == State.UNKNOWN) {
          return true;
        }
    }
    return false;
  }