github.com/jwhonce/docker@v0.6.7-0.20190327063223-da823cf3a5a3/internal/test/daemon/secret.go (about) 1 package daemon 2 3 import ( 4 "context" 5 6 "github.com/docker/docker/api/types" 7 "github.com/docker/docker/api/types/swarm" 8 "github.com/docker/docker/internal/test" 9 "gotest.tools/assert" 10 ) 11 12 // SecretConstructor defines a swarm secret constructor 13 type SecretConstructor func(*swarm.Secret) 14 15 // CreateSecret creates a secret given the specified spec 16 func (d *Daemon) CreateSecret(t assert.TestingT, secretSpec swarm.SecretSpec) string { 17 if ht, ok := t.(test.HelperT); ok { 18 ht.Helper() 19 } 20 cli := d.NewClientT(t) 21 defer cli.Close() 22 23 scr, err := cli.SecretCreate(context.Background(), secretSpec) 24 assert.NilError(t, err) 25 26 return scr.ID 27 } 28 29 // ListSecrets returns the list of the current swarm secrets 30 func (d *Daemon) ListSecrets(t assert.TestingT) []swarm.Secret { 31 if ht, ok := t.(test.HelperT); ok { 32 ht.Helper() 33 } 34 cli := d.NewClientT(t) 35 defer cli.Close() 36 37 secrets, err := cli.SecretList(context.Background(), types.SecretListOptions{}) 38 assert.NilError(t, err) 39 return secrets 40 } 41 42 // GetSecret returns a swarm secret identified by the specified id 43 func (d *Daemon) GetSecret(t assert.TestingT, id string) *swarm.Secret { 44 if ht, ok := t.(test.HelperT); ok { 45 ht.Helper() 46 } 47 cli := d.NewClientT(t) 48 defer cli.Close() 49 50 secret, _, err := cli.SecretInspectWithRaw(context.Background(), id) 51 assert.NilError(t, err) 52 return &secret 53 } 54 55 // DeleteSecret removes the swarm secret identified by the specified id 56 func (d *Daemon) DeleteSecret(t assert.TestingT, id string) { 57 if ht, ok := t.(test.HelperT); ok { 58 ht.Helper() 59 } 60 cli := d.NewClientT(t) 61 defer cli.Close() 62 63 err := cli.SecretRemove(context.Background(), id) 64 assert.NilError(t, err) 65 } 66 67 // UpdateSecret updates the swarm secret identified by the specified id 68 // Currently, only label update is supported. 69 func (d *Daemon) UpdateSecret(t assert.TestingT, id string, f ...SecretConstructor) { 70 if ht, ok := t.(test.HelperT); ok { 71 ht.Helper() 72 } 73 cli := d.NewClientT(t) 74 defer cli.Close() 75 76 secret := d.GetSecret(t, id) 77 for _, fn := range f { 78 fn(secret) 79 } 80 81 err := cli.SecretUpdate(context.Background(), secret.ID, secret.Version, secret.Spec) 82 83 assert.NilError(t, err) 84 }