提交 7cf285af 作者: ForrestWeston

Add Event Logging to Add Command

License: MIT
Signed-off-by: 's avatarForrestWeston <forrest@protocol.ai>
上级 199a52d7
......@@ -154,7 +154,14 @@ func (adder *Adder) add(reader io.Reader) (ipld.Node, error) {
}
// RootNode returns the root node of the Added.
func (adder *Adder) RootNode() (ipld.Node, error) {
func (adder *Adder) RootNode() (root ipld.Node, err error) {
eip := log.EventBegin(adder.ctx, "RootNode")
defer func() {
if root != nil {
eip.Append(root.Cid())
}
eip.DoneWithErr(err)
}()
// for memoizing
if adder.root != nil {
return adder.root, nil
......@@ -164,19 +171,17 @@ func (adder *Adder) RootNode() (ipld.Node, error) {
if err != nil {
return nil, err
}
root, err := mr.GetValue().GetNode()
root, err = mr.GetValue().GetNode()
if err != nil {
return nil, err
}
// if not wrapping, AND one root file, use that hash as root.
if !adder.Wrap && len(root.Links()) == 1 {
nd, err := root.Links()[0].GetNode(adder.ctx, adder.dagService)
root, err = root.Links()[0].GetNode(adder.ctx, adder.dagService)
if err != nil {
return nil, err
}
root = nd
}
adder.root = root
......@@ -185,11 +190,16 @@ func (adder *Adder) RootNode() (ipld.Node, error) {
// Recursively pins the root node of Adder and
// writes the pin state to the backing datastore.
func (adder *Adder) PinRoot() error {
func (adder *Adder) PinRoot() (err error) {
eip := log.EventBegin(adder.ctx, "PinRoot")
defer func() {
eip.DoneWithErr(err)
}()
root, err := adder.RootNode()
if err != nil {
return err
}
eip.Append(root.Cid())
if !adder.Pin {
return nil
}
......@@ -210,11 +220,21 @@ func (adder *Adder) PinRoot() error {
}
adder.pinning.PinWithMode(rnk, pin.Recursive)
return adder.pinning.Flush()
if err = adder.pinning.Flush(); err != nil {
return err
}
return nil
}
// Finalize flushes the mfs root directory and returns the mfs root node.
func (adder *Adder) Finalize() (ipld.Node, error) {
func (adder *Adder) Finalize() (node ipld.Node, err error) {
eip := log.EventBegin(adder.ctx, "Finalize")
defer func() {
if node != nil {
eip.Append(node.Cid())
}
eip.DoneWithErr(err)
}()
mr, err := adder.mfsRoot()
if err != nil {
return nil, err
......@@ -234,7 +254,8 @@ func (adder *Adder) Finalize() (ipld.Node, error) {
}
if len(children) == 0 {
return nil, fmt.Errorf("expected at least one child dir, got none")
err = fmt.Errorf("expected at least one child dir, got none")
return nil, err
}
name = children[0]
......@@ -246,7 +267,8 @@ func (adder *Adder) Finalize() (ipld.Node, error) {
dir, ok := mr.GetValue().(*mfs.Directory)
if !ok {
return nil, fmt.Errorf("root is not a directory")
err = fmt.Errorf("root is not a directory")
return nil, err
}
root, err = dir.Child(name)
......@@ -265,7 +287,11 @@ func (adder *Adder) Finalize() (ipld.Node, error) {
return nil, err
}
return root.GetNode()
node, err = root.GetNode()
if err != nil {
return nil, err
}
return node, nil
}
func (adder *Adder) outputDirs(path string, fsn mfs.FSNode) error {
......@@ -425,7 +451,12 @@ func (adder *Adder) addNode(node ipld.Node, path string) error {
}
// AddFile adds the given file while respecting the adder.
func (adder *Adder) AddFile(file files.File) error {
func (adder *Adder) AddFile(file files.File) (err error) {
eip := log.EventBegin(adder.ctx, "AddFile")
defer func() {
eip.Append(logging.LoggableMap{"file": file.FileName()})
eip.DoneWithErr(err)
}()
if adder.Pin {
adder.unlocker = adder.blockstore.PinLock()
}
......@@ -435,7 +466,10 @@ func (adder *Adder) AddFile(file files.File) error {
}
}()
return adder.addFile(file)
if err = adder.addFile(file); err != nil {
return err
}
return nil
}
func (adder *Adder) addFile(file files.File) error {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论