code: protected boolean validateRuntimeManage(
        SchedulerStateManagerAdaptor adaptor,
        String topologyName) throws TopologyRuntimeManagementException {
      // Check whether the topology has already been running
      Boolean isTopologyRunning = adaptor.isTopologyRunning(topologyName);
      boolean hasExecutionData = isTopologyRunning != null && isTopologyRunning.equals(Boolean.TRUE);
      if (!hasExecutionData) {
        if (command == Command.KILL) {
          LOG.warning(String.format("Topology '%s' is not found or not running", topologyName));
        } else {
          throw new TopologyRuntimeManagementException(
              String.format("Topology '%s' does not exist", topologyName));
        }
      }
  
      // Check whether cluster/role/environ matched if execution state data is available.
      ExecutionEnvironment.ExecutionState executionState = adaptor.getExecutionState(topologyName);
      if (executionState == null) {
        if (command == Command.KILL) {
          LOG.warning(String.format("Topology execution state for '%s' is not found", topologyName));
        } else {
          throw new TopologyRuntimeManagementException(
              String.format("Failed to get execution state for topology %s", topologyName));
        }
      } else {
        // Execution state is available, validate configurations.
        validateExecutionState(topologyName, executionState);
      }
      return hasExecutionData;
    }
docs: Before continuing to the action logic, verify:
  - the topology is running
  - the information in execution state matches the request
  There is an edge case that the topology data could be only partially available,
  which could be caused by not fully successful SUBMIT or KILL command. In this
  case, we need to skip the validation and allow KILL command to go through.
  In case execution state data is available, environment check will be done anyway.
  @return true if the topology execution data is found, false otherwise.