MCPcopy Index your code
hub / github.com/opencloud-eu/opencloud / PurgeRevisionsCommand

Function PurgeRevisionsCommand

opencloud/pkg/command/revisions.go:43–134  ·  view source on GitHub ↗

PurgeRevisionsCommand allows removing all revisions from a storage provider.

(cfg *config.Config)

Source from the content-addressed store, hash-verified

41
42// PurgeRevisionsCommand allows removing all revisions from a storage provider.
43func PurgeRevisionsCommand(cfg *config.Config) *cobra.Command {
44 revCmd := &cobra.Command{
45 Use: "purge",
46 Short: "purge revisions",
47 RunE: func(cmd *cobra.Command, args []string) error {
48 basePath, _ := cmd.Flags().GetString("basepath")
49
50 var (
51 bs revisions.DelBlobstore
52 err error
53 )
54 blobstoreFlag, _ := cmd.Flags().GetString("blobstore")
55 switch blobstoreFlag {
56 case "decomposeds3":
57 bs, err = decomposeds3bs.New(
58 cfg.StorageUsers.Drivers.DecomposedS3.Endpoint,
59 cfg.StorageUsers.Drivers.DecomposedS3.Region,
60 cfg.StorageUsers.Drivers.DecomposedS3.Bucket,
61 cfg.StorageUsers.Drivers.DecomposedS3.AccessKey,
62 cfg.StorageUsers.Drivers.DecomposedS3.SecretKey,
63 decomposeds3bs.Options{},
64 )
65 case "decomposed":
66 bs, err = decomposedbs.New(basePath)
67 case "none":
68 bs = nil
69 default:
70 err = errors.New("blobstore type not supported")
71 }
72 if err != nil {
73 fmt.Println(err)
74 return err
75 }
76
77 var rid *provider.ResourceId
78 resourceIDFlag, _ := cmd.Flags().GetString("resource-id")
79 resid, err := storagespace.ParseID(resourceIDFlag)
80 if err == nil {
81 rid = &resid
82 }
83
84 mechanism, _ := cmd.Flags().GetString("glob-mechanism")
85 if rid.GetOpaqueId() != "" {
86 mechanism = "glob"
87 }
88
89 var ch <-chan string
90 switch mechanism {
91 default:
92 fallthrough
93 case "glob":
94 p := generatePath(basePath, rid)
95 if rid.GetOpaqueId() == "" {
96 p = filepath.Join(p, "*/*/*/*/*")
97 }
98 ch = revisions.Glob(p)
99 case "workers":
100 p := generatePath(basePath, rid)

Callers 1

RevisionsCommandFunction · 0.85

Calls 8

GlobFunction · 0.92
GlobWorkersFunction · 0.92
ListFunction · 0.92
PurgeRevisionsFunction · 0.92
generatePathFunction · 0.85
printResultsFunction · 0.85
GetOpaqueIdMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected