mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Ensure the parent directory for key prefix exists
Currently we are trying to ensure that the parent directory exists as a key. But it is really a directory and etcd expects it to be a directory. So made the change to ensure that the parent key is created as a directory and not as a simple key. Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
This commit is contained in:
parent
c42e2cf44d
commit
72b8f80dc3
1 changed files with 4 additions and 4 deletions
|
@ -385,15 +385,15 @@ func (ds *datastore) GetObject(key string, o KVObject) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ds *datastore) ensureKey(key string) error {
|
func (ds *datastore) ensureParent(parent string) error {
|
||||||
exists, err := ds.store.Exists(key)
|
exists, err := ds.store.Exists(parent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if exists {
|
if exists {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return ds.store.Put(key, []byte{}, nil)
|
return ds.store.Put(parent, []byte{}, &store.WriteOptions{IsDir: true})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ds *datastore) List(key string, kvObject KVObject) ([]KVObject, error) {
|
func (ds *datastore) List(key string, kvObject KVObject) ([]KVObject, error) {
|
||||||
|
@ -411,7 +411,7 @@ func (ds *datastore) List(key string, kvObject KVObject) ([]KVObject, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure the parent key exists
|
// Make sure the parent key exists
|
||||||
if err := ds.ensureKey(key); err != nil {
|
if err := ds.ensureParent(key); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue