@@ -28,66 +28,31 @@ type ContextStoreWithDefault struct {
2828 Resolver DefaultContextResolver
2929}
3030
31- // EndpointDefaultResolver is implemented by any EndpointMeta object
32- // which wants to be able to populate the store with whatever their default is.
33- type EndpointDefaultResolver interface {
34- // ResolveDefault returns values suitable for storing in store.Metadata.Endpoints
35- // and store.ContextTLSData.Endpoints.
36- //
37- // An error is only returned for something fatal, not simply
38- // the lack of a default (e.g. because the config file which
39- // would contain it is missing). If there is no default then
40- // returns nil, nil, nil.
41- ResolveDefault () (interface {}, * store.EndpointTLSData , error )
42- }
43-
4431// ResolveDefaultContext creates a Metadata for the current CLI invocation parameters
45- func ResolveDefaultContext (opts * cliflags.ClientOptions , config store.Config ) (* DefaultContext , error ) {
46- contextTLSData := store.ContextTLSData {
47- Endpoints : make (map [string ]store.EndpointTLSData ),
48- }
49- contextMetadata := store.Metadata {
50- Endpoints : make (map [string ]interface {}),
51- Metadata : DockerContext {
52- Description : "" ,
53- },
54- Name : DefaultContextName ,
55- }
56-
32+ func ResolveDefaultContext (opts * cliflags.ClientOptions ) (* DefaultContext , error ) {
5733 dockerEP , err := resolveDefaultDockerEndpoint (opts )
5834 if err != nil {
5935 return nil , err
6036 }
61- contextMetadata . Endpoints [ docker . DockerEndpoint ] = dockerEP . EndpointMeta
37+ contextTLSData := store. ContextTLSData {}
6238 if dockerEP .TLSData != nil {
63- contextTLSData .Endpoints [docker .DockerEndpoint ] = * dockerEP .TLSData .ToStoreTLSData ()
64- }
65-
66- if err := config .ForeachEndpointType (func (n string , get store.TypeGetter ) error {
67- if n == docker .DockerEndpoint { // handled above
68- return nil
39+ contextTLSData .Endpoints = map [string ]store.EndpointTLSData {
40+ docker .DockerEndpoint : * dockerEP .TLSData .ToStoreTLSData (),
6941 }
70- ep := get ()
71- if i , ok := ep .(EndpointDefaultResolver ); ok {
72- meta , tls , err := i .ResolveDefault ()
73- if err != nil {
74- return err
75- }
76- if meta == nil {
77- return nil
78- }
79- contextMetadata .Endpoints [n ] = meta
80- if tls != nil {
81- contextTLSData .Endpoints [n ] = * tls
82- }
83- }
84- // Nothing to be done
85- return nil
86- }); err != nil {
87- return nil , err
8842 }
8943
90- return & DefaultContext {Meta : contextMetadata , TLS : contextTLSData }, nil
44+ return & DefaultContext {
45+ Meta : store.Metadata {
46+ Endpoints : map [string ]interface {}{
47+ docker .DockerEndpoint : dockerEP .EndpointMeta ,
48+ },
49+ Metadata : DockerContext {
50+ Description : "" ,
51+ },
52+ Name : DefaultContextName ,
53+ },
54+ TLS : contextTLSData ,
55+ }, nil
9156}
9257
9358// List implements store.Store's List
0 commit comments