code: public void setTopologyStatus(TopologyAssignEvent event) throws Exception {
          StormClusterState stormClusterState = nimbusData.getStormClusterState();
  
          String topologyId = event.getTopologyId();
          String topologyName = event.getTopologyName();
          String group = event.getGroup();
  
          StormStatus status = new StormStatus(StatusType.active);
          if (event.getOldStatus() != null) {
              status = event.getOldStatus();
          }
  
          boolean isEnable = ConfigExtension.isEnablePerformanceMetrics(nimbusData.getConf());
          StormBase stormBase = stormClusterState.storm_base(topologyId, null);
          if (stormBase == null) {
              stormBase = new StormBase(topologyName, TimeUtils.current_time_secs(), status, group);
              stormBase.setEnableMonitor(isEnable);
              stormClusterState.activate_storm(topologyId, stormBase);
          } else {
              stormClusterState.update_storm(topologyId, status);
              stormClusterState.set_storm_monitor(topologyId, isEnable);
  
              // here exist one hack operation
              // when monitor/rebalance/startup topologyName is null
              if (topologyName == null) {
                  event.setTopologyName(stormBase.getStormName());
              }
          }
  
          LOG.info("Update " + topologyId + " " + status);
      }
docs: start a topology: set active status of the topology