package com.alipay.bluewhale.core.command;
import java.util.Map;
import org.apache.thrift7.TException;
import org.apache.thrift7.protocol.TBinaryProtocol;
import org.apache.thrift7.transport.TFramedTransport;
import org.apache.thrift7.transport.TSocket;
import backtype.storm.Config;
import backtype.storm.generated.KillOptions;
import backtype.storm.generated.Nimbus;
import backtype.storm.generated.NotAliveException;
import com.alipay.bluewhale.core.cluster.StormConfig;
import com.alipay.bluewhale.core.utils.StormUtils;
/**
* kill topology�������� python�ű�������
* @author yannian
*
*/
public class KillTopology {
public static void main(String[] args) throws NotAliveException, TException {
String name=args[0];
KillOptions ops= new KillOptions();
if (args.length > 1) {
Integer wait = 0;
wait = StormUtils.parseInt(args[1]);
ops.set_wait_secs(wait);
}
Map conf=StormConfig.read_storm_config();
String host=String.valueOf(conf.get(Config.NIMBUS_HOST));
Integer port=StormUtils.parseInt(conf.get(Config.NIMBUS_THRIFT_PORT));
TFramedTransport transport=new TFramedTransport(new TSocket(host, port));
TBinaryProtocol prot=new TBinaryProtocol(transport);
Nimbus.Client client=new Nimbus.Client(prot);
transport.open();
try{
client.killTopologyWithOpts(name,ops);
}finally{
transport.close();
}
}
}