forked from coop-cloud/abra
refactor: NewClientWithContext -> New, and use server only
This commit is contained in:
parent
dac679db48
commit
07a43cb314
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -19,21 +19,21 @@ var serverInitCommand = &cli.Command{
|
||||
Name: "init",
|
||||
Usage: "Initialise server for deploying apps",
|
||||
HideHelp: true,
|
||||
ArgsUsage: "<host>",
|
||||
ArgsUsage: "<server>",
|
||||
Description: `
|
||||
Initialise swarm mode on the target <host>.
|
||||
Initialise swarm mode on the target <server>.
|
||||
|
||||
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()
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user