From 1595698b3bf6db94a02b98a45bde3aebbf2615e8 Mon Sep 17 00:00:00 2001 From: Parthvi Vala Date: Sun, 19 Jun 2022 20:19:38 +0530 Subject: [PATCH] Remove odo preference registry update command Signed-off-by: Parthvi Vala --- .../version-3.0.0/overview/configure.md | 17 --- pkg/odo/cli/preference/registry/registry.go | 6 +- pkg/odo/cli/preference/registry/update.go | 137 ------------------ pkg/registry/registry.go | 2 +- tests/helper/helper_generic.go | 4 +- .../devfile/cmd_devfile_registry_test.go | 11 -- 6 files changed, 6 insertions(+), 171 deletions(-) delete mode 100644 pkg/odo/cli/preference/registry/update.go diff --git a/docs/website/versioned_docs/version-3.0.0/overview/configure.md b/docs/website/versioned_docs/version-3.0.0/overview/configure.md index 3d899e63470..37eb930623b 100644 --- a/docs/website/versioned_docs/version-3.0.0/overview/configure.md +++ b/docs/website/versioned_docs/version-3.0.0/overview/configure.md @@ -144,21 +144,4 @@ Successfully deleted registry You can use the `--force` (or `-f`) flag to force the deletion of the registry without confirmation. -### Updating a registry - -You can update the URL and/or the personal access token of a registry already registered with the command: - -``` -odo preference registry update -``` - -For example: - -``` -$ odo preference registry update MyRegistry https://otherregistry.example.com -? Are you sure you want to update registry "MyRegistry" Yes -Successfully updated registry -``` - -You can use the `--force` (or `-f`) flag to force the update of the registry without confirmation. diff --git a/pkg/odo/cli/preference/registry/registry.go b/pkg/odo/cli/preference/registry/registry.go index 3b1b12ce9b7..74e14b9cf8b 100644 --- a/pkg/odo/cli/preference/registry/registry.go +++ b/pkg/odo/cli/preference/registry/registry.go @@ -23,22 +23,20 @@ var registryDesc = ktemplates.LongDesc(`Configure devfile registry`) func NewCmdRegistry(name, fullName string) *cobra.Command { registryAddCmd := NewCmdAdd(addCommandName, util.GetFullName(fullName, addCommandName)) registryListCmd := NewCmdList(listCommandName, util.GetFullName(fullName, listCommandName)) - registryUpdateCmd := NewCmdUpdate(updateCommandName, util.GetFullName(fullName, updateCommandName)) registryDeleteCmd := NewCmdDelete(deleteCommandName, util.GetFullName(fullName, deleteCommandName)) registryCmd := &cobra.Command{ Use: name, Short: registryDesc, Long: registryDesc, - Example: fmt.Sprintf("%s\n\n%s\n\n%s\n\n%s", + Example: fmt.Sprintf("%s\n\n%s\n\n%s", registryAddCmd.Example, registryListCmd.Example, - registryUpdateCmd.Example, registryDeleteCmd.Example, ), } - registryCmd.AddCommand(registryAddCmd, registryListCmd, registryUpdateCmd, registryDeleteCmd) + registryCmd.AddCommand(registryAddCmd, registryListCmd, registryDeleteCmd) registryCmd.SetUsageTemplate(util.CmdUsageTemplate) registryCmd.Annotations = map[string]string{"command": "main"} diff --git a/pkg/odo/cli/preference/registry/update.go b/pkg/odo/cli/preference/registry/update.go deleted file mode 100644 index da9e38745a6..00000000000 --- a/pkg/odo/cli/preference/registry/update.go +++ /dev/null @@ -1,137 +0,0 @@ -package registry - -import ( - "context" - // Built-in packages - "fmt" - - // Third-party packages - dfutil "github.com/devfile/library/pkg/util" - "github.com/spf13/cobra" - "github.com/zalando/go-keyring" - ktemplates "k8s.io/kubectl/pkg/util/templates" - - // odo packages - registryUtil "github.com/redhat-developer/odo/pkg/odo/cli/preference/registry/util" - "github.com/redhat-developer/odo/pkg/odo/cmdline" - "github.com/redhat-developer/odo/pkg/odo/genericclioptions" - "github.com/redhat-developer/odo/pkg/odo/genericclioptions/clientset" - "github.com/redhat-developer/odo/pkg/util" -) - -const updateCommandName = "update" - -// "odo preference registry update" command description and examples -var ( - updateLongDesc = ktemplates.LongDesc(`Update devfile registry URL`) - - updateExample = ktemplates.Examples(`# Update devfile registry URL - %[1]s CheRegistry https://che-devfile-registry-update.openshift.io - `) -) - -// UpdateOptions encapsulates the options for the "odo preference registry update" command -type UpdateOptions struct { - // Clients - clientset *clientset.Clientset - - // Parameters - registryName string - registryURL string - - // Flags - tokenFlag string - forceFlag bool - - operation string - user string -} - -// NewUpdateOptions creates a new UpdateOptions instance -func NewUpdateOptions() *UpdateOptions { - return &UpdateOptions{} -} - -func (o *UpdateOptions) SetClientset(clientset *clientset.Clientset) { - o.clientset = clientset -} - -// Complete completes UpdateOptions after they've been created -func (o *UpdateOptions) Complete(cmdline cmdline.Cmdline, args []string) (err error) { - o.operation = "update" - o.registryName = args[0] - o.registryURL = args[1] - o.user = "default" - return nil -} - -// Validate validates the UpdateOptions based on completed values -func (o *UpdateOptions) Validate() (err error) { - err = util.ValidateURL(o.registryURL) - if err != nil { - return err - } - isGithubBasedRegistry, err := registryUtil.IsGithubBasedRegistry(o.registryURL) - if err != nil { - return err - } - if isGithubBasedRegistry { - return registryUtil.ErrGithubRegistryNotSupported - } - return nil -} - -// Run contains the logic for "odo preference registry update" command -func (o *UpdateOptions) Run(ctx context.Context) (err error) { - secureBeforeUpdate := false - secureAfterUpdate := false - - secure := registryUtil.IsSecure(o.clientset.PreferenceClient, o.registryName) - if secure { - secureBeforeUpdate = true - } - - if o.tokenFlag != "" { - secureAfterUpdate = true - } - - err = o.clientset.PreferenceClient.RegistryHandler(o.operation, o.registryName, o.registryURL, o.forceFlag, secureAfterUpdate) - if err != nil { - return err - } - - if secureAfterUpdate { - err = keyring.Set(dfutil.CredentialPrefix+o.registryName, o.user, o.tokenFlag) - if err != nil { - return fmt.Errorf("unable to store registry credential to keyring: %w", err) - } - } else if secureBeforeUpdate && !secureAfterUpdate { - err = keyring.Delete(dfutil.CredentialPrefix+o.registryName, o.user) - if err != nil { - return fmt.Errorf("unable to delete registry credential from keyring: %w", err) - } - } - - return nil -} - -// NewCmdUpdate implements the "odo preference registry update" command -func NewCmdUpdate(name, fullName string) *cobra.Command { - o := NewUpdateOptions() - registryUpdateCmd := &cobra.Command{ - Use: fmt.Sprintf("%s ", name), - Short: updateLongDesc, - Long: updateLongDesc, - Example: fmt.Sprintf(fmt.Sprint(updateExample), fullName), - Args: cobra.ExactArgs(2), - Run: func(cmd *cobra.Command, args []string) { - genericclioptions.GenericRun(o, cmd, args) - }, - } - clientset.Add(registryUpdateCmd, clientset.PREFERENCE) - - registryUpdateCmd.Flags().StringVar(&o.tokenFlag, "token", "", "Token to be used to access secure registry") - registryUpdateCmd.Flags().BoolVarP(&o.forceFlag, "force", "f", false, "Don't ask for confirmation, update the registry directly") - - return registryUpdateCmd -} diff --git a/pkg/registry/registry.go b/pkg/registry/registry.go index 3b49d6cdb64..466688f7359 100644 --- a/pkg/registry/registry.go +++ b/pkg/registry/registry.go @@ -120,7 +120,7 @@ func (o RegistryClient) ListDevfileStacks(registryName, devfileFlag, filterFlag retrieveRegistryIndices.Add(util.ConcurrentTask{ToRun: func(errChannel chan error) { registryDevfiles, err := getRegistryStacks(o.preferenceClient, registry) if err != nil { - log.Warningf("Registry %s is not set up properly with error: %v, please check the registry URL and credential (refer `odo preference registry update --help`)\n", registry.Name, err) + log.Warningf("Registry %s is not set up properly with error: %v, please check the registry URL, and credential and add the registry again (refer `odo preference registry --help`)\n", registry.Name, err) return } diff --git a/tests/helper/helper_generic.go b/tests/helper/helper_generic.go index 024c5f2eeab..a9dca8398b1 100644 --- a/tests/helper/helper_generic.go +++ b/tests/helper/helper_generic.go @@ -311,5 +311,7 @@ type ResourceInfo struct { func SetDefaultDevfileRegistryAsStaging() { const registryName string = "DefaultDevfileRegistry" const addRegistryURL string = "https://registry.stage.devfile.io" - Cmd("odo", "preference", "registry", "update", registryName, addRegistryURL, "-f").ShouldPass() + // if the registry does not exist, we do want the command to fail and raise an error + Cmd("odo", "preference", "registry", "delete", registryName, "-f").ShouldRun() + Cmd("odo", "preference", "registry", "add", registryName, addRegistryURL).ShouldPass() } diff --git a/tests/integration/devfile/cmd_devfile_registry_test.go b/tests/integration/devfile/cmd_devfile_registry_test.go index 0f52357384a..afc727c4a78 100644 --- a/tests/integration/devfile/cmd_devfile_registry_test.go +++ b/tests/integration/devfile/cmd_devfile_registry_test.go @@ -12,7 +12,6 @@ var _ = Describe("odo devfile registry command tests", func() { // Use staging OCI-based registry for tests to avoid overload const addRegistryURL string = "https://registry.stage.devfile.io" - const updateRegistryURL string = "http://www.example.com/update" var commonVar helper.CommonVar // This is run before every Spec (It) @@ -89,10 +88,6 @@ var _ = Describe("odo devfile registry command tests", func() { helper.MatchAllInOutput(output, []string{"No devfile registries added to the configuration. Refer `odo preference registry add -h` to add one"}) }) - It("Should fail to update the registry, when registry is not present", func() { - helper.Cmd("odo", "preference", "registry", "update", registryName, updateRegistryURL, "-f").ShouldFail() - }) - It("Should fail to delete the registry, when registry is not present", func() { helper.Cmd("odo", "preference", "registry", "delete", registryName, "-f").ShouldFail() }) @@ -119,12 +114,6 @@ var _ = Describe("odo devfile registry command tests", func() { helper.Cmd("odo", "preference", "registry", "delete", registryName, "-f").ShouldPass() }) - It("should successfully update the registry", func() { - helper.Cmd("odo", "preference", "registry", "update", registryName, updateRegistryURL, "-f").ShouldPass() - output := helper.Cmd("odo", "preference", "registry", "list").ShouldPass().Out() - helper.MatchAllInOutput(output, []string{registryName, updateRegistryURL}) - }) - It("deleting registry and creating component with registry flag ", func() { helper.Cmd("odo", "preference", "registry", "delete", registryName, "-f").ShouldPass() helper.Cmd("odo", "init", "--name", "aname", "--devfile", "java-maven", "--devfile-registry", registryName).ShouldFail()