diff --git a/cli/app/cp.go b/cli/app/cp.go index fa9d73764..4cc5a57b3 100644 --- a/cli/app/cp.go +++ b/cli/app/cp.go @@ -76,8 +76,8 @@ var appCpCommand = &cli.Command{ } ctx := context.Background() - host := appFiles[appName].Server - cl, err := client.NewClientWithContext(host) + server := appFiles[appName].Server + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/deploy.go b/cli/app/deploy.go index 7dc2c1f2c..332b5e5c4 100644 --- a/cli/app/deploy.go +++ b/cli/app/deploy.go @@ -31,8 +31,8 @@ var appDeployCommand = &cli.Command{ logrus.Fatal(err) } - host := appFiles[appName].Server - cl, err := client.NewClientWithContext(host) + server := appFiles[appName].Server + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/logs.go b/cli/app/logs.go index f2aa8a09c..50260e6ac 100644 --- a/cli/app/logs.go +++ b/cli/app/logs.go @@ -79,8 +79,8 @@ var appLogsCommand = &cli.Command{ } ctx := context.Background() - host := appFiles[appName].Server - cl, err := client.NewClientWithContext(host) + server := appFiles[appName].Server + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/ps.go b/cli/app/ps.go index c7813c126..f19e05a04 100644 --- a/cli/app/ps.go +++ b/cli/app/ps.go @@ -29,9 +29,9 @@ var appPsCommand = &cli.Command{ logrus.Fatal(err) } - host := appFiles[appName].Server + server := appFiles[appName].Server ctx := context.Background() - cl, err := client.NewClientWithContext(host) + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/remove.go b/cli/app/remove.go index 9ca4ae14d..56f6615d5 100644 --- a/cli/app/remove.go +++ b/cli/app/remove.go @@ -59,9 +59,9 @@ var appRemoveCommand = &cli.Command{ } appPath := appFiles[appName].Path - host := appFiles[appName].Server + server := appFiles[appName].Server ctx := context.Background() - cl, err := client.NewClientWithContext(host) + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/run.go b/cli/app/run.go index 8380e8a35..391925dec 100644 --- a/cli/app/run.go +++ b/cli/app/run.go @@ -53,9 +53,9 @@ var appRunCommand = &cli.Command{ logrus.Fatal(err) } - host := appFiles[appName].Server + server := appFiles[appName].Server ctx := context.Background() - cl, err := client.NewClientWithContext(host) + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/secret.go b/cli/app/secret.go index c3aa54e2f..e0cbc943a 100644 --- a/cli/app/secret.go +++ b/cli/app/secret.go @@ -51,7 +51,7 @@ var appSecretGenerateCommand = &cli.Command{ } secretsToCreate := make(map[string]string) - host := appFiles[appName].Server + server := appFiles[appName].Server secretEnvVars := secret.ReadSecretEnvVars(appEnv.Env) if allSecrets { secretsToCreate = secretEnvVars @@ -66,14 +66,14 @@ var appSecretGenerateCommand = &cli.Command{ } } - secretVals, err := secret.GenerateSecrets(secretsToCreate, appEnv.StackName(), host) + secretVals, err := secret.GenerateSecrets(secretsToCreate, appEnv.StackName(), server) if err != nil { logrus.Fatal(err) } if internal.Pass { for name, data := range secretVals { - if err := secret.PassInsertSecret(data, name, appEnv.StackName(), host); err != nil { + if err := secret.PassInsertSecret(data, name, appEnv.StackName(), server); err != nil { logrus.Fatal(err) } } @@ -112,14 +112,14 @@ var appSecretInsertCommand = &cli.Command{ logrus.Fatal(err) } - host := appFiles[appName].Server + server := appFiles[appName].Server secretName := fmt.Sprintf("%s_%s_%s", appEnv.StackName(), name, version) - if err := client.StoreSecret(secretName, data, host); err != nil { + if err := client.StoreSecret(secretName, data, server); err != nil { logrus.Fatal(err) } if internal.Pass { - if err := secret.PassInsertSecret(data, name, appEnv.StackName(), host); err != nil { + if err := secret.PassInsertSecret(data, name, appEnv.StackName(), server); err != nil { logrus.Fatal(err) } } @@ -158,9 +158,9 @@ var appSecretRmCommand = &cli.Command{ logrus.Fatal(err) } - host := appFiles[appName].Server + server := appFiles[appName].Server ctx := context.Background() - cl, err := client.NewClientWithContext(host) + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } @@ -181,7 +181,7 @@ var appSecretRmCommand = &cli.Command{ logrus.Fatal(err) } if internal.Pass { - if err := secret.PassRmSecret(parsed, appEnv.StackName(), host); err != nil { + if err := secret.PassRmSecret(parsed, appEnv.StackName(), server); err != nil { logrus.Fatal(err) } } @@ -191,7 +191,7 @@ var appSecretRmCommand = &cli.Command{ logrus.Fatal(err) } if internal.Pass { - if err := secret.PassRmSecret(parsed, appEnv.StackName(), host); err != nil { + if err := secret.PassRmSecret(parsed, appEnv.StackName(), server); err != nil { logrus.Fatal(err) } } @@ -227,9 +227,9 @@ var appSecretLsCommand = &cli.Command{ tableCol := []string{"Name", "Version", "Generated Name", "Created On Server"} table := abraFormatter.CreateTable(tableCol) - host := appFiles[appName].Server + server := appFiles[appName].Server ctx := context.Background() - cl, err := client.NewClientWithContext(host) + cl, err := client.New(server) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/undeploy.go b/cli/app/undeploy.go index ad5e409c3..844d9ad6c 100644 --- a/cli/app/undeploy.go +++ b/cli/app/undeploy.go @@ -33,7 +33,7 @@ var appUndeployCommand = &cli.Command{ ctx := context.Background() host := appFiles[appName].Server - cl, err := client.NewClientWithContext(host) + cl, err := client.New(host) if err != nil { logrus.Fatal(err) } diff --git a/cli/app/volume.go b/cli/app/volume.go index 72a683eab..17728d48f 100644 --- a/cli/app/volume.go +++ b/cli/app/volume.go @@ -13,19 +13,20 @@ import ( "github.com/urfave/cli/v2" ) -func getAppsHost(appName string) string { +// getAppServer retrieves the server of an app. +func getAppServer(appName string) string { appFiles, err := config.LoadAppFiles("") if err != nil { logrus.Fatal(err) } - var host string + var server string if app, ok := appFiles[appName]; ok { - host = app.Server + server = app.Server } else { logrus.Fatalf(`app "%s" does not exist`, appName) } - return host + return server } var appVolumeListCommand = &cli.Command{ @@ -37,10 +38,10 @@ var appVolumeListCommand = &cli.Command{ if appName == "" { internal.ShowSubcommandHelpAndError(c, errors.New("no app name provided!")) } - host := getAppsHost(appName) ctx := context.Background() - volumeList, err := client.GetVolumes(ctx, host, appName) + server := getAppServer(appName) + volumeList, err := client.GetVolumes(ctx, server, appName) if err != nil { logrus.Fatal(err) } @@ -71,9 +72,9 @@ var appVolumeRemoveCommand = &cli.Command{ if appName == "" { internal.ShowSubcommandHelpAndError(c, errors.New("no app name provided!")) } - host := getAppsHost(appName) + server := getAppServer(appName) ctx := context.Background() - volumeList, err := client.GetVolumes(ctx, host, appName) + volumeList, err := client.GetVolumes(ctx, server, appName) if err != nil { logrus.Fatal(err) } @@ -93,7 +94,7 @@ var appVolumeRemoveCommand = &cli.Command{ volumesToRemove = volumeNames } - err = client.RemoveVolumes(ctx, host, volumesToRemove, internal.Force) + err = client.RemoveVolumes(ctx, server, volumesToRemove, internal.Force) if err != nil { logrus.Fatal(err) } diff --git a/cli/server/init.go b/cli/server/init.go index d9a44d676..9e5711497 100644 --- a/cli/server/init.go +++ b/cli/server/init.go @@ -19,21 +19,21 @@ var serverInitCommand = &cli.Command{ Name: "init", Usage: "Initialise server for deploying apps", HideHelp: true, - ArgsUsage: "", + ArgsUsage: "", Description: ` -Initialise swarm mode on the target . +Initialise swarm mode on the target . This initialisation explicitly chooses the "single host swarm" mode which uses the default IPv4 address as the advertising address. This can be re-configured later for more advanced use cases. `, Action: func(c *cli.Context) error { - host := c.Args().First() - if host == "" { - internal.ShowSubcommandHelpAndError(c, errors.New("no host provided")) + server := c.Args().First() + if server == "" { + internal.ShowSubcommandHelpAndError(c, errors.New("no server provided")) } - cl, err := client.NewClientWithContext(host) + cl, err := client.New(server) if err != nil { return err } @@ -50,13 +50,13 @@ later for more advanced use cases. } ctx := context.Background() - ips, err := resolver.LookupIPAddr(ctx, host) + ips, err := resolver.LookupIPAddr(ctx, server) if err != nil { logrus.Fatal(err) } if len(ips) == 0 { - return fmt.Errorf("unable to retrieve ipv4 address for %s", host) + return fmt.Errorf("unable to retrieve ipv4 address for %s", server) } ipv4 := ips[0].IP.To4().String() diff --git a/client/client.go b/client/client.go index 52604017e..b25aeb441 100644 --- a/client/client.go +++ b/client/client.go @@ -1,3 +1,4 @@ +// Package client provides Docker client initiatialisation functions. package client import ( @@ -8,35 +9,34 @@ import ( "github.com/sirupsen/logrus" ) -func NewClientWithContext(contextName string) (*client.Client, error) { +// New initiates a new Docker client. +func New(contextName string) (*client.Client, error) { context, err := GetContext(contextName) if err != nil { return nil, err } + ctxEndpoint, err := GetContextEndpoint(context) if err != nil { return nil, err } + helper := newConnectionHelper(ctxEndpoint) httpClient := &http.Client{ - // No tls - // No proxy + // No tls, no proxy Transport: &http.Transport{ DialContext: helper.Dialer, }, } var clientOpts []client.Opt - clientOpts = append(clientOpts, client.WithHTTPClient(httpClient), client.WithHost(helper.Host), client.WithDialContext(helper.Dialer), ) - // FIXME: Maybe don't have this variable here and load it beforehand version := os.Getenv("DOCKER_API_VERSION") - if version != "" { clientOpts = append(clientOpts, client.WithVersion(version)) } else { @@ -44,9 +44,9 @@ func NewClientWithContext(contextName string) (*client.Client, error) { } cl, err := client.NewClientWithOpts(clientOpts...) - if err != nil { logrus.Fatalf("unable to create Docker client: %s", err) } + return cl, nil } diff --git a/client/secret.go b/client/secret.go index a627b38e5..8efd81ca4 100644 --- a/client/secret.go +++ b/client/secret.go @@ -7,7 +7,7 @@ import ( ) func StoreSecret(secretName, secretValue, server string) error { - cl, err := NewClientWithContext(server) + cl, err := New(server) if err != nil { return err } diff --git a/client/stack/stack.go b/client/stack/stack.go index fda408093..45ddf5992 100644 --- a/client/stack/stack.go +++ b/client/stack/stack.go @@ -53,7 +53,7 @@ func getStackServices(ctx context.Context, dockerclient client.APIClient, namesp // GetDeployedServicesByLabel filters services by label func GetDeployedServicesByLabel(contextName string, label string) StackStatus { - cl, err := abraClient.NewClientWithContext(contextName) + cl, err := abraClient.New(contextName) if err != nil { if strings.Contains(err.Error(), "does not exist") { // No local context found, bail out gracefully @@ -74,7 +74,7 @@ func GetDeployedServicesByLabel(contextName string, label string) StackStatus { } func GetAllDeployedServices(contextName string) StackStatus { - cl, err := abraClient.NewClientWithContext(contextName) + cl, err := abraClient.New(contextName) if err != nil { if strings.Contains(err.Error(), "does not exist") { // No local context found, bail out gracefully diff --git a/client/volumes.go b/client/volumes.go index 9b7dc13e3..2196105eb 100644 --- a/client/volumes.go +++ b/client/volumes.go @@ -10,7 +10,7 @@ import ( func GetVolumes(ctx context.Context, server string, appName string) ([]*types.Volume, error) { - cl, err := NewClientWithContext(server) + cl, err := New(server) if err != nil { return nil, err } @@ -36,7 +36,7 @@ func GetVolumeNames(volumes []*types.Volume) []string { } func RemoveVolumes(ctx context.Context, server string, volumeNames []string, force bool) error { - cl, err := NewClientWithContext(server) + cl, err := New(server) if err != nil { return err }