Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/commands/rhoas_service-registry.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 34 additions & 0 deletions docs/commands/rhoas_service-registry_setting.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 42 additions & 0 deletions docs/commands/rhoas_service-registry_setting_get.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 40 additions & 0 deletions docs/commands/rhoas_service-registry_setting_list.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 43 additions & 0 deletions docs/commands/rhoas_service-registry_setting_set.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions pkg/cmd/registry/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/describe"
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/list"
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/rule"
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/setting"
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/use"
"github.com/redhat-developer/app-services-cli/pkg/shared/factory"
"github.com/spf13/cobra"
Expand All @@ -36,6 +37,7 @@ func NewServiceRegistryCommand(f *factory.Factory) *cobra.Command {
artifact.NewArtifactsCommand(f),
role.NewRoleCommand(f),
rule.NewRuleCommand(f),
setting.NewSettingCommand(f),
)

return cmd
Expand Down
120 changes: 120 additions & 0 deletions pkg/cmd/registry/setting/get/get.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package get

import (
"context"
"github.com/AlecAivazis/survey/v2"
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/registrycmdutil"
"github.com/redhat-developer/app-services-cli/pkg/cmd/registry/rule/rulecmdutil"
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil/flagutil"
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/dump"
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/iostreams"
"github.com/redhat-developer/app-services-cli/pkg/core/localize"
"github.com/redhat-developer/app-services-cli/pkg/core/logging"
"github.com/redhat-developer/app-services-cli/pkg/core/servicecontext"
"github.com/redhat-developer/app-services-cli/pkg/shared/factory"
"github.com/spf13/cobra"

"github.com/redhat-developer/app-services-cli/pkg/shared/contextutil"
)

type options struct {
IO *iostreams.IOStreams
Connection factory.ConnectionFunc
Logger logging.Logger
localizer localize.Localizer
Context context.Context
ServiceContext servicecontext.IContext

registryID string
settingName string
output string
}

// NewGetCommand creates a new command to get a service registry setting
func NewGetCommand(f *factory.Factory) *cobra.Command {

opts := &options{
IO: f.IOStreams,
Connection: f.Connection,
Logger: f.Logger,
localizer: f.Localizer,
Context: f.Context,
ServiceContext: f.ServiceContext,
}

cmd := &cobra.Command{
Use: "get",
Short: f.Localizer.MustLocalize("setting.get.cmd.description.short"),
Long: f.Localizer.MustLocalize("setting.get.cmd.description.long"),
Example: f.Localizer.MustLocalize("setting.get.cmd.example"),
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, _ []string) (err error) {

if opts.settingName == "" {
if !opts.IO.CanPrompt() {
return flagutil.RequiredWhenNonInteractiveError("setting-name")
}
err = runInteractivePrompt(opts)
if err != nil {
return err
}
}

registryInstance, err := contextutil.GetCurrentRegistryInstance(f)
if err != nil {
return err
}

opts.registryID = registryInstance.GetId()

return runGet(opts)
},
}

flags := rulecmdutil.NewFlagSet(cmd, f)

flags.AddRegistryInstance(&opts.registryID)

flags.StringVarP(&opts.settingName, "setting-name", "n", "", f.Localizer.MustLocalize("setting.get.cmd.flag.settingName.description"))

flags.AddOutput(&opts.output)

return cmd
}

func runGet(opts *options) error {
conn, err := opts.Connection()
if err != nil {
return err
}

api := conn.API()

a, _, err := api.ServiceRegistryInstance(opts.registryID)
if err != nil {
return err
}

request := a.AdminApi.GetConfigProperty(opts.Context, opts.settingName)

configProperty, _, err := request.Execute()
if err != nil {
return registrycmdutil.TransformInstanceError(err)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Really really nice that you have found and used that method.

}

return dump.Formatted(opts.IO.Out, opts.output, configProperty)
}

func runInteractivePrompt(opts *options) (err error) {

settingNamePrompt := &survey.Input{
Message: opts.localizer.MustLocalize("setting.get.input.settingName.message"),
}

err = survey.AskOne(settingNamePrompt, &opts.settingName)
if err != nil {
return err
}

return nil
}
Loading