etcdserver/api/v2store/store.go
func (s *store) checkDir(parent *node, dirName string) (*node, *v2error.Error) {
	node, ok := parent.Children[dirName]

	if ok {
		if node.IsDir() {
			return node, nil
		}

		return nil, v2error.NewError(v2error.EcodeNotDir, node.Path, s.CurrentIndex)
	}

	n := newDir(s, path.Join(parent.Path, dirName), s.CurrentIndex+1, parent, Permanent)

	parent.Children[dirName] = n

	return n, nil
}
func (s *store) checkDir(parent *node, dirName string) (*node, *v2error.Error) {
	node, ok := parent.Children[dirName]

	if ok {
		if node.IsDir() {
			return node, nil
		}

		return nil, v2error.NewError(v2error.EcodeNotDir, node.Path, s.CurrentIndex)
	}

	n := newDir(s, path.Join(parent.Path, dirName), s.CurrentIndex+1, parent, Permanent)

	parent.Children[dirName] = n

	return n, nil
}
func ( s * store ) checkDir ( parent * node , dirName string ) ( * node , * v2error . Error ) { node , ok := parent . Children [ dirName ] if ok { if node . IsDir ( ) { return node , nil } return nil , v2error . NewError ( v2error . EcodeNotDir , node . Path , s . CurrentIndex ) } n := newDir ( s , path . Join ( parent . Path , dirName ) , s . CurrentIndex + 1 , parent , Permanent ) parent . Children [ dirName ] = n return n , nil }
// checkDir will check whether the component is a directory under parent node.
// If it is a directory, this function will return the pointer to that node.
// If it does not exist, this function will create a new directory and return the pointer to that node.
// If it is a file, this function will return error.
checkDir will check whether the component is a directory under parent node . If it is a directory this function will return the pointer to that node . If it does not exist this function will create a new directory and return the pointer to that node . If it is a file this function will return error .