Move to frostfs-node
Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
This commit is contained in:
parent
42554a9298
commit
923f84722a
934 changed files with 3470 additions and 3451 deletions
74
cmd/frostfs-lens/internal/meta/inspect.go
Normal file
74
cmd/frostfs-lens/internal/meta/inspect.go
Normal file
|
@ -0,0 +1,74 @@
|
|||
package meta
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
common "github.com/TrueCloudLab/frostfs-node/cmd/frostfs-lens/internal"
|
||||
"github.com/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobovnicza"
|
||||
meta "github.com/TrueCloudLab/frostfs-node/pkg/local_object_storage/metabase"
|
||||
"github.com/TrueCloudLab/frostfs-sdk-go/object"
|
||||
oid "github.com/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var inspectCMD = &cobra.Command{
|
||||
Use: "inspect",
|
||||
Short: "Object inspection",
|
||||
Long: `Inspect specific object in a metabase.`,
|
||||
Run: inspectFunc,
|
||||
}
|
||||
|
||||
func init() {
|
||||
common.AddAddressFlag(inspectCMD, &vAddress)
|
||||
common.AddComponentPathFlag(inspectCMD, &vPath)
|
||||
}
|
||||
|
||||
func inspectFunc(cmd *cobra.Command, _ []string) {
|
||||
var addr oid.Address
|
||||
|
||||
err := addr.DecodeString(vAddress)
|
||||
common.ExitOnErr(cmd, common.Errf("invalid address argument: %w", err))
|
||||
|
||||
db := openMeta(cmd)
|
||||
defer db.Close()
|
||||
|
||||
storageID := meta.StorageIDPrm{}
|
||||
storageID.SetAddress(addr)
|
||||
|
||||
resStorageID, err := db.StorageID(storageID)
|
||||
common.ExitOnErr(cmd, common.Errf("could not check if the obj is small: %w", err))
|
||||
|
||||
if id := resStorageID.StorageID(); id != nil {
|
||||
cmd.Printf("Object storageID: %s\n\n", blobovnicza.NewIDFromBytes(id).String())
|
||||
} else {
|
||||
cmd.Printf("Object does not contain storageID\n\n")
|
||||
}
|
||||
|
||||
prm := meta.GetPrm{}
|
||||
prm.SetAddress(addr)
|
||||
prm.SetRaw(true)
|
||||
|
||||
siErr := new(object.SplitInfoError)
|
||||
|
||||
res, err := db.Get(prm)
|
||||
if errors.As(err, &siErr) {
|
||||
link, linkSet := siErr.SplitInfo().Link()
|
||||
last, lastSet := siErr.SplitInfo().LastPart()
|
||||
|
||||
fmt.Println("Object is split")
|
||||
cmd.Println("\tSplitID:", siErr.SplitInfo().SplitID().String())
|
||||
|
||||
if linkSet {
|
||||
cmd.Println("\tLink:", link)
|
||||
}
|
||||
if lastSet {
|
||||
cmd.Println("\tLast:", last)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
common.ExitOnErr(cmd, common.Errf("could not get object: %w", err))
|
||||
|
||||
common.PrintObjectHeader(cmd, *res.Header())
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue