UNSUBSCRIBE On Tue, Aug 13, 2019 at 3:02 PM GitBox <[email protected]> wrote:
> jacobtolar commented on a change in pull request #2878: [STORM-3257] > 'storm kill' command line should be able to continue on error > URL: https://github.com/apache/storm/pull/2878#discussion_r313230484 > > > > ########## > File path: storm-core/src/jvm/org/apache/storm/command/KillTopology.java > ########## > @@ -25,21 +25,49 @@ > > public static void main(String[] args) throws Exception { > Map<String, Object> cl = CLI.opt("w", "wait", null, CLI.AS_INT) > + .boolOpt("i", "ignore-errors") > .arg("TOPO", CLI.INTO_LIST) > .parse(args); > + > + @SuppressWarnings("unchecked") > final List<String> names = (List<String>) cl.get("TOPO"); > + > + // wait seconds for topology to shut down > Integer wait = (Integer) cl.get("w"); > > + // if '-i' set, we'll try to kill every topology listed, even if > an error occurs > + Boolean continueOnError = (Boolean) cl.get("i"); > + > final KillOptions opts = new KillOptions(); > if (wait != null) { > opts.set_wait_secs(wait); > } > + > NimbusClient.withConfiguredClient(new NimbusClient.WithNimbus() { > @Override > public void run(Nimbus.Iface nimbus) throws Exception { > + int errorCount = 0; > for (String name : names) { > - nimbus.killTopologyWithOpts(name, opts); > - LOG.info("Killed topology: {}", name); > + try { > + nimbus.killTopologyWithOpts(name, opts); > + LOG.info("Killed topology: {}", name); > + } catch (Exception e) { > + errorCount += 1; > + if (!continueOnError) { > + throw e; > + } else { > + LOG.info( > + "Caught error killing topology '{}'; > continuing as -i was passed. Exception: {}", > + name, > + e.getClass().getName() > + ); > + } > + } > + } > + > + // If we failed to kill any topology, still exit with > failure status > + if (errorCount > 0) { > + throw new RuntimeException("Failed to successfully > kill " + errorCount + " topologies."); > > Review comment: > They'll already be logged above; is the suggestion to log the names > again here? > > ---------------------------------------------------------------- > This is an automated message from the Apache Git Service. > To respond to the message, please log on to GitHub and use the > URL above to go to the specific comment. > > For queries about this service, please contact Infrastructure at: > [email protected] > > > With regards, > Apache Git Services >
