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  }