forked from toolshed/abra
fix: use import only once
This commit is contained in:
parent
da049ad69a
commit
56796cf768
@ -16,7 +16,6 @@ import (
|
|||||||
"github.com/docker/docker/api/types/swarm"
|
"github.com/docker/docker/api/types/swarm"
|
||||||
"github.com/docker/docker/api/types/versions"
|
"github.com/docker/docker/api/types/versions"
|
||||||
"github.com/docker/docker/client"
|
"github.com/docker/docker/client"
|
||||||
apiclient "github.com/docker/docker/client"
|
|
||||||
dockerclient "github.com/docker/docker/client"
|
dockerclient "github.com/docker/docker/client"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@ -49,8 +48,8 @@ func getAllStacksFilter() filters.Args {
|
|||||||
return filter
|
return filter
|
||||||
}
|
}
|
||||||
|
|
||||||
func getStackServices(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Service, error) {
|
func getStackServices(ctx context.Context, dockerclient client.APIClient, namespace string) ([]swarm.Service, error) {
|
||||||
return apiclient.ServiceList(ctx, types.ServiceListOptions{Filters: getStackServiceFilter(namespace)})
|
return dockerclient.ServiceList(ctx, types.ServiceListOptions{Filters: getStackServiceFilter(namespace)})
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDeployedServicesByLabel filters services by label
|
// GetDeployedServicesByLabel filters services by label
|
||||||
@ -109,7 +108,7 @@ func checkDaemonIsSwarmManager(contextName string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkDaemonIsSwarmManagerViaClient(ctx context.Context, cl *apiclient.Client) error {
|
func checkDaemonIsSwarmManagerViaClient(ctx context.Context, cl *dockerclient.Client) error {
|
||||||
info, err := cl.Info(ctx)
|
info, err := cl.Info(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -136,7 +135,7 @@ func quotesOrWhitespace(r rune) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pruneServices removes services that are no longer referenced in the source
|
// pruneServices removes services that are no longer referenced in the source
|
||||||
func pruneServices(ctx context.Context, cl *apiclient.Client, namespace convert.Namespace, services map[string]struct{}) {
|
func pruneServices(ctx context.Context, cl *dockerclient.Client, namespace convert.Namespace, services map[string]struct{}) {
|
||||||
oldServices, err := getStackServices(ctx, cl, namespace.Name())
|
oldServices, err := getStackServices(ctx, cl, namespace.Name())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Infof("Failed to list services: %s\n", err)
|
logrus.Infof("Failed to list services: %s\n", err)
|
||||||
@ -160,7 +159,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// RunDeploy is the swarm implementation of docker stack deploy
|
// RunDeploy is the swarm implementation of docker stack deploy
|
||||||
func RunDeploy(cl *apiclient.Client, opts Deploy, cfg *composetypes.Config) error {
|
func RunDeploy(cl *dockerclient.Client, opts Deploy, cfg *composetypes.Config) error {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
if err := validateResolveImageFlag(&opts); err != nil {
|
if err := validateResolveImageFlag(&opts); err != nil {
|
||||||
@ -185,7 +184,7 @@ func validateResolveImageFlag(opts *Deploy) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func deployCompose(ctx context.Context, cl *apiclient.Client, opts Deploy, config *composetypes.Config) error {
|
func deployCompose(ctx context.Context, cl *dockerclient.Client, opts Deploy, config *composetypes.Config) error {
|
||||||
if err := checkDaemonIsSwarmManagerViaClient(ctx, cl); err != nil {
|
if err := checkDaemonIsSwarmManagerViaClient(ctx, cl); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -266,7 +265,7 @@ func validateExternalNetworks(ctx context.Context, client dockerclient.NetworkAP
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func createSecrets(ctx context.Context, cl *apiclient.Client, secrets []swarm.SecretSpec) error {
|
func createSecrets(ctx context.Context, cl *dockerclient.Client, secrets []swarm.SecretSpec) error {
|
||||||
for _, secretSpec := range secrets {
|
for _, secretSpec := range secrets {
|
||||||
secret, _, err := cl.SecretInspectWithRaw(ctx, secretSpec.Name)
|
secret, _, err := cl.SecretInspectWithRaw(ctx, secretSpec.Name)
|
||||||
switch {
|
switch {
|
||||||
@ -275,7 +274,7 @@ func createSecrets(ctx context.Context, cl *apiclient.Client, secrets []swarm.Se
|
|||||||
if err := cl.SecretUpdate(ctx, secret.ID, secret.Meta.Version, secretSpec); err != nil {
|
if err := cl.SecretUpdate(ctx, secret.ID, secret.Meta.Version, secretSpec); err != nil {
|
||||||
return errors.Wrapf(err, "failed to update secret %s", secretSpec.Name)
|
return errors.Wrapf(err, "failed to update secret %s", secretSpec.Name)
|
||||||
}
|
}
|
||||||
case apiclient.IsErrNotFound(err):
|
case dockerclient.IsErrNotFound(err):
|
||||||
// secret does not exist, then we create a new one.
|
// secret does not exist, then we create a new one.
|
||||||
logrus.Infof("Creating secret %s\n", secretSpec.Name)
|
logrus.Infof("Creating secret %s\n", secretSpec.Name)
|
||||||
if _, err := cl.SecretCreate(ctx, secretSpec); err != nil {
|
if _, err := cl.SecretCreate(ctx, secretSpec); err != nil {
|
||||||
@ -288,7 +287,7 @@ func createSecrets(ctx context.Context, cl *apiclient.Client, secrets []swarm.Se
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func createConfigs(ctx context.Context, cl *apiclient.Client, configs []swarm.ConfigSpec) error {
|
func createConfigs(ctx context.Context, cl *dockerclient.Client, configs []swarm.ConfigSpec) error {
|
||||||
for _, configSpec := range configs {
|
for _, configSpec := range configs {
|
||||||
config, _, err := cl.ConfigInspectWithRaw(ctx, configSpec.Name)
|
config, _, err := cl.ConfigInspectWithRaw(ctx, configSpec.Name)
|
||||||
switch {
|
switch {
|
||||||
@ -297,7 +296,7 @@ func createConfigs(ctx context.Context, cl *apiclient.Client, configs []swarm.Co
|
|||||||
if err := cl.ConfigUpdate(ctx, config.ID, config.Meta.Version, configSpec); err != nil {
|
if err := cl.ConfigUpdate(ctx, config.ID, config.Meta.Version, configSpec); err != nil {
|
||||||
return errors.Wrapf(err, "failed to update config %s", configSpec.Name)
|
return errors.Wrapf(err, "failed to update config %s", configSpec.Name)
|
||||||
}
|
}
|
||||||
case apiclient.IsErrNotFound(err):
|
case dockerclient.IsErrNotFound(err):
|
||||||
// config does not exist, then we create a new one.
|
// config does not exist, then we create a new one.
|
||||||
logrus.Infof("Creating config %s\n", configSpec.Name)
|
logrus.Infof("Creating config %s\n", configSpec.Name)
|
||||||
if _, err := cl.ConfigCreate(ctx, configSpec); err != nil {
|
if _, err := cl.ConfigCreate(ctx, configSpec); err != nil {
|
||||||
@ -310,7 +309,7 @@ func createConfigs(ctx context.Context, cl *apiclient.Client, configs []swarm.Co
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func createNetworks(ctx context.Context, cl *apiclient.Client, namespace convert.Namespace, networks map[string]types.NetworkCreate) error {
|
func createNetworks(ctx context.Context, cl *dockerclient.Client, namespace convert.Namespace, networks map[string]types.NetworkCreate) error {
|
||||||
existingNetworks, err := getStackNetworks(ctx, cl, namespace.Name())
|
existingNetworks, err := getStackNetworks(ctx, cl, namespace.Name())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -339,7 +338,7 @@ func createNetworks(ctx context.Context, cl *apiclient.Client, namespace convert
|
|||||||
}
|
}
|
||||||
|
|
||||||
// nolint: gocyclo
|
// nolint: gocyclo
|
||||||
func deployServices(ctx context.Context, cl *apiclient.Client, services map[string]swarm.ServiceSpec, namespace convert.Namespace, sendAuth bool, resolveImage string) error {
|
func deployServices(ctx context.Context, cl *dockerclient.Client, services map[string]swarm.ServiceSpec, namespace convert.Namespace, sendAuth bool, resolveImage string) error {
|
||||||
existingServices, err := getStackServices(ctx, cl, namespace.Name())
|
existingServices, err := getStackServices(ctx, cl, namespace.Name())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -430,14 +429,14 @@ func deployServices(ctx context.Context, cl *apiclient.Client, services map[stri
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getStackNetworks(ctx context.Context, apiclient client.APIClient, namespace string) ([]types.NetworkResource, error) {
|
func getStackNetworks(ctx context.Context, dockerclient client.APIClient, namespace string) ([]types.NetworkResource, error) {
|
||||||
return apiclient.NetworkList(ctx, types.NetworkListOptions{Filters: getStackFilter(namespace)})
|
return dockerclient.NetworkList(ctx, types.NetworkListOptions{Filters: getStackFilter(namespace)})
|
||||||
}
|
}
|
||||||
|
|
||||||
func getStackSecrets(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Secret, error) {
|
func getStackSecrets(ctx context.Context, dockerclient client.APIClient, namespace string) ([]swarm.Secret, error) {
|
||||||
return apiclient.SecretList(ctx, types.SecretListOptions{Filters: getStackFilter(namespace)})
|
return dockerclient.SecretList(ctx, types.SecretListOptions{Filters: getStackFilter(namespace)})
|
||||||
}
|
}
|
||||||
|
|
||||||
func getStackConfigs(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Config, error) {
|
func getStackConfigs(ctx context.Context, dockerclient client.APIClient, namespace string) ([]swarm.Config, error) {
|
||||||
return apiclient.ConfigList(ctx, types.ConfigListOptions{Filters: getStackFilter(namespace)})
|
return dockerclient.ConfigList(ctx, types.ConfigListOptions{Filters: getStackFilter(namespace)})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user