diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bb10b0343..e1ffe15b25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ Changelog for NeoFS Node ### Changed - SN returns unsigned responses to requests with API >= `v2.22` (#3785) +- Move lens `write-cache` `get`/`list` commands into `fstree` section in CLI (#3838) ### Removed diff --git a/cmd/neofs-lens/internal/writecache/get.go b/cmd/neofs-lens/internal/fstree/get.go similarity index 84% rename from cmd/neofs-lens/internal/writecache/get.go rename to cmd/neofs-lens/internal/fstree/get.go index 4c77e8357a..466da5c3af 100644 --- a/cmd/neofs-lens/internal/writecache/get.go +++ b/cmd/neofs-lens/internal/fstree/get.go @@ -1,4 +1,4 @@ -package writecache +package fstree import ( "fmt" @@ -11,7 +11,7 @@ import ( var getCMD = &cobra.Command{ Use: "get", Short: "Object inspection", - Long: `Get specific object from a write-cache.`, + Long: `Get specific object from FSTree.`, Args: cobra.NoArgs, RunE: getFunc, } @@ -21,21 +21,22 @@ func init() { common.AddComponentPathFlag(getCMD, &vPath) common.AddOutputFileFlag(getCMD, &vOut) common.AddPayloadOnlyFlag(getCMD, &vPayloadOnly) + AddDepthFlag(getCMD, &vDepth) } func getFunc(cmd *cobra.Command, _ []string) error { - wc, err := openWC() + fst, err := openFSTree() if err != nil { return err } - defer wc.Close() + defer fst.Close() addr, err := oid.DecodeAddressString(vAddress) if err != nil { return fmt.Errorf("invalid address: %w", err) } - obj, err := wc.Get(addr) + obj, err := fst.Get(addr) if err != nil { return fmt.Errorf("could not fetch object: %w", err) } diff --git a/cmd/neofs-lens/internal/writecache/list.go b/cmd/neofs-lens/internal/fstree/list.go similarity index 62% rename from cmd/neofs-lens/internal/writecache/list.go rename to cmd/neofs-lens/internal/fstree/list.go index 9ea9333047..6b3b20fae5 100644 --- a/cmd/neofs-lens/internal/writecache/list.go +++ b/cmd/neofs-lens/internal/fstree/list.go @@ -1,4 +1,4 @@ -package writecache +package fstree import ( "fmt" @@ -12,33 +12,34 @@ import ( var listCMD = &cobra.Command{ Use: "list", Short: "Object listing", - Long: `List all objects stored in a write-cache.`, + Long: `List all objects stored in FSTree.`, Args: cobra.NoArgs, RunE: listFunc, } func init() { common.AddComponentPathFlag(listCMD, &vPath) + AddDepthFlag(listCMD, &vDepth) } func listFunc(cmd *cobra.Command, _ []string) error { // other targets can be supported w := cmd.OutOrStderr() - wAddr := func(addr oid.Address, _ []byte) error { - _, err := io.WriteString(w, fmt.Sprintf("%s\n", addr)) + wAddr := func(addr oid.Address) error { + _, err := io.WriteString(w, addr.EncodeToString()+"\n") return err } - wc, err := openWC() + fst, err := openFSTree() if err != nil { return err } - defer wc.Close() + defer fst.Close() - err = wc.Iterate(wAddr, true) + err = fst.IterateAddresses(wAddr, true) if err != nil { - return fmt.Errorf("write-cache iterator failure: %w", err) + return fmt.Errorf("fstree iterator failure: %w", err) } return nil } diff --git a/cmd/neofs-lens/internal/fstree/root.go b/cmd/neofs-lens/internal/fstree/root.go index 1d3b3d9419..42f4fa5ebe 100644 --- a/cmd/neofs-lens/internal/fstree/root.go +++ b/cmd/neofs-lens/internal/fstree/root.go @@ -9,7 +9,11 @@ import ( ) var ( - vPath string + vAddress string + vPath string + vOut string + vPayloadOnly bool + vDepth uint64 ) // Root defines root command for operations with FSTree. @@ -20,6 +24,12 @@ var Root = &cobra.Command{ func init() { Root.AddCommand(cleanupCMD) + Root.AddCommand(getCMD) + Root.AddCommand(listCMD) +} + +func AddDepthFlag(cmd *cobra.Command, depth *uint64) { + cmd.Flags().Uint64VarP(depth, "depth", "d", 4, "FSTree depth, for write-cache 1 must be used") } // openFSTree opens and returns fstree.FSTree located in vPath. @@ -27,6 +37,7 @@ func openFSTree() (*fstree.FSTree, error) { fst := fstree.New( fstree.WithPath(vPath), fstree.WithPerm(0600), + fstree.WithDepth(vDepth), ) var compressCfg compression.Config diff --git a/cmd/neofs-lens/internal/writecache/root.go b/cmd/neofs-lens/internal/writecache/root.go deleted file mode 100644 index dc0901965c..0000000000 --- a/cmd/neofs-lens/internal/writecache/root.go +++ /dev/null @@ -1,38 +0,0 @@ -package writecache - -import ( - "fmt" - - "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/writecache" - "github.com/spf13/cobra" -) - -var ( - vAddress string - vPath string - vOut string - vPayloadOnly bool -) - -// Root contains `write-cache` command definition. -var Root = &cobra.Command{ - Use: "write-cache", - Short: "Operations with write-cache", -} - -func init() { - Root.AddCommand(listCMD) - Root.AddCommand(getCMD) -} - -// openWC opens and returns read-only writecache.Cache located in vPath. -func openWC() (writecache.Cache, error) { - wc := writecache.New(writecache.WithPath(vPath)) - - err := wc.Open(true) - if err != nil { - return nil, fmt.Errorf("could not open write-cache: %w", err) - } - - return wc, nil -} diff --git a/cmd/neofs-lens/root.go b/cmd/neofs-lens/root.go index caf6a3f11b..5ce1e64ef9 100644 --- a/cmd/neofs-lens/root.go +++ b/cmd/neofs-lens/root.go @@ -8,7 +8,6 @@ import ( "github.com/nspcc-dev/neofs-node/cmd/neofs-lens/internal/meta" "github.com/nspcc-dev/neofs-node/cmd/neofs-lens/internal/object" "github.com/nspcc-dev/neofs-node/cmd/neofs-lens/internal/storage" - "github.com/nspcc-dev/neofs-node/cmd/neofs-lens/internal/writecache" "github.com/nspcc-dev/neofs-node/misc" "github.com/nspcc-dev/neofs-node/pkg/util/gendoc" "github.com/spf13/cobra" @@ -40,7 +39,6 @@ func init() { command.Flags().Bool("version", false, "Application version") command.AddCommand( meta.Root, - writecache.Root, storage.Root, object.Root, fstree.Root,