mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
refactor(update) more clear dir checking
This commit is contained in:
parent
40d297be66
commit
4ba7d85d56
@ -366,23 +366,16 @@ func (s *store) Update(nodePath string, newValue string, expireTime time.Time) (
|
||||
e := newEvent(Update, nodePath, nextIndex, n.CreatedIndex)
|
||||
eNode := e.Node
|
||||
|
||||
if len(newValue) != 0 {
|
||||
if n.IsDir() {
|
||||
// if the node is a directory, we cannot update value
|
||||
s.Stats.Inc(UpdateFail)
|
||||
return nil, etcdErr.NewError(etcdErr.EcodeNotFile, nodePath, currIndex)
|
||||
}
|
||||
|
||||
eNode.PrevValue = n.Value
|
||||
n.Write(newValue, nextIndex)
|
||||
eNode.Value = newValue
|
||||
|
||||
} else {
|
||||
// update value to empty
|
||||
eNode.Value = n.Value
|
||||
n.Value = ""
|
||||
if n.IsDir() && len(newValue) != 0 {
|
||||
// if the node is a directory, we cannot update value to non-empty
|
||||
s.Stats.Inc(UpdateFail)
|
||||
return nil, etcdErr.NewError(etcdErr.EcodeNotFile, nodePath, currIndex)
|
||||
}
|
||||
|
||||
eNode.PrevValue = n.Value
|
||||
n.Write(newValue, nextIndex)
|
||||
eNode.Value = newValue
|
||||
|
||||
// update ttl
|
||||
n.UpdateTTL(expireTime)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user