Update Go dependencies

This commit is contained in:
2025-08-07 18:43:26 +03:00
parent 2a0b701b46
commit 896d211ac0
34 changed files with 437 additions and 1601 deletions
+27 -26
View File
@@ -3,12 +3,13 @@ package docker
import (
"context"
"github.com/containerd/errdefs"
"github.com/cuigh/auxo/errors"
"github.com/cuigh/swirl/docker/compose"
composetypes "github.com/cuigh/swirl/docker/compose/types"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/filters"
"github.com/docker/docker/api/types/network"
"github.com/docker/docker/api/types/swarm"
"github.com/docker/docker/client"
)
@@ -19,7 +20,7 @@ const stackLabel = "com.docker.stack.namespace"
func (d *Docker) StackList(ctx context.Context) (stacks map[string][]string, err error) {
err = d.call(func(c *client.Client) (err error) {
var services []swarm.Service
opts := types.ServiceListOptions{
opts := swarm.ServiceListOptions{
Filters: filters.NewArgs(),
}
opts.Filters.Add("label", stackLabel)
@@ -43,7 +44,7 @@ func (d *Docker) StackRemove(ctx context.Context, name string) error {
return d.call(func(c *client.Client) (err error) {
var (
services []swarm.Service
networks []types.NetworkResource
networks []network.Summary
secrets []swarm.Secret
configs []swarm.Config
errs []error
@@ -52,24 +53,24 @@ func (d *Docker) StackRemove(ctx context.Context, name string) error {
args := filters.NewArgs()
args.Add("label", stackLabel+"="+name)
services, err = c.ServiceList(ctx, types.ServiceListOptions{Filters: args})
services, err = c.ServiceList(ctx, swarm.ServiceListOptions{Filters: args})
if err != nil {
return
}
networks, err = c.NetworkList(ctx, types.NetworkListOptions{Filters: args})
networks, err = c.NetworkList(ctx, network.ListOptions{Filters: args})
if err != nil {
return
}
// API version >= 1.25
secrets, err = c.SecretList(ctx, types.SecretListOptions{Filters: args})
secrets, err = c.SecretList(ctx, swarm.SecretListOptions{Filters: args})
if err != nil {
return
}
// API version >= 1.30
configs, err = c.ConfigList(ctx, types.ConfigListOptions{Filters: args})
configs, err = c.ConfigList(ctx, swarm.ConfigListOptions{Filters: args})
if err != nil {
return
}
@@ -167,7 +168,7 @@ func (d *Docker) StackDeploy(ctx context.Context, cfg *composetypes.Config, auth
func (d *Docker) StackCount(ctx context.Context) (count int, err error) {
err = d.call(func(c *client.Client) (err error) {
var services []swarm.Service
opts := types.ServiceListOptions{Filters: filters.NewArgs()}
opts := swarm.ServiceListOptions{Filters: filters.NewArgs()}
opts.Filters.Add("label", stackLabel)
services, err = c.ServiceList(ctx, opts)
if err != nil {
@@ -192,9 +193,9 @@ func validateExternalNetworks(ctx context.Context, c *client.Client, externalNet
// local-scoped networks, so there's no need to inspect them.
continue
}
network, err := c.NetworkInspect(ctx, networkName, types.NetworkInspectOptions{})
network, err := c.NetworkInspect(ctx, networkName, network.InspectOptions{})
switch {
case client.IsErrNotFound(err):
case errdefs.IsNotFound(err):
return errors.Format("network %q is declared as external, but could not be found. You need to create a swarm-scoped network before the stack is deployed", networkName)
case err != nil:
return err
@@ -205,8 +206,8 @@ func validateExternalNetworks(ctx context.Context, c *client.Client, externalNet
return nil
}
func (d *Docker) createNetworks(ctx context.Context, c *client.Client, namespace compose.Namespace, networks map[string]types.NetworkCreate) error {
opts := types.NetworkListOptions{
func (d *Docker) createNetworks(ctx context.Context, c *client.Client, namespace compose.Namespace, networks map[string]network.CreateOptions) error {
opts := network.ListOptions{
Filters: filters.NewArgs(),
}
opts.Filters.Add("label", stackLabel+"="+namespace.Name())
@@ -215,7 +216,7 @@ func (d *Docker) createNetworks(ctx context.Context, c *client.Client, namespace
return err
}
existingNetworkMap := make(map[string]types.NetworkResource)
existingNetworkMap := make(map[string]network.Summary)
for _, network := range existingNetworks {
existingNetworkMap[network.Name] = network
}
@@ -231,7 +232,7 @@ func (d *Docker) createNetworks(ctx context.Context, c *client.Client, namespace
d.logger.Infof("Creating network %s", name)
if _, err = c.NetworkCreate(ctx, name, createOpts); err != nil {
return errors.Wrap(err, "failed to create network "+name)
return errors.Wrap(err, "failed to create network %s", name)
}
}
return nil
@@ -244,12 +245,12 @@ func createSecrets(ctx context.Context, c *client.Client, secrets []swarm.Secret
case err == nil:
// secret already exists, then we update that
if err = c.SecretUpdate(ctx, secret.ID, secret.Meta.Version, secretSpec); err != nil {
return errors.Wrap(err, "failed to update secret "+secretSpec.Name)
return errors.Wrap(err, "failed to update secret %s", secretSpec.Name)
}
case client.IsErrNotFound(err):
case errdefs.IsNotFound(err):
// secret does not exist, then we create a new one.
if _, err = c.SecretCreate(ctx, secretSpec); err != nil {
return errors.Wrap(err, "failed to create secret "+secretSpec.Name)
return errors.Wrap(err, "failed to create secret %s", secretSpec.Name)
}
default:
return err
@@ -265,12 +266,12 @@ func createConfigs(ctx context.Context, c *client.Client, configs []swarm.Config
case err == nil:
// config already exists, then we update that
if err = c.ConfigUpdate(ctx, config.ID, config.Meta.Version, configSpec); err != nil {
return errors.Wrap(err, "failed to update config "+configSpec.Name)
return errors.Wrap(err, "failed to update config %s", configSpec.Name)
}
case client.IsErrNotFound(err):
case errdefs.IsNotFound(err):
// config does not exist, then we create a new one.
if _, err = c.ConfigCreate(ctx, configSpec); err != nil {
return errors.Wrap(err, "failed to create config "+configSpec.Name)
return errors.Wrap(err, "failed to create config %s", configSpec.Name)
}
default:
return err
@@ -280,7 +281,7 @@ func createConfigs(ctx context.Context, c *client.Client, configs []swarm.Config
}
func getServices(ctx context.Context, c *client.Client, namespace string) ([]swarm.Service, error) {
opts := types.ServiceListOptions{
opts := swarm.ServiceListOptions{
Filters: filters.NewArgs(),
}
opts.Filters.Add("label", stackLabel+"="+namespace)
@@ -323,8 +324,8 @@ func (d *Docker) deployServices(
if service, exists := existingServiceMap[name]; exists {
d.logger.Infof("Updating service %s (id: %s)", name, service.ID)
updateOpts := types.ServiceUpdateOptions{
RegistryAuthFrom: types.RegistryAuthFromSpec,
updateOpts := swarm.ServiceUpdateOptions{
RegistryAuthFrom: swarm.RegistryAuthFromSpec,
EncodedRegistryAuth: encodedAuth,
}
@@ -340,7 +341,7 @@ func (d *Docker) deployServices(
updateOpts,
)
if err != nil {
return errors.Wrap(err, "failed to update service "+name)
return errors.Wrap(err, "failed to update service %s", name)
}
for _, warning := range response.Warnings {
@@ -349,7 +350,7 @@ func (d *Docker) deployServices(
} else {
d.logger.Infof("Creating service %s", name)
createOpts := types.ServiceCreateOptions{EncodedRegistryAuth: encodedAuth}
createOpts := swarm.ServiceCreateOptions{EncodedRegistryAuth: encodedAuth}
// query registry if flag disabling it was not set
//if resolveImage == resolveImageAlways || resolveImage == resolveImageChanged {
@@ -357,7 +358,7 @@ func (d *Docker) deployServices(
//}
if _, err = c.ServiceCreate(ctx, serviceSpec, createOpts); err != nil {
return errors.Wrap(err, "failed to create service "+name)
return errors.Wrap(err, "failed to create service %s", name)
}
}
}