func (c *StatusCommand) Run(ctx *cmd.Context) error { // Just verify the pattern validity client side, do not use the matcher _, err := client.NewUnitMatcher(c.patterns) if err != nil { return err } apiclient, err := juju.NewAPIClientFromName(c.EnvName) if err != nil { return fmt.Errorf(connectionError, c.EnvName, err) } defer apiclient.Close() status, err := apiclient.Status(c.patterns) // Display any error, but continue to print status if some was returned if err != nil { fmt.Fprintf(ctx.Stderr, "%v\n", err) } result := formatStatus(status) return c.out.Write(ctx, result) }
func (c *StatusCommand) Run(ctx *cmd.Context) error { // Just verify the pattern validity client side, do not use the matcher _, err := client.NewUnitMatcher(c.patterns) if err != nil { return err } apiclient, err := newApiClientForStatus(c) if err != nil { return fmt.Errorf(connectionError, c.ConnectionName(), err) } defer apiclient.Close() status, err := apiclient.Status(c.patterns) if err != nil { if status == nil { // Status call completely failed, there is nothing to report return err } // Display any error, but continue to print status if some was returned fmt.Fprintf(ctx.Stderr, "%v\n", err) } result := newStatusFormatter(status).format() return c.out.Write(ctx, result) }