Skip to content

Commit

Permalink
unified printing strategy
Browse files Browse the repository at this point in the history
  • Loading branch information
stevekuznetsov committed Oct 22, 2015
1 parent 6ea9fd0 commit b2a4b16
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 30 deletions.
20 changes: 15 additions & 5 deletions pkg/cmd/admin/groups/new.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ import (
"fmt"
"io"

"github.com/spf13/cobra"

"k8s.io/kubernetes/pkg/api/meta"
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/util/sets"

"github.com/spf13/cobra"

"github.com/openshift/origin/pkg/client"
"github.com/openshift/origin/pkg/cmd/util/clientcmd"
userapi "github.com/openshift/origin/pkg/user/api"
Expand All @@ -34,10 +35,12 @@ type NewGroupOptions struct {

Group string
Users []string

Out io.Writer
}

func NewCmdNewGroup(name, fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Command {
options := &NewGroupOptions{}
options := &NewGroupOptions{Out: out}

cmd := &cobra.Command{
Use: name + " GROUP [USER ...]",
Expand All @@ -49,10 +52,14 @@ func NewCmdNewGroup(name, fullName string, f *clientcmd.Factory, out io.Writer)
kcmdutil.CheckErr(kcmdutil.UsageError(cmd, err.Error()))
}

kcmdutil.CheckErr(options.AddGroup())
mapper, _ := f.Object()
shortOutput := kcmdutil.GetFlagString(cmd, "output") == "name"
kcmdutil.CheckErr(options.AddGroup(mapper, shortOutput))
},
}

kcmdutil.AddOutputFlagsForMutation(cmd)

return cmd
}

Expand All @@ -75,7 +82,7 @@ func (o *NewGroupOptions) Complete(f *clientcmd.Factory, args []string) error {
return nil
}

