MCPcopy Index your code
hub / github.com/docker/cli / resolveDefaultContext

Function resolveDefaultContext

cli/command/defaultcontextstore.go:57–103  ·  view source on GitHub ↗

resolveDefaultContext creates a Metadata for the current CLI invocation parameters

(opts *cliflags.ClientOptions, config store.Config)

Source from the content-addressed store, hash-verified

55
56// resolveDefaultContext creates a Metadata for the current CLI invocation parameters
57func resolveDefaultContext(opts *cliflags.ClientOptions, config store.Config) (*DefaultContext, error) {
58 contextTLSData := store.ContextTLSData{
59 Endpoints: make(map[string]store.EndpointTLSData),
60 }
61 contextMetadata := store.Metadata{
62 Endpoints: make(map[string]any),
63 Metadata: DockerContext{
64 Description: "",
65 },
66 Name: DefaultContextName,
67 }
68
69 dockerEP, err := resolveDefaultDockerEndpoint(opts)
70 if err != nil {
71 return nil, err
72 }
73 contextMetadata.Endpoints[docker.DockerEndpoint] = dockerEP.EndpointMeta
74 if dockerEP.TLSData != nil {
75 contextTLSData.Endpoints[docker.DockerEndpoint] = *dockerEP.TLSData.ToStoreTLSData()
76 }
77
78 if err := config.ForeachEndpointType(func(n string, get store.TypeGetter) error {
79 if n == docker.DockerEndpoint { // handled above
80 return nil
81 }
82 ep := get()
83 if i, ok := ep.(EndpointDefaultResolver); ok {
84 meta, tls, err := i.ResolveDefault()
85 if err != nil {
86 return err
87 }
88 if meta == nil {
89 return nil
90 }
91 contextMetadata.Endpoints[n] = meta
92 if tls != nil {
93 contextTLSData.Endpoints[n] = *tls
94 }
95 }
96 // Nothing to be done
97 return nil
98 }); err != nil {
99 return nil, err
100 }
101
102 return &DefaultContext{Meta: contextMetadata, TLS: contextTLSData}, nil
103}
104
105// List implements store.Store's List
106func (s *ContextStoreWithDefault) List() ([]store.Metadata, error) {

Callers 3

InitializeMethod · 0.85
NewAPIClientFromFlagsFunction · 0.85

Calls 4

ToStoreTLSDataMethod · 0.80
ForeachEndpointTypeMethod · 0.80
ResolveDefaultMethod · 0.80

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…