2022-08-23 14:05:32 +00:00
|
|
|
package meta
|
|
|
|
|
|
|
|
import (
|
2022-12-23 17:35:35 +00:00
|
|
|
common "github.com/TrueCloudLab/frostfs-node/cmd/frostfs-lens/internal"
|
|
|
|
meta "github.com/TrueCloudLab/frostfs-node/pkg/local_object_storage/metabase"
|
2022-08-23 14:05:32 +00:00
|
|
|
"github.com/spf13/cobra"
|
|
|
|
)
|
|
|
|
|
|
|
|
var listGarbageCMD = &cobra.Command{
|
|
|
|
Use: "list-garbage",
|
|
|
|
Short: "Garbage listing",
|
|
|
|
Long: `List all the objects that have received GC Mark.`,
|
|
|
|
Run: listGarbageFunc,
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
common.AddComponentPathFlag(listGarbageCMD, &vPath)
|
|
|
|
}
|
|
|
|
|
|
|
|
func listGarbageFunc(cmd *cobra.Command, _ []string) {
|
2022-08-24 12:09:52 +00:00
|
|
|
db := openMeta(cmd)
|
|
|
|
defer db.Close()
|
2022-08-23 14:05:32 +00:00
|
|
|
|
|
|
|
var garbPrm meta.GarbageIterationPrm
|
|
|
|
garbPrm.SetHandler(
|
|
|
|
func(garbageObject meta.GarbageObject) error {
|
|
|
|
cmd.Println(garbageObject.Address().EncodeToString())
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
|
|
|
|
err := db.IterateOverGarbage(garbPrm)
|
|
|
|
common.ExitOnErr(cmd, common.Errf("could not iterate over garbage bucket: %w", err))
|
|
|
|
}
|