func runRemove(dockerCli *client.DockerCli, networks []string) error { client := dockerCli.Client() ctx := context.Background() status := 0 for _, name := range networks { if err := client.NetworkRemove(ctx, name); err != nil { fmt.Fprintf(dockerCli.Err(), "%s\n", err) status = 1 continue } fmt.Fprintf(dockerCli.Err(), "%s\n", name) } if status != 0 { return cli.StatusError{StatusCode: status} } return nil }
func runRemove(dockerCli *client.DockerCli, opts removeOptions) error { namespace := opts.namespace client := dockerCli.Client() stderr := dockerCli.Err() ctx := context.Background() hasError := false services, err := getServices(ctx, client, namespace) if err != nil { return err } for _, service := range services { fmt.Fprintf(stderr, "Removing service %s\n", service.Spec.Name) if err := client.ServiceRemove(ctx, service.ID); err != nil { hasError = true fmt.Fprintf(stderr, "Failed to remove service %s: %s", service.ID, err) } } networks, err := getNetworks(ctx, client, namespace) if err != nil { return err } for _, network := range networks { fmt.Fprintf(stderr, "Removing network %s\n", network.Name) if err := client.NetworkRemove(ctx, network.ID); err != nil { hasError = true fmt.Fprintf(stderr, "Failed to remove network %s: %s", network.ID, err) } } if len(services) == 0 && len(networks) == 0 { fmt.Fprintf(dockerCli.Out(), "Nothing found in stack: %s\n", namespace) return nil } if hasError { return fmt.Errorf("Failed to remove some resources") } return nil }