Some checks failed
DCO action / DCO (pull_request) Successful in 46s
Tests and linters / Lint (pull_request) Failing after 1m18s
Vulncheck / Vulncheck (pull_request) Failing after 1m15s
Build / Build Components (pull_request) Successful in 1m28s
Tests and linters / Tests (pull_request) Successful in 2m15s
Tests and linters / Staticcheck (pull_request) Successful in 2m19s
Tests and linters / gopls check (pull_request) Successful in 2m58s
Tests and linters / Tests with -race (pull_request) Successful in 3m27s
Change-Id: I2e85169849e2b9b7f44817b93283fa2f2b903676 Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
110 lines
3.8 KiB
Go
110 lines
3.8 KiB
Go
package zombie
|
|
|
|
import (
|
|
"git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/commonflags"
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
const (
|
|
flagBatchSize = "batch-size"
|
|
flagBatchSizeUsage = "Objects iteration batch size"
|
|
CIDFlag = "cid"
|
|
CIDFlagUsage = "Container ID"
|
|
OIDFlag = "oid"
|
|
OIDFlagUsage = "Object ID"
|
|
)
|
|
|
|
var (
|
|
Cmd = &cobra.Command{
|
|
Use: "zombie",
|
|
Short: "Zombie objects related commands",
|
|
}
|
|
scanCmd = &cobra.Command{
|
|
Use: "scan",
|
|
Short: "Scan storage engine for zombie objects and move them to quarantine",
|
|
Long: "",
|
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
|
_ = viper.BindPFlag(commonflags.EndpointFlag, cmd.Flags().Lookup(commonflags.EndpointFlag))
|
|
_ = viper.BindPFlag(commonflags.ConfigFlag, cmd.Flags().Lookup(commonflags.ConfigFlag))
|
|
_ = viper.BindPFlag(commonflags.ConfigDirFlag, cmd.Flags().Lookup(commonflags.ConfigDirFlag))
|
|
_ = viper.BindPFlag(flagBatchSize, cmd.Flags().Lookup(flagBatchSize))
|
|
},
|
|
Run: scan,
|
|
}
|
|
listCmd = &cobra.Command{
|
|
Use: "list",
|
|
Short: "List zombie objects from quarantine",
|
|
Long: "",
|
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
|
_ = viper.BindPFlag(commonflags.ConfigFlag, cmd.Flags().Lookup(commonflags.ConfigFlag))
|
|
_ = viper.BindPFlag(commonflags.ConfigDirFlag, cmd.Flags().Lookup(commonflags.ConfigDirFlag))
|
|
},
|
|
Run: list,
|
|
}
|
|
restoreCmd = &cobra.Command{
|
|
Use: "restore",
|
|
Short: "Restore zombie objects from quarantine",
|
|
Long: "",
|
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
|
_ = viper.BindPFlag(commonflags.ConfigFlag, cmd.Flags().Lookup(commonflags.ConfigFlag))
|
|
_ = viper.BindPFlag(commonflags.ConfigDirFlag, cmd.Flags().Lookup(commonflags.ConfigDirFlag))
|
|
_ = viper.BindPFlag(CIDFlag, cmd.Flags().Lookup(CIDFlag))
|
|
_ = viper.BindPFlag(OIDFlag, cmd.Flags().Lookup(OIDFlag))
|
|
},
|
|
Run: restore,
|
|
}
|
|
removeCmd = &cobra.Command{
|
|
Use: "remove",
|
|
Short: "Remove zombie objects from quarantine",
|
|
Long: "",
|
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
|
_ = viper.BindPFlag(commonflags.ConfigFlag, cmd.Flags().Lookup(commonflags.ConfigFlag))
|
|
_ = viper.BindPFlag(commonflags.ConfigDirFlag, cmd.Flags().Lookup(commonflags.ConfigDirFlag))
|
|
_ = viper.BindPFlag(CIDFlag, cmd.Flags().Lookup(CIDFlag))
|
|
_ = viper.BindPFlag(OIDFlag, cmd.Flags().Lookup(OIDFlag))
|
|
},
|
|
Run: remove,
|
|
}
|
|
)
|
|
|
|
func init() {
|
|
initScanCmd()
|
|
initListCmd()
|
|
initRestoreCmd()
|
|
initRemoveCmd()
|
|
}
|
|
|
|
func initScanCmd() {
|
|
Cmd.AddCommand(scanCmd)
|
|
|
|
scanCmd.Flags().StringP(commonflags.EndpointFlag, commonflags.EndpointFlagShort, "", commonflags.EndpointFlagDesc)
|
|
scanCmd.Flags().StringP(commonflags.ConfigFlag, commonflags.ConfigFlagShorthand, "", commonflags.ConfigFlagUsage)
|
|
scanCmd.Flags().String(commonflags.ConfigDirFlag, "", commonflags.ConfigDirFlagUsage)
|
|
scanCmd.Flags().Uint32(flagBatchSize, 1000, flagBatchSizeUsage)
|
|
}
|
|
|
|
func initListCmd() {
|
|
Cmd.AddCommand(listCmd)
|
|
|
|
listCmd.Flags().StringP(commonflags.ConfigFlag, commonflags.ConfigFlagShorthand, "", commonflags.ConfigFlagUsage)
|
|
listCmd.Flags().String(commonflags.ConfigDirFlag, "", commonflags.ConfigDirFlagUsage)
|
|
}
|
|
|
|
func initRestoreCmd() {
|
|
Cmd.AddCommand(restoreCmd)
|
|
|
|
restoreCmd.Flags().StringP(commonflags.ConfigFlag, commonflags.ConfigFlagShorthand, "", commonflags.ConfigFlagUsage)
|
|
restoreCmd.Flags().String(commonflags.ConfigDirFlag, "", commonflags.ConfigDirFlagUsage)
|
|
restoreCmd.Flags().String(CIDFlag, "", CIDFlagUsage)
|
|
restoreCmd.Flags().String(OIDFlag, "", OIDFlagUsage)
|
|
}
|
|
|
|
func initRemoveCmd() {
|
|
Cmd.AddCommand(removeCmd)
|
|
|
|
removeCmd.Flags().StringP(commonflags.ConfigFlag, commonflags.ConfigFlagShorthand, "", commonflags.ConfigFlagUsage)
|
|
removeCmd.Flags().String(commonflags.ConfigDirFlag, "", commonflags.ConfigDirFlagUsage)
|
|
removeCmd.Flags().String(CIDFlag, "", CIDFlagUsage)
|
|
removeCmd.Flags().String(OIDFlag, "", OIDFlagUsage)
|
|
}
|