github.com/rita33cool1/iot-system-gateway@v0.0.0-20200911033302-e65bde238cc5/docker-engine/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/gotestyourself/gotestyourself/assert" 9 ) 10 11 // SecretConstructor defines a swarm secret constructor 12 type SecretConstructor func(*swarm.Secret) 13 14 // CreateSecret creates a secret given the specified spec 15 func (d *Daemon) CreateSecret(t assert.TestingT, secretSpec swarm.SecretSpec) string { 16 cli := d.NewClientT(t) 17 defer cli.Close() 18 19 scr, err := cli.SecretCreate(context.Background(), secretSpec) 20 assert.NilError(t, err) 21 22 return scr.ID 23 } 24 25 // ListSecrets returns the list of the current swarm secrets 26 func (d *Daemon) ListSecrets(t assert.TestingT) []swarm.Secret { 27 cli := d.NewClientT(t) 28 defer cli.Close() 29 30 secrets, err := cli.SecretList(context.Background(), types.SecretListOptions{}) 31 assert.NilError(t, err) 32 return secrets 33 } 34 35 // GetSecret returns a swarm secret identified by the specified id 36 func (d *Daemon) GetSecret(t assert.TestingT, id string) *swarm.Secret { 37 cli := d.NewClientT(t) 38 defer cli.Close() 39 40 secret, _, err := cli.SecretInspectWithRaw(context.Background(), id) 41 assert.NilError(t, err) 42 return &secret 43 } 44 45 // DeleteSecret removes the swarm secret identified by the specified id 46 func (d *Daemon) DeleteSecret(t assert.TestingT, id string) { 47 cli := d.NewClientT(t) 48 defer cli.Close() 49 50 err := cli.SecretRemove(context.Background(), id) 51 assert.NilError(t, err) 52 } 53 54 // UpdateSecret updates the swarm secret identified by the specified id 55 // Currently, only label update is supported. 56 func (d *Daemon) UpdateSecret(t assert.TestingT, id string, f ...SecretConstructor) { 57 cli := d.NewClientT(t) 58 defer cli.Close() 59 60 secret := d.GetSecret(t, id) 61 for _, fn := range f { 62 fn(secret) 63 } 64 65 err := cli.SecretUpdate(context.Background(), secret.ID, secret.Version, secret.Spec) 66 67 assert.NilError(t, err) 68 }