123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package daemon
- import (
- "context"
- "testing"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/api/types/swarm"
- "gotest.tools/v3/assert"
- )
- // ConfigConstructor defines a swarm config constructor
- type ConfigConstructor func(*swarm.Config)
- // CreateConfig creates a config given the specified spec
- func (d *Daemon) CreateConfig(t testing.TB, configSpec swarm.ConfigSpec) string {
- t.Helper()
- cli := d.NewClientT(t)
- defer cli.Close()
- scr, err := cli.ConfigCreate(context.Background(), configSpec)
- assert.NilError(t, err)
- return scr.ID
- }
- // ListConfigs returns the list of the current swarm configs
- func (d *Daemon) ListConfigs(t testing.TB) []swarm.Config {
- t.Helper()
- cli := d.NewClientT(t)
- defer cli.Close()
- configs, err := cli.ConfigList(context.Background(), types.ConfigListOptions{})
- assert.NilError(t, err)
- return configs
- }
- // GetConfig returns a swarm config identified by the specified id
- func (d *Daemon) GetConfig(t testing.TB, id string) *swarm.Config {
- t.Helper()
- cli := d.NewClientT(t)
- defer cli.Close()
- config, _, err := cli.ConfigInspectWithRaw(context.Background(), id)
- assert.NilError(t, err)
- return &config
- }
- // DeleteConfig removes the swarm config identified by the specified id
- func (d *Daemon) DeleteConfig(t testing.TB, id string) {
- t.Helper()
- cli := d.NewClientT(t)
- defer cli.Close()
- err := cli.ConfigRemove(context.Background(), id)
- assert.NilError(t, err)
- }
- // UpdateConfig updates the swarm config identified by the specified id
- // Currently, only label update is supported.
- func (d *Daemon) UpdateConfig(t testing.TB, id string, f ...ConfigConstructor) {
- t.Helper()
- cli := d.NewClientT(t)
- defer cli.Close()
- config := d.GetConfig(t, id)
- for _, fn := range f {
- fn(config)
- }
- err := cli.ConfigUpdate(context.Background(), config.ID, config.Version, config.Spec)
- assert.NilError(t, err)
- }
|