| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version |
| * 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions |
| * and limitations under the License. |
| */ |
| |
| package org.apache.storm; |
| |
| import java.util.Map; |
| import org.apache.storm.cluster.IStormClusterState; |
| import org.apache.storm.generated.ClusterSummary; |
| import org.apache.storm.generated.Credentials; |
| import org.apache.storm.generated.KillOptions; |
| import org.apache.storm.generated.RebalanceOptions; |
| import org.apache.storm.generated.StormTopology; |
| import org.apache.storm.generated.SubmitOptions; |
| import org.apache.storm.generated.TopologyInfo; |
| import org.apache.storm.thrift.TException; |
| |
| /** |
| * This is here mostly for backwards compatibility. |
| */ |
| public interface ILocalCluster extends AutoCloseable { |
| /** |
| * Submit a topology to be run in local mode. |
| * |
| * @param topologyName the name of the topology to use |
| * @param conf the config for the topology |
| * @param topology the topology itself. |
| * @return an AutoCloseable that will kill the topology. |
| * @throws TException on any error from nimbus |
| */ |
| ILocalTopology submitTopology(String topologyName, Map<String, Object> conf, StormTopology topology) throws TException; |
| |
| /** |
| * Submit a topology to be run in local mode. |
| * |
| * @param topologyName the name of the topology to use |
| * @param conf the config for the topology |
| * @param topology the topology itself. |
| * @param submitOpts options for topology |
| * @return an AutoCloseable that will kill the topology. |
| * @throws TException on any error from nimbus |
| */ |
| ILocalTopology submitTopologyWithOpts(String topologyName, Map<String, Object> conf, StormTopology topology, |
| SubmitOptions submitOpts) throws TException; |
| |
| /** |
| * Upload new credentials to a topology. |
| * |
| * @param topologyName the name of the topology |
| * @param creds the new credentails for the topology. |
| * @throws TException on any error from nimbus |
| */ |
| void uploadNewCredentials(String topologyName, Credentials creds) throws TException; |
| |
| /** |
| * Kill a topology (if you are not using ILocalTopology). |
| * |
| * @param topologyName the name of the topology |
| * @throws TException on any error from nimbus |
| */ |
| void killTopology(String topologyName) throws TException; |
| |
| /** |
| * Kill a topology (if you are not using ILocalTopology). |
| * |
| * @param topologyName the name of the topology |
| * @param options for how to kill the topology |
| * @throws TException on any error from nimbus |
| */ |
| void killTopologyWithOpts(String name, KillOptions options) throws TException; |
| |
| /** |
| * Activate a topology. |
| * |
| * @param topologyName the name of the topology to activate |
| * @throws TException on any error from nimbus |
| */ |
| void activate(String topologyName) throws TException; |
| |
| /** |
| * Deactivate a topology. |
| * |
| * @param topologyName the name of the topology to deactivate |
| * @throws TException on any error from nimbus |
| */ |
| void deactivate(String topologyName) throws TException; |
| |
| /** |
| * Rebalance a topology. |
| * |
| * @param name the name of the topology |
| * @param options options for rebalanceing the topology. |
| * @throws TException on any error from nimbus |
| */ |
| void rebalance(String name, RebalanceOptions options) throws TException; |
| |
| /** |
| * Shut down the cluster. |
| * |
| * @deprecated use {@link #close()} instead. |
| */ |
| @Deprecated |
| void shutdown(); |
| |
| /** |
| * The config of a topology as a JSON string. |
| * |
| * @param id the id of the topology (not the name) |
| * @return The config of a topology as a JSON string |
| * @throws TException on any error from nimbus |
| */ |
| String getTopologyConf(String id) throws TException; |
| |
| /** |
| * Get the compiled storm topology. |
| * |
| * @param id the id of the topology (not the name) |
| * @return the compiled storm topology |
| * @throws TException on any error from nimbus |
| */ |
| StormTopology getTopology(String id) throws TException; |
| |
| /** |
| * Get cluster information. |
| * @return a summary of the current state of the cluster |
| * @throws TException on any error from nimbus |
| */ |
| ClusterSummary getClusterInfo() throws TException; |
| |
| /** |
| * Get the state of a topology. |
| * |
| * @param id the id of the topology (not the name) |
| * @return the state of a topology |
| * @throws TException on any error from nimbus |
| */ |
| TopologyInfo getTopologyInfo(String id) throws TException; |
| |
| /** |
| * This is intended for internal testing only. |
| * |
| * @return an internal class that holds the state of the cluster. |
| */ |
| IStormClusterState getClusterState(); |
| |
| /** |
| * Advance the cluster time when the cluster is using SimulatedTime. This is intended for internal testing only. |
| * |
| * @param secs the number of seconds to advance time |
| */ |
| void advanceClusterTime(int secs) throws InterruptedException; |
| |
| /** |
| * Advance the cluster time when the cluster is using SimulatedTime. This is intended for internal testing only. |
| * |
| * @param secs the number of seconds to advance time |
| * @param steps the number of steps we should take when advancing simulated time |
| */ |
| void advanceClusterTime(int secs, int step) throws InterruptedException; |
| |
| /** |
| * If the cluster is tracked get the id for the tracked cluster. This is intended for internal testing only. |
| * |
| * @return the id of the tracked cluster |
| */ |
| String getTrackedId(); |
| |
| /** |
| * Close this class to kill the topology. This is here mostly for backwards compatibility. |
| */ |
| interface ILocalTopology extends AutoCloseable { |
| |
| } |
| } |