mirror of https://github.com/docker/cli.git
cli/context/store: metadataStore.get(), .remove(): accept name instead of ID
This allows callers to just pass the name, and handle the conversion to ID and path internally. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
a496a7d501
commit
c6dfff131f
|
@ -41,7 +41,7 @@ func TestMetadataCreateGetRemove(t *testing.T) {
|
|||
assert.NilError(t, err)
|
||||
// create a new instance to check it does not depend on some sort of state
|
||||
testee = metadataStore{root: testDir, config: testCfg}
|
||||
meta, err := testee.get(contextdirOf("test-context"))
|
||||
meta, err := testee.get("test-context")
|
||||
assert.NilError(t, err)
|
||||
assert.DeepEqual(t, meta, testMeta)
|
||||
|
||||
|
@ -49,13 +49,13 @@ func TestMetadataCreateGetRemove(t *testing.T) {
|
|||
|
||||
err = testee.createOrUpdate(expected2)
|
||||
assert.NilError(t, err)
|
||||
meta, err = testee.get(contextdirOf("test-context"))
|
||||
meta, err = testee.get("test-context")
|
||||
assert.NilError(t, err)
|
||||
assert.DeepEqual(t, meta, expected2)
|
||||
|
||||
assert.NilError(t, testee.remove(contextdirOf("test-context")))
|
||||
assert.NilError(t, testee.remove(contextdirOf("test-context"))) // support duplicate remove
|
||||
_, err = testee.get(contextdirOf("test-context"))
|
||||
assert.NilError(t, testee.remove("test-context"))
|
||||
assert.NilError(t, testee.remove("test-context")) // support duplicate remove
|
||||
_, err = testee.get("test-context")
|
||||
assert.Assert(t, IsErrContextDoesNotExist(err))
|
||||
}
|
||||
|
||||
|
@ -121,7 +121,7 @@ func TestWithEmbedding(t *testing.T) {
|
|||
},
|
||||
}
|
||||
assert.NilError(t, testee.createOrUpdate(Metadata{Metadata: testCtxMeta, Name: "test"}))
|
||||
res, err := testee.get(contextdirOf("test"))
|
||||
res, err := testee.get("test")
|
||||
assert.NilError(t, err)
|
||||
assert.Equal(t, testCtxMeta, res.Metadata)
|
||||
}
|
||||
|
|
|
@ -55,9 +55,12 @@ func parseTypedOrMap(payload []byte, getter TypeGetter) (interface{}, error) {
|
|||
return reflect.ValueOf(typed).Elem().Interface(), nil
|
||||
}
|
||||
|
||||
func (s *metadataStore) get(id contextdir) (Metadata, error) {
|
||||
contextDir := s.contextDir(id)
|
||||
bytes, err := os.ReadFile(filepath.Join(contextDir, metaFile))
|
||||
func (s *metadataStore) get(name string) (Metadata, error) {
|
||||
return s.getByID(contextdirOf(name))
|
||||
}
|
||||
|
||||
func (s *metadataStore) getByID(id contextdir) (Metadata, error) {
|
||||
bytes, err := os.ReadFile(filepath.Join(s.contextDir(id), metaFile))
|
||||
if err != nil {
|
||||
return Metadata{}, convertContextDoesNotExist(err)
|
||||
}
|
||||
|
@ -80,8 +83,8 @@ func (s *metadataStore) get(id contextdir) (Metadata, error) {
|
|||
return r, err
|
||||
}
|
||||
|
||||
func (s *metadataStore) remove(id contextdir) error {
|
||||
contextDir := s.contextDir(id)
|
||||
func (s *metadataStore) remove(name string) error {
|
||||
contextDir := s.contextDir(contextdirOf(name))
|
||||
return os.RemoveAll(contextDir)
|
||||
}
|
||||
|
||||
|
@ -95,7 +98,7 @@ func (s *metadataStore) list() ([]Metadata, error) {
|
|||
}
|
||||
var res []Metadata
|
||||
for _, dir := range ctxDirs {
|
||||
c, err := s.get(contextdir(dir))
|
||||
c, err := s.getByID(contextdir(dir))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -137,14 +137,14 @@ func (s *store) CreateOrUpdate(meta Metadata) error {
|
|||
|
||||
func (s *store) Remove(name string) error {
|
||||
id := contextdirOf(name)
|
||||
if err := s.meta.remove(id); err != nil {
|
||||
if err := s.meta.remove(name); err != nil {
|
||||
return patchErrContextName(err, name)
|
||||
}
|
||||
return patchErrContextName(s.tls.removeAllContextData(id), name)
|
||||
}
|
||||
|
||||
func (s *store) GetMetadata(name string) (Metadata, error) {
|
||||
res, err := s.meta.get(contextdirOf(name))
|
||||
res, err := s.meta.get(name)
|
||||
patchErrContextName(err, name)
|
||||
return res, err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue