storm-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aniket Alhat <aniket.al...@gmail.com>
Subject Re: [GitHub] [storm] jacobtolar commented on a change in pull request #2878: [STORM-3257] 'storm kill' command line should be able to continue on error
Date Tue, 13 Aug 2019 06:03:28 GMT
UNSUBSCRIBE

On Tue, Aug 13, 2019 at 3:02 PM GitBox <git@apache.org> 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:
> users@infra.apache.org
>
>
> With regards,
> Apache Git Services
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message