Skip to content

Commit eaca1f3

Browse files
authored
(opm) Introduce deprecatetruncate for opm registry (#804)
This PR exposes the `deprecatetruncate` functionality, previously only included under `opm index`, under `opm registry`. In line with all other commands that operate on a sqlite db, this sub-command is deprecated too. In line with `opm index deprecatetruncate`, the `deprecatetruncate` sub-command for `opm registry` is hidden too. Signed-off-by: Anik Bhattacharjee <[email protected]>
1 parent 0b5ff79 commit eaca1f3

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

Diff for: cmd/opm/registry/cmd.go

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ func NewOpmRegistryCmd() *cobra.Command {
3232
rootCmd.AddCommand(newRegistryRmCmd())
3333
rootCmd.AddCommand(newRegistryPruneCmd())
3434
rootCmd.AddCommand(newRegistryPruneStrandedCmd())
35+
rootCmd.AddCommand(newRegistryDeprecateCmd())
3536

3637
return rootCmd
3738
}

Diff for: cmd/opm/registry/deprecatetruncate.go

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package registry
2+
3+
import (
4+
"github.com/sirupsen/logrus"
5+
"github.com/spf13/cobra"
6+
7+
"github.com/operator-framework/operator-registry/pkg/lib/registry"
8+
"github.com/operator-framework/operator-registry/pkg/sqlite"
9+
)
10+
11+
func newRegistryDeprecateCmd() *cobra.Command {
12+
cmd := &cobra.Command{
13+
Hidden: true,
14+
Use: "deprecatetruncate",
15+
Short: "deprecate operator bundle from registry DB",
16+
Long: `deprecate operator bundle from registry DB
17+
18+
` + sqlite.DeprecationMessage,
19+
20+
PreRunE: func(cmd *cobra.Command, _ []string) error {
21+
if debug, _ := cmd.Flags().GetBool("debug"); debug {
22+
logrus.SetLevel(logrus.DebugLevel)
23+
}
24+
return nil
25+
},
26+
27+
RunE: deprecateFunc,
28+
Args: cobra.NoArgs,
29+
}
30+
31+
cmd.Flags().Bool("debug", false, "enable debug logging")
32+
cmd.Flags().StringP("database", "d", "index.db", "relative path to database file")
33+
cmd.Flags().StringSliceP("bundle-images", "b", []string{}, "comma separated list of links to bundle image")
34+
cmd.Flags().Bool("permissive", false, "allow registry load errors")
35+
cmd.Flags().Bool("allow-package-removal", false, "removes the entire package if the heads of all channels in the package are deprecated")
36+
37+
return cmd
38+
}
39+
40+
func deprecateFunc(cmd *cobra.Command, _ []string) error {
41+
permissive, err := cmd.Flags().GetBool("permissive")
42+
if err != nil {
43+
return err
44+
}
45+
fromFilename, err := cmd.Flags().GetString("database")
46+
if err != nil {
47+
return err
48+
}
49+
bundleImages, err := cmd.Flags().GetStringSlice("bundle-images")
50+
if err != nil {
51+
return err
52+
}
53+
allowPackageRemoval, err := cmd.Flags().GetBool("allow-package-removal")
54+
if err != nil {
55+
return err
56+
}
57+
58+
request := registry.DeprecateFromRegistryRequest{
59+
Permissive: permissive,
60+
InputDatabase: fromFilename,
61+
Bundles: bundleImages,
62+
AllowPackageRemoval: allowPackageRemoval,
63+
}
64+
65+
logger := logrus.WithFields(logrus.Fields{"bundles": bundleImages})
66+
67+
logger.Info("deprecating from registry")
68+
69+
registryDeprecator := registry.NewRegistryDeprecator(logger)
70+
71+
err = registryDeprecator.DeprecateFromRegistry(request)
72+
if err != nil {
73+
logger.Fatal(err)
74+
}
75+
return nil
76+
}

0 commit comments

Comments
 (0)