8000 Use the newFooCommand/runFoo pattern · docker/cli@1644ef1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1644ef1

Browse files
committed
Use the newFooCommand/runFoo pattern
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
1 parent 6985953 commit 1644ef1

File tree

4 files changed

+53
-44
lines changed

4 files changed

+53
-44
lines changed

cli/command/context/create.go

Lines changed: 5 additions & 4 deletions
10000
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func newCreateCommand(dockerCli command.Cli) *cobra.Command {
1818
Args: cli.ExactArgs(1),
1919
RunE: func(cmd *cobra.Command, args []string) error {
2020
opts.name = args[0]
21-
return opts.process(dockerCli, dockerCli.ContextStore())
21+
return runCreate(dockerCli, opts)
2222
},
2323
}
2424
flags := cmd.Flags()
@@ -42,7 +42,8 @@ type createOptions struct {
4242
use bool
4343
}
4444

45-
func (o *createOptions) process(cli command.Cli, s store.Store) error {
45+
func runCreate(cli command.Cli, o *createOptions) error {
46+
s := cli.ContextStore()
4647
if _, err := s.GetContextMetadata(o.name); !store.IsErrContextDoesNotExist(err) {
4748
if err != nil {
4849
return errors.Wrap(err, "error while getting existing contexts")
@@ -63,7 +64,7 @@ func (o *createOptions) process(cli command.Cli, s store.Store) error {
6364
contextTLSData := store.ContextTLSData{
6465
Endpoints: make(map[string]store.EndpointTLSData),
6566
}
66-
dockerEP, err := o.docker.toEndpoint(cli)
67+
dockerEP, err := getDockerEndpoint(cli, &o.docker)
6768
if err != nil {
6869
return errors.Wrap(err, "unable to create docker endpoint config")
6970
}
@@ -72,7 +73,7 @@ func (o *createOptions) process(cli command.Cli, s store.Store) error {
7273
if dockerTLSData != nil {
7374
contextTLSData.Endpoints[docker.DockerEndpoint] = *dockerTLSData
7475
}
75-
kubernetesEP, err := o.kubernetes.toEndpoint(cli)
76+
kubernetesEP, err := getKubernetesEndpoint(cli, &o.kubernetes)
7677
if err != nil {
7778
return errors.Wrap(err, "unable to create kubernetes endpoint config")
7879
}

cli/command/context/options.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (o *dockerEndpointOptions) addFlags(flags *pflag.FlagSet, prefix string) {
6161
"Copy current docker endpoint configuration")
6262
}
6363

64-
func (o *dockerEndpointOptions) toEndpoint(dockerCli command.Cli) (docker.Endpoint, error) {
64+
func getDockerEndpoint(dockerCli command.Cli, o *dockerEndpointOptions) (docker.Endpoint, error) {
6565
if o.fromCurrent {
6666
return dockerCli.DockerEndpoint(), nil
6767
}
@@ -111,7 +111,7 @@ func (o *kubernetesEndpointOptions) addFlags(flags *pflag.FlagSet, prefix string
111111
"Copy current kubernetes endpoint configuration")
112112
}
113113

114-
func (o *kubernetesEndpointOptions) toEndpoint(dockerCli command.Cli) (*kubernetes.Endpoint, error) {
114+
func getKubernetesEndpoint(dockerCli command.Cli, o *kubernetesEndpointOptions) (*kubernetes.Endpoint, error) {
115115
if o.fromCurrent {
116116
if dockerCli.CurrentContext() != command.ContextDockerHost {
117117
ctxMeta, err := dockerCli.ContextStore().GetContextMetadata(dockerCli.CurrentContext())

cli/command/context/setdocker.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,29 @@ func newSetDockerEndpointCommand(dockerCli command.Cli) *cobra.Command {
1919
if err != nil {
2020
return err
2121
}
22-
contextMetadata, err := dockerCli.ContextStore().GetContextMetadata(name)
23-
if err != nil {
24-
return err
25-
}
26-
endpoint, err := opts.toEndpoint(dockerCli)
27-
if err != nil {
28-
return errors.Wrap(err, "unable to create docker endpoint config")
29-
}
30-
contextMetadata.Endpoints[docker.DockerEndpoint] = endpoint.EndpointMeta
31-
if err := dockerCli.ContextStore().CreateOrUpdateContext(name, contextMetadata); err != nil {
32-
return errors.Wrap(err, "unable to store docker endpoint config")
33-
}
34-
if err := dockerCli.ContextStore().ResetContextEndpointTLSMaterial(name, docker.DockerEndpoint, endpoint.TLSData.ToStoreTLSData()); err != nil {
35-
return errors.Wrap(err, "unable to store docker endpoint TLS data")
36-
}
37-
return nil
22+
return runSetDockerEndpoint(dockerCli, name, opts)
3823
},
3924
}
4025

4126
o 4BEE pts.addFlags(cmd.Flags(), "")
4227
return cmd
4328
}
29+
30+
func runSetDockerEndpoint(dockerCli command.Cli, name string, opts *dockerEndpointOptions) error {
31+
contextMetadata, err := dockerCli.ContextStore().GetContextMetadata(name)
32+
if err != nil {
33+
return err
34+
}
35+
endpoint, err := getDockerEndpoint(dockerCli, opts)
36+
if err != nil {
37+
return errors.Wrap(err, "unable to create docker endpoint config")
38+
}
39+
contextMetadata.Endpoints[docker.DockerEndpoint] = endpoint.EndpointMeta
40+
if err := dockerCli.ContextStore().CreateOrUpdateContext(name, contextMetadata); err != nil {
41+
return errors.Wrap(err, "unable to store docker endpoint config")
42+
}
43+
if err := dockerCli.ContextStore().ResetContextEndpointTLSMaterial(name, docker.DockerEndpoint, endpoint.TLSData.ToStoreTLSData()); err != nil {
44+
return errors.Wrap(err, "unable to store docker endpoint TLS data")
45+
}
46+
return nil
47+
}

cli/command/context/setkubernetes.go

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,35 @@ func newSetKubernetesEndpointCommand(dockerCli command.Cli) *cobra.Command {
1919
if err != nil {
2020
return err
2121
}
22-
contextMetadata, err := dockerCli.ContextStore().GetContextMetadata(name)
23-
if err != nil {
24-
return err
25-
}
26-
endpoint, err := opts.toEndpoint(dockerCli)
27-
if err != nil {
28-
return errors.Wrap(err, "unable to create kubernetes endpoint config")
29-
}
30-
if endpoint == nil {
31-
// resolved endpoint is explicitly nil, and no error occurred
32-
// this means "reset to nil"
33-
delete(contextMetadata.Endpoints, kubernetes.KubernetesEndpoint)
34-
if err := dockerCli.ContextStore().CreateOrUpdateContext(name, contextMetadata); err != nil {
35-
return err
36-
}
37-
return dockerCli.ContextStore().ResetContextEndpointTLSMaterial(name, kubernetes.KubernetesEndpoint, nil)
38-
}
39-
contextMetadata.Endpoints[kubernetes.KubernetesEndpoint] = endpoint.EndpointMeta
40-
if err := dockerCli.ContextStore().CreateOrUpdateContext(name, contextMetadata); err != nil {
41-
return err
42-
}
43-
return dockerCli.ContextStore().ResetContextEndpointTLSMaterial(name, kubernetes.KubernetesEndpoint, endpoint.TLSData.ToStoreTLSData())
22+
return runSetKubernetesEndpoint(dockerCli, name, opts)
4423
},
4524
}
4625

4726
opts.addFlags(cmd.Flags(), "")
4827
return cmd
4928
}
29+
30+
func runSetKubernetesEndpoint(dockerCli command.Cli, name string, opts *kubernetesEndpointOptions) error {
31+
contextMetadata, err := dockerCli.ContextStore().GetContextMetadata(name)
32+
if err != nil {
33+
return err
34+
}
35+
endpoint, err := getKubernetesEndpoint(dockerCli, opts)
36+
if err != nil {
37+
return errors.Wrap(err, "unable to create kubernetes endpoint config")
38+
}
39+
if endpoint == nil {
40+
// resolved endpoint is explicitly nil, and no error occurred
41+
// this means "reset to nil"
42+
delete(contextMetadata.Endpoints, kubernetes.KubernetesEndpoint)
43+
if err := dockerCli.ContextStore().CreateOrUpdateContext(name, contextMetadata); err != nil {
44+
return err
45+
}
46+
return dockerCli.ContextStore().ResetContextEndpointTLSMaterial(name, kubernetes.KubernetesEndpoint, nil)
47+
}
48+
contextMetadata.Endpoints[kubernetes.KubernetesEndpoint] = endpoint.EndpointMeta
49+
if err := dockerCli.ContextStore().CreateOrUpdateContext(name, contextMetadata); err != nil {
50+
return err
51+
}
52+
return dockerCli.ContextStore().ResetContextEndpointTLSMaterial(name, kubernetes.KubernetesEndpoint, endpoint.TLSData.ToStoreTLSData())
53+
}

0 commit comments

Comments
 (0)
0