(ctx context.Context, dockerCLI command.Cli, secrets []swarm.SecretSpec)
| 108 | } |
| 109 | |
| 110 | func createSecrets(ctx context.Context, dockerCLI command.Cli, secrets []swarm.SecretSpec) error { |
| 111 | apiClient := dockerCLI.Client() |
| 112 | |
| 113 | for _, secretSpec := range secrets { |
| 114 | res, err := apiClient.SecretInspect(ctx, secretSpec.Name, client.SecretInspectOptions{}) |
| 115 | switch { |
| 116 | case err == nil: |
| 117 | // secret already exists, then we update that |
| 118 | _, err := apiClient.SecretUpdate(ctx, res.Secret.ID, client.SecretUpdateOptions{ |
| 119 | Version: res.Secret.Meta.Version, |
| 120 | Spec: secretSpec, |
| 121 | }) |
| 122 | if err != nil { |
| 123 | return fmt.Errorf("failed to update secret %s: %w", secretSpec.Name, err) |
| 124 | } |
| 125 | case errdefs.IsNotFound(err): |
| 126 | // secret does not exist, then we create a new one. |
| 127 | _, _ = fmt.Fprintln(dockerCLI.Out(), "Creating secret", secretSpec.Name) |
| 128 | _, err := apiClient.SecretCreate(ctx, client.SecretCreateOptions{ |
| 129 | Spec: secretSpec, |
| 130 | }) |
| 131 | if err != nil { |
| 132 | return fmt.Errorf("failed to create secret %s: %w", secretSpec.Name, err) |
| 133 | } |
| 134 | default: |
| 135 | return err |
| 136 | } |
| 137 | } |
| 138 | return nil |
| 139 | } |
| 140 | |
| 141 | func createConfigs(ctx context.Context, dockerCLI command.Cli, configs []swarm.ConfigSpec) error { |
| 142 | apiClient := dockerCLI.Client() |
no test coverage detected
searching dependent graphs…