func (o *NewGroupOptions) AddGroup() error {
func (o *NewGroupOptions) AddGroup(mapper meta.RESTMapper, shortOutput bool) error {
group := &userapi.Group{}
group.Name = o.Group

Expand All @@ -90,5 +97,8 @@ func (o *NewGroupOptions) AddGroup() error {
}

_, err := o.GroupClient.Create(group)
if err != nil {
kcmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Group", o.Group, "created")
}
return err
}
14 changes: 10 additions & 4 deletions pkg/cmd/admin/project/new_project.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/spf13/cobra"

kerrors "k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/meta"
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
errorsutil "k8s.io/kubernetes/pkg/util/errors"

Expand All @@ -30,6 +31,8 @@ type NewProjectOptions struct {

AdminRole string
AdminUser string

Out io.Writer
}

const newProjectLong = `
Expand All @@ -41,7 +44,7 @@ to restrict which nodes pods in this project can be scheduled to.`

// NewCmdNewProject implements the OpenShift cli new-project command
func NewCmdNewProject(name, fullName string, f *clientcmd.Factory, out io.Writer) *cobra.Command {
options := &NewProjectOptions{}
options := &NewProjectOptions{Out: out}

cmd := &cobra.Command{
Use: name + " NAME [--display-name=DISPLAYNAME] [--description=DESCRIPTION]",
Expand All @@ -61,7 +64,9 @@ func NewCmdNewProject(name, fullName string, f *clientcmd.Factory, out io.Writer
// and we want to populate node selector as project annotation only if explicitly set by user
useNodeSelector := cmd.Flag("node-selector").Changed

if err := options.Run(useNodeSelector); err != nil {
mapper, _ := f.Object()
shortOutput := kcmdutil.GetFlagString(cmd, "output") == "name"
if err := options.Run(useNodeSelector, shortOutput, mapper); err != nil {
kcmdutil.CheckErr(err)
}
},
Expand All @@ -72,6 +77,7 @@ func NewCmdNewProject(name, fullName string, f *clientcmd.Factory, out io.Writer
cmd.Flags().StringVar(&options.DisplayName, "display-name", "", "Project display name")
cmd.Flags().StringVar(&options.Description, "description", "", "Project description")
cmd.Flags().StringVar(&options.NodeSelector, "node-selector", "", "Restrict pods onto nodes matching given label selector. Format: '<key1>=<value1>, <key2>=<value2>...'. Specifying \"\" means any node, not default. If unspecified, cluster default node selector will be used.")
kcmdutil.AddOutputFlagsForMutation(cmd)

return cmd
}
Expand All @@ -85,7 +91,7 @@ func (o *NewProjectOptions) complete(args []string) error {
return nil
}

func (o *NewProjectOptions) Run(useNodeSelector bool) error {
func (o *NewProjectOptions) Run(useNodeSelector, shortOutput bool, mapper meta.RESTMapper) error {
if _, err := o.Client.Projects().Get(o.ProjectName); err != nil {
if !kerrors.IsNotFound(err) {
return err
Expand All @@ -107,7 +113,7 @@ func (o *NewProjectOptions) Run(useNodeSelector bool) error {
return err
}

fmt.Printf("Created project %v\n", o.ProjectName)
kcmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Project", o.ProjectName, "created")

errs := []error{}
if len(o.AdminUser) != 0 {
Expand Down
7 changes: 6 additions & 1 deletion pkg/cmd/cli/cmd/startbuild.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ func NewCmdStartBuild(fullName string, f *clientcmd.Factory, out io.Writer) *cob

cmd.Flags().String("git-post-receive", "", "The contents of the post-receive hook to trigger a build")
cmd.Flags().String("git-repository", "", "The path to the git repository for post-receive; defaults to the current directory")

cmdutil.AddOutputFlagsForMutation(cmd)

return cmd
}

Expand Down Expand Up @@ -144,7 +147,9 @@ func RunStartBuild(f *clientcmd.Factory, out io.Writer, cmd *cobra.Command, args
return err
}
}
fmt.Fprintf(out, "%s\n", newBuild.Name)
mapper, _ := f.Object()
shortOutput := cmdutil.GetFlagString(cmd, "output") == "name"
cmdutil.PrintSuccess(mapper, shortOutput, out, "Build", newBuild.Name, "started")

var (
wg sync.WaitGroup
Expand Down
9 changes: 6 additions & 3 deletions pkg/cmd/cli/secrets/basicauth.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"io/ioutil"

"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta"
client "k8s.io/kubernetes/pkg/client/unversioned"
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"

Expand Down Expand Up @@ -83,7 +84,9 @@ func NewCmdCreateBasicAuthSecret(name, fullName string, f *kcmdutil.Factory, rea
return
}

if err := o.CreateBasicAuthSecret(); err != nil {
mapper, _ := f.Object()
shortOutput := kcmdutil.GetFlagString(c, "output") == "name"
if err := o.CreateBasicAuthSecret(mapper, shortOutput); err != nil {
kcmdutil.CheckErr(err)
}
},
Expand All @@ -105,7 +108,7 @@ func NewCmdCreateBasicAuthSecret(name, fullName string, f *kcmdutil.Factory, rea
}

// CreateBasicAuthSecret saves created Secret structure and prints the secret name to the output on success.
func (o *CreateBasicAuthSecretOptions) CreateBasicAuthSecret() error {
func (o *CreateBasicAuthSecretOptions) CreateBasicAuthSecret(mapper meta.RESTMapper, shortOutput bool) error {
secret, err := o.NewBasicAuthSecret()
if err != nil {
return err
Expand All @@ -115,7 +118,7 @@ func (o *CreateBasicAuthSecretOptions) CreateBasicAuthSecret() error {
return err
}

fmt.Fprintf(o.GetOut(), "secret/%s\n", secret.Name)
kcmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Secret", secret.Name, "created")
return nil
}

Expand Down
10 changes: 6 additions & 4 deletions pkg/cmd/cli/secrets/dockercfg.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"strings"

"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta"
client "k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/credentialprovider"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
Expand Down Expand Up @@ -81,7 +82,9 @@ func NewCmdCreateDockerConfigSecret(name, fullName string, f *cmdutil.Factory, o
return
}

if err := o.CreateDockerSecret(); err != nil {
mapper, _ := f.Object()
shortOutput := cmdutil.GetFlagString(c, "output") == "name"
if err := o.CreateDockerSecret(mapper, shortOutput); err != nil {
cmdutil.CheckErr(err)
}

Expand All @@ -97,7 +100,7 @@ func NewCmdCreateDockerConfigSecret(name, fullName string, f *cmdutil.Factory, o
return cmd
}

func (o CreateDockerConfigOptions) CreateDockerSecret() error {
func (o CreateDockerConfigOptions) CreateDockerSecret(mapper meta.RESTMapper, shortOutput bool) error {
secret, err := o.NewDockerSecret()
if err != nil {
return err
Expand All @@ -107,8 +110,7 @@ func (o CreateDockerConfigOptions) CreateDockerSecret() error {
return err
}

fmt.Fprintf(o.GetOut(), "secret/%s\n", secret.Name)

cmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Secret", secret.Name, "created")
return nil
}

Expand Down
10 changes: 7 additions & 3 deletions pkg/cmd/cli/secrets/new.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"strings"

kapi "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta"
kvalidation "k8s.io/kubernetes/pkg/api/validation"
kclient "k8s.io/kubernetes/pkg/client/unversioned"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
Expand Down Expand Up @@ -91,7 +92,9 @@ func NewCmdCreateSecret(name, fullName string, f *clientcmd.Factory, out io.Writ
return
}

_, err := options.CreateSecret()
mapper, _ := f.Object()
shortOutput := cmdutil.GetFlagString(c, "output") == "name"
_, err := options.CreateSecret(mapper, shortOutput)
cmdutil.CheckErr(err)
},
}
Expand Down Expand Up @@ -161,15 +164,16 @@ nameCheck:
return nil
}

func (o *CreateSecretOptions) CreateSecret() (*kapi.Secret, error) {
func (o *CreateSecretOptions) CreateSecret(mapper meta.RESTMapper, shortOutput bool) (*kapi.Secret, error) {
secret, err := o.BundleSecret()
if err != nil {
return nil, err
}

persistedSecret, err := o.SecretsInterface.Create(secret)

if err == nil {
fmt.Fprintf(o.Out, "secret/%s\n", persistedSecret.Name)
cmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Secret", persistedSecret.Name, "created")
}

return persistedSecret, err
Expand Down
9 changes: 6 additions & 3 deletions pkg/cmd/cli/secrets/sshauth.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"io/ioutil"

"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/meta"
client "k8s.io/kubernetes/pkg/client/unversioned"
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"

Expand Down Expand Up @@ -78,7 +79,9 @@ func NewCmdCreateSSHAuthSecret(name, fullName string, f *kcmdutil.Factory, out i
return
}

if err := o.CreateSSHAuthSecret(); err != nil {
mapper, _ := f.Object()
shortOutput := kcmdutil.GetFlagString(c, "output") == "name"
if err := o.CreateSSHAuthSecret(mapper, shortOutput); err != nil {
kcmdutil.CheckErr(err)
}
},
Expand All @@ -99,7 +102,7 @@ func NewCmdCreateSSHAuthSecret(name, fullName string, f *kcmdutil.Factory, out i
}

// CreateSSHAuthSecret saves created Secret structure and prints the secret name to the output on success.
func (o *CreateSSHAuthSecretOptions) CreateSSHAuthSecret() error {
func (o *CreateSSHAuthSecretOptions) CreateSSHAuthSecret(mapper meta.RESTMapper, shortOutput bool) error {
secret, err := o.NewSSHAuthSecret()
if err != nil {
return err
Expand All @@ -109,7 +112,7 @@ func (o *CreateSSHAuthSecretOptions) CreateSSHAuthSecret() error {
return err
}

fmt.Fprintf(o.GetOut(), "secret/%s\n", secret.Name)
kcmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Secret", secret.Name, "created")
return nil
}

Expand Down
16 changes: 10 additions & 6 deletions pkg/cmd/experimental/syncgroups/cli/syncgroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
"github.com/spf13/cobra"

configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest"
kapi "k8s.io/kubernetes/pkg/api"
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
kerrs "k8s.io/kubernetes/pkg/util/errors"
"k8s.io/kubernetes/pkg/util/sets"
Expand Down Expand Up @@ -366,12 +365,17 @@ func (o *SyncGroupsOptions) Run(cmd *cobra.Command, f *clientcmd.Factory) error
return kerrs.NewAggregate(syncErrors)
}

list := &kapi.List{}
for _, item := range openshiftGroups {
list.Items = append(list.Items, item)
var action string
if o.Confirm {
action = "updated"
} else {
action = "would be updated"
}
if err := f.Factory.PrintObject(cmd, list, o.Out); err != nil {
return err

for _, item := range openshiftGroups {
mapper, _ := f.Object()
shortOutput := cmdutil.GetFlagString(cmd, "output") == "name"
cmdutil.PrintSuccess(mapper, shortOutput, o.Out, "Group", item.Name, action)
}

return kerrs.NewAggregate(syncErrors)
Expand Down
1 change: 0 additions & 1 deletion pkg/cmd/experimental/syncgroups/groupsyncer.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ func (s *LDAPGroupSyncer) Sync() ([]*userapi.Group, []error) {
openshiftGroups = append(openshiftGroups, openshiftGroup)

if !s.DryRun {
fmt.Fprintf(s.Out, "group/%s\n", openshiftGroup.Name)
if err := s.updateOpenShiftGroup(openshiftGroup); err != nil {
fmt.Fprintf(s.Err, "Error updating OpenShift group %q for LDAP group %q: %v.\n", openshiftGroup.Name, ldapGroupUID, err)
errors = append(errors, err)
Expand Down

0 comments on commit b2a4b16

Please sign in to comment.