mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
fix cherry-pick
Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
parent
692c98895f
commit
8d0198c59d
4 changed files with 2 additions and 63 deletions
|
@ -12,7 +12,7 @@ import (
|
||||||
|
|
||||||
// ParseSecrets retrieves the secrets from the requested names and converts
|
// ParseSecrets retrieves the secrets from the requested names and converts
|
||||||
// them to secret references to use with the spec
|
// them to secret references to use with the spec
|
||||||
func ParseSecrets(client client.APIClient, requestedSecrets []*types.SecretRequestOption) ([]*swarmtypes.SecretReference, error) {
|
func ParseSecrets(client client.SecretAPIClient, requestedSecrets []*types.SecretRequestOption) ([]*swarmtypes.SecretReference, error) {
|
||||||
secretRefs := make(map[string]*swarmtypes.SecretReference)
|
secretRefs := make(map[string]*swarmtypes.SecretReference)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
|
|
|
@ -431,7 +431,7 @@ func updateEnvironment(flags *pflag.FlagSet, field *[]string) {
|
||||||
*field = removeItems(*field, toRemove, envKey)
|
*field = removeItems(*field, toRemove, envKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getUpdatedSecrets(apiClient client.APIClient, flags *pflag.FlagSet, secrets []*swarm.SecretReference) ([]*swarm.SecretReference, error) {
|
func getUpdatedSecrets(apiClient client.SecretAPIClient, flags *pflag.FlagSet, secrets []*swarm.SecretReference) ([]*swarm.SecretReference, error) {
|
||||||
if flags.Changed(flagSecretAdd) {
|
if flags.Changed(flagSecretAdd) {
|
||||||
values := flags.Lookup(flagSecretAdd).Value.(*opts.SecretOpt).Value()
|
values := flags.Lookup(flagSecretAdd).Value.(*opts.SecretOpt).Value()
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
package service
|
package service
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"sort"
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types"
|
|
||||||
"github.com/docker/docker/api/types/container"
|
"github.com/docker/docker/api/types/container"
|
||||||
mounttypes "github.com/docker/docker/api/types/mount"
|
mounttypes "github.com/docker/docker/api/types/mount"
|
||||||
"github.com/docker/docker/api/types/swarm"
|
"github.com/docker/docker/api/types/swarm"
|
||||||
|
@ -384,61 +382,3 @@ func TestValidatePort(t *testing.T) {
|
||||||
assert.Error(t, err, e)
|
assert.Error(t, err, e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type secretAPIClientMock struct {
|
|
||||||
listResult []swarm.Secret
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s secretAPIClientMock) SecretList(ctx context.Context, options types.SecretListOptions) ([]swarm.Secret, error) {
|
|
||||||
return s.listResult, nil
|
|
||||||
}
|
|
||||||
func (s secretAPIClientMock) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error) {
|
|
||||||
return types.SecretCreateResponse{}, nil
|
|
||||||
}
|
|
||||||
func (s secretAPIClientMock) SecretRemove(ctx context.Context, id string) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
func (s secretAPIClientMock) SecretInspectWithRaw(ctx context.Context, name string) (swarm.Secret, []byte, error) {
|
|
||||||
return swarm.Secret{}, []byte{}, nil
|
|
||||||
}
|
|
||||||
func (s secretAPIClientMock) SecretUpdate(ctx context.Context, id string, version swarm.Version, secret swarm.SecretSpec) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// TestUpdateSecretUpdateInPlace tests the ability to update the "target" of an secret with "docker service update"
|
|
||||||
// by combining "--secret-rm" and "--secret-add" for the same secret.
|
|
||||||
func TestUpdateSecretUpdateInPlace(t *testing.T) {
|
|
||||||
apiClient := secretAPIClientMock{
|
|
||||||
listResult: []swarm.Secret{
|
|
||||||
{
|
|
||||||
ID: "tn9qiblgnuuut11eufquw5dev",
|
|
||||||
Spec: swarm.SecretSpec{Annotations: swarm.Annotations{Name: "foo"}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
flags := newUpdateCommand(nil).Flags()
|
|
||||||
flags.Set("secret-add", "source=foo,target=foo2")
|
|
||||||
flags.Set("secret-rm", "foo")
|
|
||||||
|
|
||||||
secrets := []*swarm.SecretReference{
|
|
||||||
{
|
|
||||||
File: &swarm.SecretReferenceFileTarget{
|
|
||||||
Name: "foo",
|
|
||||||
UID: "0",
|
|
||||||
GID: "0",
|
|
||||||
Mode: 292,
|
|
||||||
},
|
|
||||||
SecretID: "tn9qiblgnuuut11eufquw5dev",
|
|
||||||
SecretName: "foo",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
updatedSecrets, err := getUpdatedSecrets(apiClient, flags, secrets)
|
|
||||||
|
|
||||||
assert.Equal(t, err, nil)
|
|
||||||
assert.Equal(t, len(updatedSecrets), 1)
|
|
||||||
assert.Equal(t, updatedSecrets[0].SecretID, "tn9qiblgnuuut11eufquw5dev")
|
|
||||||
assert.Equal(t, updatedSecrets[0].SecretName, "foo")
|
|
||||||
assert.Equal(t, updatedSecrets[0].File.Name, "foo2")
|
|
||||||
}
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types/swarm"
|
"github.com/docker/docker/api/types/swarm"
|
||||||
"github.com/docker/docker/integration-cli/checker"
|
|
||||||
"github.com/docker/docker/pkg/integration/checker"
|
"github.com/docker/docker/pkg/integration/checker"
|
||||||
"github.com/go-check/check"
|
"github.com/go-check/check"
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue