Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
d1603c95
Commit
d1603c95
authored
May 02, 2018
by
juanvallejo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move PrintOptions to genericclioptions
parent
3693ed09
Hide whitespace changes
Inline
Side-by-side
Showing
77 changed files
with
475 additions
and
409 deletions
+475
-409
.golint_failures
hack/.golint_failures
+2
-0
import-restrictions.yaml
hack/import-restrictions.yaml
+1
-0
BUILD
pkg/kubectl/cmd/BUILD
+2
-0
annotate.go
pkg/kubectl/cmd/annotate.go
+3
-3
apply.go
pkg/kubectl/cmd/apply.go
+7
-11
apply_set_last_applied.go
pkg/kubectl/cmd/apply_set_last_applied.go
+3
-3
BUILD
pkg/kubectl/cmd/auth/BUILD
+1
-1
reconcile.go
pkg/kubectl/cmd/auth/reconcile.go
+3
-3
autoscale.go
pkg/kubectl/cmd/autoscale.go
+6
-11
certificates.go
pkg/kubectl/cmd/certificates.go
+4
-4
clusterinfo_dump.go
pkg/kubectl/cmd/clusterinfo_dump.go
+3
-3
cmd_printing_test.go
pkg/kubectl/cmd/cmd_printing_test.go
+7
-5
BUILD
pkg/kubectl/cmd/config/BUILD
+1
-0
flags.go
pkg/kubectl/cmd/config/flags.go
+12
-10
convert.go
pkg/kubectl/cmd/convert.go
+3
-3
BUILD
pkg/kubectl/cmd/create/BUILD
+1
-0
flags.go
pkg/kubectl/cmd/create/flags.go
+12
-10
drain.go
pkg/kubectl/cmd/drain.go
+18
-17
drain_test.go
pkg/kubectl/cmd/drain_test.go
+2
-2
expose.go
pkg/kubectl/cmd/expose.go
+3
-3
BUILD
pkg/kubectl/cmd/get/BUILD
+0
-1
get.go
pkg/kubectl/cmd/get/get.go
+1
-1
get_flags.go
pkg/kubectl/cmd/get/get_flags.go
+13
-12
humanreadable_flags.go
pkg/kubectl/cmd/get/humanreadable_flags.go
+2
-1
humanreadable_flags_test.go
pkg/kubectl/cmd/get/humanreadable_flags_test.go
+3
-3
label.go
pkg/kubectl/cmd/label.go
+6
-10
patch.go
pkg/kubectl/cmd/patch.go
+6
-10
replace.go
pkg/kubectl/cmd/replace.go
+3
-4
rollingupdate.go
pkg/kubectl/cmd/rollingupdate.go
+6
-11
BUILD
pkg/kubectl/cmd/rollout/BUILD
+1
-1
rollout_pause.go
pkg/kubectl/cmd/rollout/rollout_pause.go
+6
-11
rollout_resume.go
pkg/kubectl/cmd/rollout/rollout_resume.go
+6
-11
rollout_undo.go
pkg/kubectl/cmd/rollout/rollout_undo.go
+7
-11
run.go
pkg/kubectl/cmd/run.go
+4
-5
run_test.go
pkg/kubectl/cmd/run_test.go
+2
-3
scale.go
pkg/kubectl/cmd/scale.go
+4
-4
BUILD
pkg/kubectl/cmd/set/BUILD
+1
-2
set_env.go
pkg/kubectl/cmd/set/set_env.go
+3
-3
set_env_test.go
pkg/kubectl/cmd/set/set_env_test.go
+3
-4
set_image.go
pkg/kubectl/cmd/set/set_image.go
+3
-3
set_image_test.go
pkg/kubectl/cmd/set/set_image_test.go
+4
-5
set_resources.go
pkg/kubectl/cmd/set/set_resources.go
+3
-4
set_resources_test.go
pkg/kubectl/cmd/set/set_resources_test.go
+3
-5
set_selector.go
pkg/kubectl/cmd/set/set_selector.go
+3
-4
set_serviceaccount.go
pkg/kubectl/cmd/set/set_serviceaccount.go
+3
-4
set_serviceaccount_test.go
pkg/kubectl/cmd/set/set_serviceaccount_test.go
+4
-6
set_subject.go
pkg/kubectl/cmd/set/set_subject.go
+3
-3
taint.go
pkg/kubectl/cmd/taint.go
+6
-11
BUILD
pkg/kubectl/cmd/util/editor/BUILD
+1
-1
editoptions.go
pkg/kubectl/cmd/util/editor/editoptions.go
+6
-10
BUILD
pkg/kubectl/genericclioptions/BUILD
+19
-1
json_yaml_flags.go
pkg/kubectl/genericclioptions/json_yaml_flags.go
+7
-5
json_yaml_flags_test.go
pkg/kubectl/genericclioptions/json_yaml_flags_test.go
+4
-5
name_flags.go
pkg/kubectl/genericclioptions/name_flags.go
+5
-3
name_flags_test.go
pkg/kubectl/genericclioptions/name_flags_test.go
+4
-5
print_flags.go
pkg/kubectl/genericclioptions/print_flags.go
+5
-44
BUILD
pkg/kubectl/genericclioptions/printers/BUILD
+41
-0
interface.go
pkg/kubectl/genericclioptions/printers/interface.go
+32
-0
json.go
pkg/kubectl/genericclioptions/printers/json.go
+4
-4
name.go
pkg/kubectl/genericclioptions/printers/name.go
+2
-2
sourcechecker.go
pkg/kubectl/genericclioptions/printers/sourcechecker.go
+60
-0
sourcechecker_test.go
pkg/kubectl/genericclioptions/printers/sourcechecker_test.go
+0
-0
typesetter.go
pkg/kubectl/genericclioptions/printers/typesetter.go
+0
-0
BUILD
pkg/printers/BUILD
+8
-28
customcolumn.go
pkg/printers/customcolumn.go
+3
-2
customcolumn_flags.go
pkg/printers/customcolumn_flags.go
+4
-4
customcolumn_flags_test.go
pkg/printers/customcolumn_flags_test.go
+5
-5
customcolumn_test.go
pkg/printers/customcolumn_test.go
+18
-19
BUILD
pkg/printers/internalversion/BUILD
+2
-0
printers_test.go
pkg/printers/internalversion/printers_test.go
+8
-5
jsonpath.go
pkg/printers/jsonpath.go
+3
-2
jsonpath_flags.go
pkg/printers/jsonpath_flags.go
+4
-2
jsonpath_flags_test.go
pkg/printers/jsonpath_flags_test.go
+7
-7
kube_template_flags.go
pkg/printers/kube_template_flags.go
+6
-2
template.go
pkg/printers/template.go
+3
-2
template_flags.go
pkg/printers/template_flags.go
+4
-2
template_flags_test.go
pkg/printers/template_flags_test.go
+7
-7
No files found.
hack/.golint_failures
View file @
d1603c95
...
@@ -152,6 +152,7 @@ pkg/kubectl/cmd/util/editor
...
@@ -152,6 +152,7 @@ pkg/kubectl/cmd/util/editor
pkg/kubectl/cmd/util/jsonmerge
pkg/kubectl/cmd/util/jsonmerge
pkg/kubectl/cmd/util/sanity
pkg/kubectl/cmd/util/sanity
pkg/kubectl/genericclioptions
pkg/kubectl/genericclioptions
pkg/kubectl/genericclioptions/printers
pkg/kubectl/genericclioptions/resource
pkg/kubectl/genericclioptions/resource
pkg/kubectl/metricsutil
pkg/kubectl/metricsutil
pkg/kubectl/util
pkg/kubectl/util
...
@@ -222,6 +223,7 @@ pkg/kubemark
...
@@ -222,6 +223,7 @@ pkg/kubemark
pkg/master
pkg/master
pkg/master/controller/crdregistration
pkg/master/controller/crdregistration
pkg/master/tunneler
pkg/master/tunneler
pkg/printers
pkg/printers/internalversion
pkg/printers/internalversion
pkg/printers/storage
pkg/printers/storage
pkg/probe
pkg/probe
...
...
hack/import-restrictions.yaml
View file @
d1603c95
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
-
k8s.io/client-go
-
k8s.io/client-go
# TODO this one should be tightened. We depend on it for testing, but we should instead create our own scheme
# TODO this one should be tightened. We depend on it for testing, but we should instead create our own scheme
-
k8s.io/api/core/v1
-
k8s.io/api/core/v1
-
k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers
-
baseImportPath
:
"
./vendor/k8s.io/apimachinery/"
-
baseImportPath
:
"
./vendor/k8s.io/apimachinery/"
allowedImports
:
allowedImports
:
...
...
pkg/kubectl/cmd/BUILD
View file @
d1603c95
...
@@ -79,6 +79,7 @@ go_library(
...
@@ -79,6 +79,7 @@ go_library(
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/explain:go_default_library",
"//pkg/kubectl/explain:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/metricsutil:go_default_library",
"//pkg/kubectl/metricsutil:go_default_library",
"//pkg/kubectl/plugins:go_default_library",
"//pkg/kubectl/plugins:go_default_library",
...
@@ -201,6 +202,7 @@ go_test(
...
@@ -201,6 +202,7 @@ go_test(
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/plugins:go_default_library",
"//pkg/kubectl/plugins:go_default_library",
"//pkg/kubectl/polymorphichelpers:go_default_library",
"//pkg/kubectl/polymorphichelpers:go_default_library",
...
...
pkg/kubectl/cmd/annotate.go
View file @
d1603c95
...
@@ -35,15 +35,15 @@ import (
...
@@ -35,15 +35,15 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// AnnotateOptions have the data required to perform the annotate operation
// AnnotateOptions have the data required to perform the annotate operation
type
AnnotateOptions
struct
{
type
AnnotateOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
// Filename options
// Filename options
...
@@ -111,7 +111,7 @@ var (
...
@@ -111,7 +111,7 @@ var (
func
NewAnnotateOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
AnnotateOptions
{
func
NewAnnotateOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
AnnotateOptions
{
return
&
AnnotateOptions
{
return
&
AnnotateOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"annotated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"annotated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
...
...
pkg/kubectl/cmd/apply.go
View file @
d1603c95
...
@@ -49,19 +49,19 @@ import (
...
@@ -49,19 +49,19 @@ import (
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/printers"
)
)
type
ApplyOptions
struct
{
type
ApplyOptions
struct
{
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
Recorder
genericclioptions
.
Recorder
Recorder
genericclioptions
.
Recorder
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
DeleteFlags
*
DeleteFlags
DeleteFlags
*
DeleteFlags
DeleteOptions
*
DeleteOptions
DeleteOptions
*
DeleteOptions
...
@@ -131,7 +131,7 @@ func NewApplyOptions(ioStreams genericclioptions.IOStreams) *ApplyOptions {
...
@@ -131,7 +131,7 @@ func NewApplyOptions(ioStreams genericclioptions.IOStreams) *ApplyOptions {
return
&
ApplyOptions
{
return
&
ApplyOptions
{
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
DeleteFlags
:
NewDeleteFlags
(
"that contains the configuration to apply"
),
DeleteFlags
:
NewDeleteFlags
(
"that contains the configuration to apply"
),
PrintFlags
:
printer
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
Overwrite
:
true
,
Overwrite
:
true
,
OpenApiPatch
:
true
,
OpenApiPatch
:
true
,
...
@@ -191,17 +191,13 @@ func (o *ApplyOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
...
@@ -191,17 +191,13 @@ func (o *ApplyOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
o
.
DryRun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
o
.
DryRun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
// allow for a success message operation to be specified at print time
// allow for a success message operation to be specified at print time
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
if
o
.
DryRun
{
if
o
.
DryRun
{
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
}
}
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
var
err
error
var
err
error
...
@@ -592,7 +588,7 @@ type pruner struct {
...
@@ -592,7 +588,7 @@ type pruner struct {
scaler
scaleclient
.
ScalesGetter
scaler
scaleclient
.
ScalesGetter
toPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
toPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
out
io
.
Writer
out
io
.
Writer
}
}
...
...
pkg/kubectl/cmd/apply_set_last_applied.go
View file @
d1603c95
...
@@ -31,16 +31,16 @@ import (
...
@@ -31,16 +31,16 @@ import (
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/editor"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
type
SetLastAppliedOptions
struct
{
type
SetLastAppliedOptions
struct
{
CreateAnnotation
bool
CreateAnnotation
bool
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
FilenameOptions
resource
.
FilenameOptions
FilenameOptions
resource
.
FilenameOptions
...
@@ -83,7 +83,7 @@ var (
...
@@ -83,7 +83,7 @@ var (
func
NewSetLastAppliedOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
SetLastAppliedOptions
{
func
NewSetLastAppliedOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
SetLastAppliedOptions
{
return
&
SetLastAppliedOptions
{
return
&
SetLastAppliedOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"configured"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"configured"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
}
}
...
...
pkg/kubectl/cmd/auth/BUILD
View file @
d1603c95
...
@@ -25,9 +25,9 @@ go_library(
...
@@ -25,9 +25,9 @@ go_library(
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/registry/rbac/reconciliation:go_default_library",
"//pkg/registry/rbac/reconciliation:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
...
...
pkg/kubectl/cmd/auth/reconcile.go
View file @
d1603c95
...
@@ -29,16 +29,16 @@ import (
...
@@ -29,16 +29,16 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/registry/rbac/reconciliation"
"k8s.io/kubernetes/pkg/registry/rbac/reconciliation"
)
)
// ReconcileOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
// ReconcileOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
// referencing the cmd.Flags()
// referencing the cmd.Flags()
type
ReconcileOptions
struct
{
type
ReconcileOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
FilenameOptions
*
resource
.
FilenameOptions
FilenameOptions
*
resource
.
FilenameOptions
Visitor
resource
.
Visitor
Visitor
resource
.
Visitor
...
@@ -64,7 +64,7 @@ var (
...
@@ -64,7 +64,7 @@ var (
func
NewReconcileOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
ReconcileOptions
{
func
NewReconcileOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
ReconcileOptions
{
return
&
ReconcileOptions
{
return
&
ReconcileOptions
{
FilenameOptions
:
&
resource
.
FilenameOptions
{},
FilenameOptions
:
&
resource
.
FilenameOptions
{},
PrintFlags
:
printer
s
.
NewPrintFlags
(
"reconciled"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"reconciled"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
}
}
...
...
pkg/kubectl/cmd/autoscale.go
View file @
d1603c95
...
@@ -31,10 +31,10 @@ import (
...
@@ -31,10 +31,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -58,8 +58,8 @@ type AutoscaleOptions struct {
...
@@ -58,8 +58,8 @@ type AutoscaleOptions struct {
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
Recorder
genericclioptions
.
Recorder
Recorder
genericclioptions
.
Recorder
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
Name
string
Name
string
Generator
string
Generator
string
...
@@ -83,7 +83,7 @@ type AutoscaleOptions struct {
...
@@ -83,7 +83,7 @@ type AutoscaleOptions struct {
func
NewAutoscaleOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
AutoscaleOptions
{
func
NewAutoscaleOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
AutoscaleOptions
{
return
&
AutoscaleOptions
{
return
&
AutoscaleOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"autoscaled"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"autoscaled"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
FilenameOptions
:
&
resource
.
FilenameOptions
{},
FilenameOptions
:
&
resource
.
FilenameOptions
{},
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
...
@@ -170,18 +170,13 @@ func (o *AutoscaleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
...
@@ -170,18 +170,13 @@ func (o *AutoscaleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
return
err
return
err
}
}
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
if
o
.
dryRun
{
if
o
.
dryRun
{
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
}
}
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
return
nil
return
nil
...
...
pkg/kubectl/cmd/certificates.go
View file @
d1603c95
...
@@ -29,10 +29,10 @@ import (
...
@@ -29,10 +29,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
...
@@ -57,7 +57,7 @@ func NewCmdCertificate(f cmdutil.Factory, ioStreams genericclioptions.IOStreams)
...
@@ -57,7 +57,7 @@ func NewCmdCertificate(f cmdutil.Factory, ioStreams genericclioptions.IOStreams)
type
CertificateOptions
struct
{
type
CertificateOptions
struct
{
resource
.
FilenameOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
csrNames
[]
string
csrNames
[]
string
...
@@ -100,7 +100,7 @@ func (o *CertificateOptions) Validate() error {
...
@@ -100,7 +100,7 @@ func (o *CertificateOptions) Validate() error {
func
NewCmdCertificateApprove
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdCertificateApprove
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
options
:=
CertificateOptions
{
options
:=
CertificateOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"approved"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"approved"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
@@ -157,7 +157,7 @@ func (o *CertificateOptions) RunCertificateApprove(force bool) error {
...
@@ -157,7 +157,7 @@ func (o *CertificateOptions) RunCertificateApprove(force bool) error {
func
NewCmdCertificateDeny
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdCertificateDeny
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
options
:=
CertificateOptions
{
options
:=
CertificateOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"denied"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"denied"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
...
pkg/kubectl/cmd/clusterinfo_dump.go
View file @
d1603c95
...
@@ -31,14 +31,14 @@ import (
...
@@ -31,14 +31,14 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/polymorphichelpers"
"k8s.io/kubernetes/pkg/kubectl/polymorphichelpers"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
type
ClusterInfoDumpOptions
struct
{
type
ClusterInfoDumpOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
OutputDir
string
OutputDir
string
...
@@ -57,7 +57,7 @@ type ClusterInfoDumpOptions struct {
...
@@ -57,7 +57,7 @@ type ClusterInfoDumpOptions struct {
// NewCmdCreateSecret groups subcommands to create various types of secrets
// NewCmdCreateSecret groups subcommands to create various types of secrets
func
NewCmdClusterInfoDump
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdClusterInfoDump
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
o
:=
&
ClusterInfoDumpOptions
{
o
:=
&
ClusterInfoDumpOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
...
...
pkg/kubectl/cmd/cmd_printing_test.go
View file @
d1603c95
...
@@ -24,6 +24,8 @@ import (
...
@@ -24,6 +24,8 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
api
"k8s.io/kubernetes/pkg/apis/core"
api
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
genericprinters
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/printers"
)
)
...
@@ -81,7 +83,7 @@ func TestIllegalPackageSourceCheckerThroughPrintFlags(t *testing.T) {
...
@@ -81,7 +83,7 @@ func TestIllegalPackageSourceCheckerThroughPrintFlags(t *testing.T) {
}
}
for
_
,
tc
:=
range
testCases
{
for
_
,
tc
:=
range
testCases
{
printFlags
:=
printer
s
.
NewPrintFlags
(
"succeeded"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printFlags
:=
genericclioption
s
.
NewPrintFlags
(
"succeeded"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printFlags
.
OutputFormat
=
&
tc
.
output
printFlags
.
OutputFormat
=
&
tc
.
output
printer
,
err
:=
printFlags
.
ToPrinter
()
printer
,
err
:=
printFlags
.
ToPrinter
()
...
@@ -97,7 +99,7 @@ func TestIllegalPackageSourceCheckerThroughPrintFlags(t *testing.T) {
...
@@ -97,7 +99,7 @@ func TestIllegalPackageSourceCheckerThroughPrintFlags(t *testing.T) {
t
.
Fatalf
(
"unexpected error %v"
,
err
)
t
.
Fatalf
(
"unexpected error %v"
,
err
)
}
}
if
!
printers
.
IsInternalObjectError
(
err
)
{
if
!
generic
printers
.
IsInternalObjectError
(
err
)
{
t
.
Fatalf
(
"unexpected error - expecting internal object printer error, got %q"
,
err
)
t
.
Fatalf
(
"unexpected error - expecting internal object printer error, got %q"
,
err
)
}
}
continue
continue
...
@@ -143,13 +145,13 @@ func TestIllegalPackageSourceCheckerDirectlyThroughPrinters(t *testing.T) {
...
@@ -143,13 +145,13 @@ func TestIllegalPackageSourceCheckerDirectlyThroughPrinters(t *testing.T) {
{
{
name
:
"json printer: object containing package path beginning with forbidden prefix is rejected"
,
name
:
"json printer: object containing package path beginning with forbidden prefix is rejected"
,
expectInternalObjErr
:
true
,
expectInternalObjErr
:
true
,
printer
:
&
printers
.
JSONPrinter
{},
printer
:
&
generic
printers
.
JSONPrinter
{},
obj
:
internalPod
(),
obj
:
internalPod
(),
},
},
{
{
name
:
"yaml printer: object containing package path beginning with forbidden prefix is rejected"
,
name
:
"yaml printer: object containing package path beginning with forbidden prefix is rejected"
,
expectInternalObjErr
:
true
,
expectInternalObjErr
:
true
,
printer
:
&
printers
.
YAMLPrinter
{},
printer
:
&
generic
printers
.
YAMLPrinter
{},
obj
:
internalPod
(),
obj
:
internalPod
(),
},
},
{
{
...
@@ -187,7 +189,7 @@ func TestIllegalPackageSourceCheckerDirectlyThroughPrinters(t *testing.T) {
...
@@ -187,7 +189,7 @@ func TestIllegalPackageSourceCheckerDirectlyThroughPrinters(t *testing.T) {
t
.
Fatalf
(
"unexpected error %v"
,
err
)
t
.
Fatalf
(
"unexpected error %v"
,
err
)
}
}
if
!
printers
.
IsInternalObjectError
(
err
)
{
if
!
generic
printers
.
IsInternalObjectError
(
err
)
{
t
.
Fatalf
(
"unexpected error - expecting internal object printer error, got %q"
,
err
)
t
.
Fatalf
(
"unexpected error - expecting internal object printer error, got %q"
,
err
)
}
}
continue
continue
...
...
pkg/kubectl/cmd/config/BUILD
View file @
d1603c95
...
@@ -33,6 +33,7 @@ go_library(
...
@@ -33,6 +33,7 @@ go_library(
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
...
...
pkg/kubectl/cmd/config/flags.go
View file @
d1603c95
...
@@ -20,6 +20,8 @@ import (
...
@@ -20,6 +20,8 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
genericprinters
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/printers"
)
)
...
@@ -27,11 +29,11 @@ import (
...
@@ -27,11 +29,11 @@ import (
// used across all config commands, and provides a method
// used across all config commands, and provides a method
// of retrieving a known printer based on flag values provided.
// of retrieving a known printer based on flag values provided.
type
kubectlConfigPrintFlags
struct
{
type
kubectlConfigPrintFlags
struct
{
JSONYamlPrintFlags
*
printer
s
.
JSONYamlPrintFlags
JSONYamlPrintFlags
*
genericclioption
s
.
JSONYamlPrintFlags
NamePrintFlags
*
printer
s
.
NamePrintFlags
NamePrintFlags
*
genericclioption
s
.
NamePrintFlags
TemplateFlags
*
printers
.
KubeTemplatePrintFlags
TemplateFlags
*
printers
.
KubeTemplatePrintFlags
TypeSetter
*
printers
.
TypeSetterPrinter
TypeSetter
*
generic
printers
.
TypeSetterPrinter
OutputFormat
*
string
OutputFormat
*
string
}
}
...
@@ -46,19 +48,19 @@ func (f *kubectlConfigPrintFlags) ToPrinter() (printers.ResourcePrinter, error)
...
@@ -46,19 +48,19 @@ func (f *kubectlConfigPrintFlags) ToPrinter() (printers.ResourcePrinter, error)
outputFormat
=
*
f
.
OutputFormat
outputFormat
=
*
f
.
OutputFormat
}
}
if
p
,
err
:=
f
.
JSONYamlPrintFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
JSONYamlPrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
}
}
if
p
,
err
:=
f
.
NamePrintFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
NamePrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
}
}
if
p
,
err
:=
f
.
TemplateFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
TemplateFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
}
}
return
nil
,
printer
s
.
NoCompatiblePrinterError
{
Options
:
f
}
return
nil
,
genericclioption
s
.
NoCompatiblePrinterError
{
Options
:
f
}
}
}
func
(
f
*
kubectlConfigPrintFlags
)
AddFlags
(
cmd
*
cobra
.
Command
)
{
func
(
f
*
kubectlConfigPrintFlags
)
AddFlags
(
cmd
*
cobra
.
Command
)
{
...
@@ -83,10 +85,10 @@ func newKubeConfigPrintFlags(scheme runtime.ObjectTyper) *kubectlConfigPrintFlag
...
@@ -83,10 +85,10 @@ func newKubeConfigPrintFlags(scheme runtime.ObjectTyper) *kubectlConfigPrintFlag
return
&
kubectlConfigPrintFlags
{
return
&
kubectlConfigPrintFlags
{
OutputFormat
:
&
outputFormat
,
OutputFormat
:
&
outputFormat
,
JSONYamlPrintFlags
:
printer
s
.
NewJSONYamlPrintFlags
(),
JSONYamlPrintFlags
:
genericclioption
s
.
NewJSONYamlPrintFlags
(),
NamePrintFlags
:
printer
s
.
NewNamePrintFlags
(
""
),
NamePrintFlags
:
genericclioption
s
.
NewNamePrintFlags
(
""
),
TemplateFlags
:
printers
.
NewKubeTemplatePrintFlags
(),
TemplateFlags
:
printers
.
NewKubeTemplatePrintFlags
(),
TypeSetter
:
printers
.
NewTypeSetter
(
scheme
),
TypeSetter
:
generic
printers
.
NewTypeSetter
(
scheme
),
}
}
}
}
pkg/kubectl/cmd/convert.go
View file @
d1603c95
...
@@ -27,9 +27,9 @@ import (
...
@@ -27,9 +27,9 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
"github.com/golang/glog"
"github.com/golang/glog"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
...
@@ -89,7 +89,7 @@ func NewCmdConvert(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *co
...
@@ -89,7 +89,7 @@ func NewCmdConvert(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *co
// ConvertOptions have the data required to perform the convert operation
// ConvertOptions have the data required to perform the convert operation
type
ConvertOptions
struct
{
type
ConvertOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
resource
.
FilenameOptions
resource
.
FilenameOptions
...
@@ -103,7 +103,7 @@ type ConvertOptions struct {
...
@@ -103,7 +103,7 @@ type ConvertOptions struct {
func
NewConvertOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
ConvertOptions
{
func
NewConvertOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
ConvertOptions
{
return
&
ConvertOptions
{
return
&
ConvertOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"converted"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
.
WithDefaultOutput
(
"yaml"
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"converted"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
.
WithDefaultOutput
(
"yaml"
),
local
:
true
,
local
:
true
,
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
...
...
pkg/kubectl/cmd/create/BUILD
View file @
d1603c95
...
@@ -29,6 +29,7 @@ go_library(
...
@@ -29,6 +29,7 @@ go_library(
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util/editor:go_default_library",
"//pkg/kubectl/cmd/util/editor:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
...
...
pkg/kubectl/cmd/create/flags.go
View file @
d1603c95
...
@@ -18,8 +18,10 @@ package create
...
@@ -18,8 +18,10 @@ package create
import
(
import
(
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
genericprinters
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/printers"
)
)
...
@@ -27,11 +29,11 @@ import (
...
@@ -27,11 +29,11 @@ import (
// used across all create commands, and provides a method
// used across all create commands, and provides a method
// of retrieving a known printer based on flag values provided.
// of retrieving a known printer based on flag values provided.
type
PrintFlags
struct
{
type
PrintFlags
struct
{
JSONYamlPrintFlags
*
printer
s
.
JSONYamlPrintFlags
JSONYamlPrintFlags
*
genericclioption
s
.
JSONYamlPrintFlags
NamePrintFlags
*
printer
s
.
NamePrintFlags
NamePrintFlags
*
genericclioption
s
.
NamePrintFlags
TemplateFlags
*
printers
.
KubeTemplatePrintFlags
TemplateFlags
*
printers
.
KubeTemplatePrintFlags
TypeSetter
*
printers
.
TypeSetterPrinter
TypeSetter
*
generic
printers
.
TypeSetterPrinter
OutputFormat
*
string
OutputFormat
*
string
}
}
...
@@ -46,19 +48,19 @@ func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error) {
...
@@ -46,19 +48,19 @@ func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error) {
outputFormat
=
*
f
.
OutputFormat
outputFormat
=
*
f
.
OutputFormat
}
}
if
p
,
err
:=
f
.
JSONYamlPrintFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
JSONYamlPrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
}
}
if
p
,
err
:=
f
.
NamePrintFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
NamePrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
}
}
if
p
,
err
:=
f
.
TemplateFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
TemplateFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
return
f
.
TypeSetter
.
WrapToPrinter
(
p
,
err
)
}
}
return
nil
,
printer
s
.
NoCompatiblePrinterError
{
Options
:
f
}
return
nil
,
genericclioption
s
.
NoCompatiblePrinterError
{
Options
:
f
}
}
}
func
(
f
*
PrintFlags
)
AddFlags
(
cmd
*
cobra
.
Command
)
{
func
(
f
*
PrintFlags
)
AddFlags
(
cmd
*
cobra
.
Command
)
{
...
@@ -77,10 +79,10 @@ func NewPrintFlags(operation string, scheme runtime.ObjectTyper) *PrintFlags {
...
@@ -77,10 +79,10 @@ func NewPrintFlags(operation string, scheme runtime.ObjectTyper) *PrintFlags {
return
&
PrintFlags
{
return
&
PrintFlags
{
OutputFormat
:
&
outputFormat
,
OutputFormat
:
&
outputFormat
,
JSONYamlPrintFlags
:
printer
s
.
NewJSONYamlPrintFlags
(),
JSONYamlPrintFlags
:
genericclioption
s
.
NewJSONYamlPrintFlags
(),
NamePrintFlags
:
printer
s
.
NewNamePrintFlags
(
operation
),
NamePrintFlags
:
genericclioption
s
.
NewNamePrintFlags
(
operation
),
TemplateFlags
:
printers
.
NewKubeTemplatePrintFlags
(),
TemplateFlags
:
printers
.
NewKubeTemplatePrintFlags
(),
TypeSetter
:
printers
.
NewTypeSetter
(
scheme
),
TypeSetter
:
generic
printers
.
NewTypeSetter
(
scheme
),
}
}
}
}
pkg/kubectl/cmd/drain.go
View file @
d1603c95
...
@@ -40,21 +40,21 @@ import (
...
@@ -40,21 +40,21 @@ import (
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/kubernetes"
restclient
"k8s.io/client-go/rest"
restclient
"k8s.io/client-go/rest"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
type
DrainOptions
struct
{
type
DrainOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinterFunc
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinterFunc
,
error
)
Namespace
string
Namespace
string
...
@@ -108,7 +108,7 @@ var (
...
@@ -108,7 +108,7 @@ var (
func
NewCmdCordon
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdCordon
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
options
:=
&
DrainOptions
{
options
:=
&
DrainOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"cordoned"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"cordoned"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
...
@@ -140,7 +140,7 @@ var (
...
@@ -140,7 +140,7 @@ var (
func
NewCmdUncordon
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdUncordon
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
options
:=
&
DrainOptions
{
options
:=
&
DrainOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"uncordoned"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"uncordoned"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
...
@@ -196,7 +196,7 @@ var (
...
@@ -196,7 +196,7 @@ var (
func
NewDrainOptions
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
DrainOptions
{
func
NewDrainOptions
(
f
cmdutil
.
Factory
,
ioStreams
genericclioptions
.
IOStreams
)
*
DrainOptions
{
return
&
DrainOptions
{
return
&
DrainOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"drained"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"drained"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
backOff
:
clockwork
.
NewRealClock
(),
backOff
:
clockwork
.
NewRealClock
(),
...
@@ -279,6 +279,7 @@ func (o *DrainOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
...
@@ -279,6 +279,7 @@ func (o *DrainOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
return
printer
.
PrintObj
,
nil
return
printer
.
PrintObj
,
nil
}
}
...
@@ -319,7 +320,7 @@ func (o *DrainOptions) RunDrain() error {
...
@@ -319,7 +320,7 @@ func (o *DrainOptions) RunDrain() error {
return
err
return
err
}
}
print
er
,
err
:=
o
.
ToPrinter
(
"drained"
)
print
Obj
,
err
:=
o
.
ToPrinter
(
"drained"
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -334,7 +335,7 @@ func (o *DrainOptions) RunDrain() error {
...
@@ -334,7 +335,7 @@ func (o *DrainOptions) RunDrain() error {
}
}
if
err
==
nil
||
o
.
DryRun
{
if
err
==
nil
||
o
.
DryRun
{
drainedNodes
.
Insert
(
info
.
Name
)
drainedNodes
.
Insert
(
info
.
Name
)
print
er
.
Print
Obj
(
info
.
Object
,
o
.
Out
)
printObj
(
info
.
Object
,
o
.
Out
)
}
else
{
}
else
{
fmt
.
Fprintf
(
o
.
ErrOut
,
"error: unable to drain node %q, aborting command...
\n\n
"
,
info
.
Name
)
fmt
.
Fprintf
(
o
.
ErrOut
,
"error: unable to drain node %q, aborting command...
\n\n
"
,
info
.
Name
)
remainingNodes
:=
[]
string
{}
remainingNodes
:=
[]
string
{}
...
@@ -650,7 +651,7 @@ func (o *DrainOptions) waitForDelete(pods []corev1.Pod, interval, timeout time.D
...
@@ -650,7 +651,7 @@ func (o *DrainOptions) waitForDelete(pods []corev1.Pod, interval, timeout time.D
}
else
{
}
else
{
verbStr
=
"deleted"
verbStr
=
"deleted"
}
}
print
er
,
err
:=
o
.
ToPrinter
(
verbStr
)
print
Obj
,
err
:=
o
.
ToPrinter
(
verbStr
)
if
err
!=
nil
{
if
err
!=
nil
{
return
pods
,
err
return
pods
,
err
}
}
...
@@ -660,7 +661,7 @@ func (o *DrainOptions) waitForDelete(pods []corev1.Pod, interval, timeout time.D
...
@@ -660,7 +661,7 @@ func (o *DrainOptions) waitForDelete(pods []corev1.Pod, interval, timeout time.D
for
i
,
pod
:=
range
pods
{
for
i
,
pod
:=
range
pods
{
p
,
err
:=
getPodFn
(
pod
.
Namespace
,
pod
.
Name
)
p
,
err
:=
getPodFn
(
pod
.
Namespace
,
pod
.
Name
)
if
apierrors
.
IsNotFound
(
err
)
||
(
p
!=
nil
&&
p
.
ObjectMeta
.
UID
!=
pod
.
ObjectMeta
.
UID
)
{
if
apierrors
.
IsNotFound
(
err
)
||
(
p
!=
nil
&&
p
.
ObjectMeta
.
UID
!=
pod
.
ObjectMeta
.
UID
)
{
print
er
.
Print
Obj
(
&
pod
,
o
.
Out
)
printObj
(
&
pod
,
o
.
Out
)
continue
continue
}
else
if
err
!=
nil
{
}
else
if
err
!=
nil
{
return
false
,
err
return
false
,
err
...
@@ -736,12 +737,12 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error {
...
@@ -736,12 +737,12 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error {
}
}
unsched
:=
node
.
Spec
.
Unschedulable
unsched
:=
node
.
Spec
.
Unschedulable
if
unsched
==
desired
{
if
unsched
==
desired
{
print
er
,
err
:=
o
.
ToPrinter
(
already
(
desired
))
print
Obj
,
err
:=
o
.
ToPrinter
(
already
(
desired
))
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Printf
(
"error: %v"
,
err
)
fmt
.
Printf
(
"error: %v"
,
err
)
continue
continue
}
}
print
er
.
Print
Obj
(
cmdutil
.
AsDefaultVersionedOrOriginal
(
nodeInfo
.
Object
,
nodeInfo
.
Mapping
),
o
.
Out
)
printObj
(
cmdutil
.
AsDefaultVersionedOrOriginal
(
nodeInfo
.
Object
,
nodeInfo
.
Mapping
),
o
.
Out
)
}
else
{
}
else
{
if
!
o
.
DryRun
{
if
!
o
.
DryRun
{
helper
:=
resource
.
NewHelper
(
o
.
restClient
,
nodeInfo
.
Mapping
)
helper
:=
resource
.
NewHelper
(
o
.
restClient
,
nodeInfo
.
Mapping
)
...
@@ -762,20 +763,20 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error {
...
@@ -762,20 +763,20 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error {
continue
continue
}
}
}
}
print
er
,
err
:=
o
.
ToPrinter
(
changed
(
desired
))
print
Obj
,
err
:=
o
.
ToPrinter
(
changed
(
desired
))
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Fprintf
(
o
.
ErrOut
,
"%v"
,
err
)
fmt
.
Fprintf
(
o
.
ErrOut
,
"%v"
,
err
)
continue
continue
}
}
print
er
.
Print
Obj
(
cmdutil
.
AsDefaultVersionedOrOriginal
(
nodeInfo
.
Object
,
nodeInfo
.
Mapping
),
o
.
Out
)
printObj
(
cmdutil
.
AsDefaultVersionedOrOriginal
(
nodeInfo
.
Object
,
nodeInfo
.
Mapping
),
o
.
Out
)
}
}
}
else
{
}
else
{
print
er
,
err
:=
o
.
ToPrinter
(
"skipped"
)
print
Obj
,
err
:=
o
.
ToPrinter
(
"skipped"
)
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Fprintf
(
o
.
ErrOut
,
"%v"
,
err
)
fmt
.
Fprintf
(
o
.
ErrOut
,
"%v"
,
err
)
continue
continue
}
}
print
er
.
Print
Obj
(
cmdutil
.
AsDefaultVersionedOrOriginal
(
nodeInfo
.
Object
,
nodeInfo
.
Mapping
),
o
.
Out
)
printObj
(
cmdutil
.
AsDefaultVersionedOrOriginal
(
nodeInfo
.
Object
,
nodeInfo
.
Mapping
),
o
.
Out
)
}
}
}
}
...
...
pkg/kubectl/cmd/drain_test.go
View file @
d1603c95
...
@@ -50,8 +50,8 @@ import (
...
@@ -50,8 +50,8 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions"
cmdtesting
"k8s.io/kubernetes/pkg/kubectl/cmd/testing"
cmdtesting
"k8s.io/kubernetes/pkg/kubectl/cmd/testing"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/printers"
)
)
const
(
const
(
...
@@ -834,7 +834,7 @@ func TestDeletePods(t *testing.T) {
...
@@ -834,7 +834,7 @@ func TestDeletePods(t *testing.T) {
defer
tf
.
Cleanup
()
defer
tf
.
Cleanup
()
o
:=
DrainOptions
{
o
:=
DrainOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"drained"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"drained"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
}
}
o
.
Out
=
os
.
Stdout
o
.
Out
=
os
.
Stdout
...
...
pkg/kubectl/cmd/expose.go
View file @
d1603c95
...
@@ -35,10 +35,10 @@ import (
...
@@ -35,10 +35,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -84,7 +84,7 @@ var (
...
@@ -84,7 +84,7 @@ var (
type
ExposeServiceOptions
struct
{
type
ExposeServiceOptions
struct
{
FilenameOptions
resource
.
FilenameOptions
FilenameOptions
resource
.
FilenameOptions
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
DryRun
bool
DryRun
bool
...
@@ -111,7 +111,7 @@ type ExposeServiceOptions struct {
...
@@ -111,7 +111,7 @@ type ExposeServiceOptions struct {
func
NewExposeServiceOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
ExposeServiceOptions
{
func
NewExposeServiceOptions
(
ioStreams
genericclioptions
.
IOStreams
)
*
ExposeServiceOptions
{
return
&
ExposeServiceOptions
{
return
&
ExposeServiceOptions
{
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
PrintFlags
:
printer
s
.
NewPrintFlags
(
"exposed"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"exposed"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
...
...
pkg/kubectl/cmd/get/BUILD
View file @
d1603c95
...
@@ -77,7 +77,6 @@ go_test(
...
@@ -77,7 +77,6 @@ go_test(
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/printers:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
...
pkg/kubectl/cmd/get/get.go
View file @
d1603c95
...
@@ -133,7 +133,7 @@ const (
...
@@ -133,7 +133,7 @@ const (
// NewGetOptions returns a GetOptions with default chunk size 500.
// NewGetOptions returns a GetOptions with default chunk size 500.
func
NewGetOptions
(
parent
string
,
streams
genericclioptions
.
IOStreams
)
*
GetOptions
{
func
NewGetOptions
(
parent
string
,
streams
genericclioptions
.
IOStreams
)
*
GetOptions
{
return
&
GetOptions
{
return
&
GetOptions
{
PrintFlags
:
NewGetPrintFlags
(
legacyscheme
.
Scheme
),
PrintFlags
:
NewGetPrintFlags
(),
CmdParent
:
parent
,
CmdParent
:
parent
,
IOStreams
:
streams
,
IOStreams
:
streams
,
...
...
pkg/kubectl/cmd/get/get_flags.go
View file @
d1603c95
...
@@ -22,17 +22,17 @@ import (
...
@@ -22,17 +22,17 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/printers"
)
)
// PrintFlags composes common printer flag structs
// PrintFlags composes common printer flag structs
// used in the Get command.
// used in the Get command.
type
PrintFlags
struct
{
type
PrintFlags
struct
{
JSONYamlPrintFlags
*
printer
s
.
JSONYamlPrintFlags
JSONYamlPrintFlags
*
genericclioption
s
.
JSONYamlPrintFlags
NamePrintFlags
*
printer
s
.
NamePrintFlags
NamePrintFlags
*
genericclioption
s
.
NamePrintFlags
TemplateFlags
*
printers
.
KubeTemplatePrintFlags
TemplateFlags
*
printers
.
KubeTemplatePrintFlags
CustomColumnsFlags
*
printers
.
CustomColumnsPrintFlags
CustomColumnsFlags
*
printers
.
CustomColumnsPrintFlags
HumanReadableFlags
*
HumanPrintFlags
HumanReadableFlags
*
HumanPrintFlags
...
@@ -107,27 +107,27 @@ func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error) {
...
@@ -107,27 +107,27 @@ func (f *PrintFlags) ToPrinter() (printers.ResourcePrinter, error) {
f
.
CustomColumnsFlags
.
TemplateArgument
=
*
f
.
TemplateFlags
.
TemplateArgument
f
.
CustomColumnsFlags
.
TemplateArgument
=
*
f
.
TemplateFlags
.
TemplateArgument
}
}
if
p
,
err
:=
f
.
JSONYamlPrintFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
JSONYamlPrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
p
,
err
return
p
,
err
}
}
if
p
,
err
:=
f
.
HumanReadableFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
HumanReadableFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
p
,
err
return
p
,
err
}
}
if
p
,
err
:=
f
.
TemplateFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
TemplateFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
p
,
err
return
p
,
err
}
}
if
p
,
err
:=
f
.
CustomColumnsFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
CustomColumnsFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
p
,
err
return
p
,
err
}
}
if
p
,
err
:=
f
.
NamePrintFlags
.
ToPrinter
(
outputFormat
);
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
NamePrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
return
p
,
err
return
p
,
err
}
}
return
nil
,
printer
s
.
NoCompatiblePrinterError
{
Options
:
f
}
return
nil
,
genericclioption
s
.
NoCompatiblePrinterError
{
Options
:
f
}
}
}
// AddFlags receives a *cobra.Command reference and binds
// AddFlags receives a *cobra.Command reference and binds
...
@@ -153,7 +153,7 @@ func (f *PrintFlags) AddFlags(cmd *cobra.Command) {
...
@@ -153,7 +153,7 @@ func (f *PrintFlags) AddFlags(cmd *cobra.Command) {
// NewGetPrintFlags returns flags associated with humanreadable,
// NewGetPrintFlags returns flags associated with humanreadable,
// template, and "name" printing, with default values set.
// template, and "name" printing, with default values set.
func
NewGetPrintFlags
(
scheme
runtime
.
ObjectConvertor
)
*
PrintFlags
{
func
NewGetPrintFlags
()
*
PrintFlags
{
outputFormat
:=
""
outputFormat
:=
""
noHeaders
:=
false
noHeaders
:=
false
...
@@ -161,9 +161,10 @@ func NewGetPrintFlags(scheme runtime.ObjectConvertor) *PrintFlags {
...
@@ -161,9 +161,10 @@ func NewGetPrintFlags(scheme runtime.ObjectConvertor) *PrintFlags {
OutputFormat
:
&
outputFormat
,
OutputFormat
:
&
outputFormat
,
NoHeaders
:
&
noHeaders
,
NoHeaders
:
&
noHeaders
,
JSONYamlPrintFlags
:
printer
s
.
NewJSONYamlPrintFlags
(),
JSONYamlPrintFlags
:
genericclioption
s
.
NewJSONYamlPrintFlags
(),
NamePrintFlags
:
printer
s
.
NewNamePrintFlags
(
""
),
NamePrintFlags
:
genericclioption
s
.
NewNamePrintFlags
(
""
),
TemplateFlags
:
printers
.
NewKubeTemplatePrintFlags
(),
TemplateFlags
:
printers
.
NewKubeTemplatePrintFlags
(),
HumanReadableFlags
:
NewHumanPrintFlags
(),
HumanReadableFlags
:
NewHumanPrintFlags
(),
CustomColumnsFlags
:
printers
.
NewCustomColumnsPrintFlags
(),
CustomColumnsFlags
:
printers
.
NewCustomColumnsPrintFlags
(),
}
}
...
...
pkg/kubectl/cmd/get/humanreadable_flags.go
View file @
d1603c95
...
@@ -18,6 +18,7 @@ package get
...
@@ -18,6 +18,7 @@ package get
import
(
import
(
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
...
@@ -63,7 +64,7 @@ func (f *HumanPrintFlags) EnsureWithNamespace() error {
...
@@ -63,7 +64,7 @@ func (f *HumanPrintFlags) EnsureWithNamespace() error {
// handling human-readable output.
// handling human-readable output.
func
(
f
*
HumanPrintFlags
)
ToPrinter
(
outputFormat
string
)
(
printers
.
ResourcePrinter
,
error
)
{
func
(
f
*
HumanPrintFlags
)
ToPrinter
(
outputFormat
string
)
(
printers
.
ResourcePrinter
,
error
)
{
if
len
(
outputFormat
)
>
0
&&
outputFormat
!=
"wide"
{
if
len
(
outputFormat
)
>
0
&&
outputFormat
!=
"wide"
{
return
nil
,
printer
s
.
NoCompatiblePrinterError
{
Options
:
f
}
return
nil
,
genericclioption
s
.
NoCompatiblePrinterError
{
Options
:
f
}
}
}
decoder
:=
scheme
.
Codecs
.
UniversalDecoder
()
decoder
:=
scheme
.
Codecs
.
UniversalDecoder
()
...
...
pkg/kubectl/cmd/get/humanreadable_flags_test.go
View file @
d1603c95
...
@@ -25,7 +25,7 @@ import (
...
@@ -25,7 +25,7 @@ import (
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
api
"k8s.io/kubernetes/pkg/apis/core"
api
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/
printer
s"
"k8s.io/kubernetes/pkg/
kubectl/genericclioption
s"
)
)
func
TestHumanReadablePrinterSupportsExpectedOptions
(
t
*
testing
.
T
)
{
func
TestHumanReadablePrinterSupportsExpectedOptions
(
t
*
testing
.
T
)
{
...
@@ -119,12 +119,12 @@ func TestHumanReadablePrinterSupportsExpectedOptions(t *testing.T) {
...
@@ -119,12 +119,12 @@ func TestHumanReadablePrinterSupportsExpectedOptions(t *testing.T) {
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
if
tc
.
expectNoMatch
{
if
tc
.
expectNoMatch
{
if
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
}
}
return
return
}
}
if
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
}
}
...
...
pkg/kubectl/cmd/label.go
View file @
d1603c95
...
@@ -37,10 +37,10 @@ import (
...
@@ -37,10 +37,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// LabelOptions have the data required to perform the label operation
// LabelOptions have the data required to perform the label operation
...
@@ -49,8 +49,8 @@ type LabelOptions struct {
...
@@ -49,8 +49,8 @@ type LabelOptions struct {
resource
.
FilenameOptions
resource
.
FilenameOptions
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
// Common user flags
// Common user flags
overwrite
bool
overwrite
bool
...
@@ -115,7 +115,7 @@ func NewLabelOptions(ioStreams genericclioptions.IOStreams) *LabelOptions {
...
@@ -115,7 +115,7 @@ func NewLabelOptions(ioStreams genericclioptions.IOStreams) *LabelOptions {
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
PrintFlags
:
printer
s
.
NewPrintFlags
(
"labeled"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"labeled"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
...
@@ -168,17 +168,13 @@ func (o *LabelOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
...
@@ -168,17 +168,13 @@ func (o *LabelOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
o
.
outputFormat
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
outputFormat
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
dryrun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
o
.
dryrun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
if
o
.
dryrun
{
if
o
.
dryrun
{
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
}
}
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
resources
,
labelArgs
,
err
:=
cmdutil
.
GetResourcesAndPairs
(
args
,
"label"
)
resources
,
labelArgs
,
err
:=
cmdutil
.
GetResourcesAndPairs
(
args
,
"label"
)
...
...
pkg/kubectl/cmd/patch.go
View file @
d1603c95
...
@@ -36,10 +36,10 @@ import (
...
@@ -36,10 +36,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
var
patchTypes
=
map
[
string
]
types
.
PatchType
{
"json"
:
types
.
JSONPatchType
,
"merge"
:
types
.
MergePatchType
,
"strategic"
:
types
.
StrategicMergePatchType
}
var
patchTypes
=
map
[
string
]
types
.
PatchType
{
"json"
:
types
.
JSONPatchType
,
"merge"
:
types
.
MergePatchType
,
"strategic"
:
types
.
StrategicMergePatchType
}
...
@@ -50,8 +50,8 @@ type PatchOptions struct {
...
@@ -50,8 +50,8 @@ type PatchOptions struct {
resource
.
FilenameOptions
resource
.
FilenameOptions
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
Recorder
genericclioptions
.
Recorder
Recorder
genericclioptions
.
Recorder
Local
bool
Local
bool
...
@@ -98,7 +98,7 @@ func NewPatchOptions(ioStreams genericclioptions.IOStreams) *PatchOptions {
...
@@ -98,7 +98,7 @@ func NewPatchOptions(ioStreams genericclioptions.IOStreams) *PatchOptions {
return
&
PatchOptions
{
return
&
PatchOptions
{
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
PrintFlags
:
printer
s
.
NewPrintFlags
(
"patched"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"patched"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
ioStreams
,
IOStreams
:
ioStreams
,
}
}
}
}
...
@@ -143,17 +143,13 @@ func (o *PatchOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
...
@@ -143,17 +143,13 @@ func (o *PatchOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
o
.
outputFormat
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
outputFormat
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
dryRun
=
cmdutil
.
GetFlagBool
(
cmd
,
"dry-run"
)
o
.
dryRun
=
cmdutil
.
GetFlagBool
(
cmd
,
"dry-run"
)
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
if
o
.
dryRun
{
if
o
.
dryRun
{
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
}
}
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
o
.
namespace
,
o
.
enforceNamespace
,
err
=
f
.
DefaultNamespace
()
o
.
namespace
,
o
.
enforceNamespace
,
err
=
f
.
DefaultNamespace
()
...
...
pkg/kubectl/cmd/replace.go
View file @
d1603c95
...
@@ -36,7 +36,6 @@ import (
...
@@ -36,7 +36,6 @@ import (
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -65,7 +64,7 @@ var (
...
@@ -65,7 +64,7 @@ var (
)
)
type
ReplaceOptions
struct
{
type
ReplaceOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
DeleteFlags
*
DeleteFlags
DeleteFlags
*
DeleteFlags
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
...
@@ -94,9 +93,9 @@ func NewReplaceOptions(streams genericclioptions.IOStreams) *ReplaceOptions {
...
@@ -94,9 +93,9 @@ func NewReplaceOptions(streams genericclioptions.IOStreams) *ReplaceOptions {
return
&
ReplaceOptions
{
return
&
ReplaceOptions
{
// TODO(juanvallejo): figure out why we only support the "name" outputFormat in this command
// TODO(juanvallejo): figure out why we only support the "name" outputFormat in this command
// we only support "-o name" for this command, so only register the name printer
// we only support "-o name" for this command, so only register the name printer
PrintFlags
:
&
printer
s
.
PrintFlags
{
PrintFlags
:
&
genericclioption
s
.
PrintFlags
{
OutputFormat
:
&
outputFormat
,
OutputFormat
:
&
outputFormat
,
NamePrintFlags
:
printer
s
.
NewNamePrintFlags
(
"replaced"
),
NamePrintFlags
:
genericclioption
s
.
NewNamePrintFlags
(
"replaced"
),
},
},
DeleteFlags
:
NewDeleteFlags
(
"to use to replace the resource."
),
DeleteFlags
:
NewDeleteFlags
(
"to use to replace the resource."
),
...
...
pkg/kubectl/cmd/rollingupdate.go
View file @
d1603c95
...
@@ -37,12 +37,12 @@ import (
...
@@ -37,12 +37,12 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util"
"k8s.io/kubernetes/pkg/kubectl/util"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -107,15 +107,15 @@ type RollingUpdateOptions struct {
...
@@ -107,15 +107,15 @@ type RollingUpdateOptions struct {
FindNewName
func
(
*
api
.
ReplicationController
)
string
FindNewName
func
(
*
api
.
ReplicationController
)
string
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
genericclioptions
.
IOStreams
genericclioptions
.
IOStreams
}
}
func
NewRollingUpdateOptions
(
streams
genericclioptions
.
IOStreams
)
*
RollingUpdateOptions
{
func
NewRollingUpdateOptions
(
streams
genericclioptions
.
IOStreams
)
*
RollingUpdateOptions
{
return
&
RollingUpdateOptions
{
return
&
RollingUpdateOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"rolling updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"rolling updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
FilenameOptions
:
&
resource
.
FilenameOptions
{},
FilenameOptions
:
&
resource
.
FilenameOptions
{},
DeploymentKey
:
"deployment"
,
DeploymentKey
:
"deployment"
,
Timeout
:
timeout
,
Timeout
:
timeout
,
...
@@ -226,18 +226,13 @@ func (o *RollingUpdateOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a
...
@@ -226,18 +226,13 @@ func (o *RollingUpdateOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a
o
.
Builder
=
f
.
NewBuilder
()
o
.
Builder
=
f
.
NewBuilder
()
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
if
o
.
DryRun
{
if
o
.
DryRun
{
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
}
}
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
return
nil
return
nil
}
}
...
...
pkg/kubectl/cmd/rollout/BUILD
View file @
d1603c95
...
@@ -25,11 +25,11 @@ go_library(
...
@@ -25,11 +25,11 @@ go_library(
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/polymorphichelpers:go_default_library",
"//pkg/kubectl/polymorphichelpers:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/util/interrupt:go_default_library",
"//pkg/util/interrupt:go_default_library",
"//vendor/github.com/renstrom/dedent:go_default_library",
"//vendor/github.com/renstrom/dedent:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
...
...
pkg/kubectl/cmd/rollout/rollout_pause.go
View file @
d1603c95
...
@@ -28,18 +28,18 @@ import (
...
@@ -28,18 +28,18 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// PauseConfig is the start of the data required to perform the operation. As new fields are added, add them here instead of
// PauseConfig is the start of the data required to perform the operation. As new fields are added, add them here instead of
// referencing the cmd.Flags()
// referencing the cmd.Flags()
type
PauseConfig
struct
{
type
PauseConfig
struct
{
resource
.
FilenameOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
Pauser
func
(
info
*
resource
.
Info
)
([]
byte
,
error
)
Pauser
func
(
info
*
resource
.
Info
)
([]
byte
,
error
)
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
...
@@ -64,7 +64,7 @@ var (
...
@@ -64,7 +64,7 @@ var (
func
NewCmdRolloutPause
(
f
cmdutil
.
Factory
,
streams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdRolloutPause
(
f
cmdutil
.
Factory
,
streams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
o
:=
&
PauseConfig
{
o
:=
&
PauseConfig
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"paused"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"paused"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
streams
,
IOStreams
:
streams
,
}
}
...
@@ -122,14 +122,9 @@ func (o *PauseConfig) CompletePause(f cmdutil.Factory, cmd *cobra.Command, args
...
@@ -122,14 +122,9 @@ func (o *PauseConfig) CompletePause(f cmdutil.Factory, cmd *cobra.Command, args
return
err
return
err
}
}
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
o
.
Infos
,
err
=
r
.
Infos
()
o
.
Infos
,
err
=
r
.
Infos
()
...
...
pkg/kubectl/cmd/rollout/rollout_resume.go
View file @
d1603c95
...
@@ -28,18 +28,18 @@ import (
...
@@ -28,18 +28,18 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// ResumeConfig is the start of the data required to perform the operation. As new fields are added, add them here instead of
// ResumeConfig is the start of the data required to perform the operation. As new fields are added, add them here instead of
// referencing the cmd.Flags()
// referencing the cmd.Flags()
type
ResumeConfig
struct
{
type
ResumeConfig
struct
{
resource
.
FilenameOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
Resumer
func
(
object
*
resource
.
Info
)
([]
byte
,
error
)
Resumer
func
(
object
*
resource
.
Info
)
([]
byte
,
error
)
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
...
@@ -62,7 +62,7 @@ var (
...
@@ -62,7 +62,7 @@ var (
func
NewCmdRolloutResume
(
f
cmdutil
.
Factory
,
streams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdRolloutResume
(
f
cmdutil
.
Factory
,
streams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
o
:=
&
ResumeConfig
{
o
:=
&
ResumeConfig
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"resumed"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"resumed"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
streams
,
IOStreams
:
streams
,
}
}
...
@@ -106,14 +106,9 @@ func (o *ResumeConfig) CompleteResume(f cmdutil.Factory, cmd *cobra.Command, arg
...
@@ -106,14 +106,9 @@ func (o *ResumeConfig) CompleteResume(f cmdutil.Factory, cmd *cobra.Command, arg
return
err
return
err
}
}
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
r
:=
f
.
NewBuilder
()
.
r
:=
f
.
NewBuilder
()
.
...
...
pkg/kubectl/cmd/rollout/rollout_undo.go
View file @
d1603c95
...
@@ -26,10 +26,11 @@ import (
...
@@ -26,10 +26,11 @@ import (
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// UndoOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
// UndoOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
...
@@ -37,8 +38,8 @@ import (
...
@@ -37,8 +38,8 @@ import (
type
UndoOptions
struct
{
type
UndoOptions
struct
{
resource
.
FilenameOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
Rollbackers
[]
kubectl
.
Rollbacker
Rollbackers
[]
kubectl
.
Rollbacker
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
...
@@ -65,7 +66,7 @@ var (
...
@@ -65,7 +66,7 @@ var (
func
NewCmdRolloutUndo
(
f
cmdutil
.
Factory
,
out
io
.
Writer
)
*
cobra
.
Command
{
func
NewCmdRolloutUndo
(
f
cmdutil
.
Factory
,
out
io
.
Writer
)
*
cobra
.
Command
{
o
:=
&
UndoOptions
{
o
:=
&
UndoOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
scheme
.
Scheme
),
ToRevision
:
int64
(
0
),
ToRevision
:
int64
(
0
),
}
}
...
@@ -112,17 +113,12 @@ func (o *UndoOptions) CompleteUndo(f cmdutil.Factory, cmd *cobra.Command, out io
...
@@ -112,17 +113,12 @@ func (o *UndoOptions) CompleteUndo(f cmdutil.Factory, cmd *cobra.Command, out io
return
err
return
err
}
}
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
if
o
.
DryRun
{
if
o
.
DryRun
{
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
o
.
PrintFlags
.
Complete
(
"%s (dry run)"
)
}
}
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
r
:=
f
.
NewBuilder
()
.
r
:=
f
.
NewBuilder
()
.
...
...
pkg/kubectl/cmd/run.go
View file @
d1603c95
...
@@ -20,12 +20,11 @@ import (
...
@@ -20,12 +20,11 @@ import (
"fmt"
"fmt"
"io"
"io"
"k8s.io/client-go/dynamic"
"k8s.io/kubernetes/pkg/printers"
"github.com/docker/distribution/reference"
"github.com/docker/distribution/reference"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/client-go/dynamic"
"github.com/golang/glog"
"github.com/golang/glog"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
...
@@ -98,7 +97,7 @@ type RunObject struct {
...
@@ -98,7 +97,7 @@ type RunObject struct {
}
}
type
RunOptions
struct
{
type
RunOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
DeleteFlags
*
DeleteFlags
DeleteFlags
*
DeleteFlags
DeleteOptions
*
DeleteOptions
DeleteOptions
*
DeleteOptions
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
...
@@ -127,7 +126,7 @@ type RunOptions struct {
...
@@ -127,7 +126,7 @@ type RunOptions struct {
func
NewRunOptions
(
streams
genericclioptions
.
IOStreams
)
*
RunOptions
{
func
NewRunOptions
(
streams
genericclioptions
.
IOStreams
)
*
RunOptions
{
return
&
RunOptions
{
return
&
RunOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
DeleteFlags
:
NewDeleteFlags
(
"to use to replace the resource."
),
DeleteFlags
:
NewDeleteFlags
(
"to use to replace the resource."
),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
...
...
pkg/kubectl/cmd/run_test.go
View file @
d1603c95
...
@@ -42,7 +42,6 @@ import (
...
@@ -42,7 +42,6 @@ import (
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// This init should be removed after switching this command and its tests to user external types.
// This init should be removed after switching this command and its tests to user external types.
...
@@ -198,7 +197,7 @@ func TestRunArgsFollowDashRules(t *testing.T) {
...
@@ -198,7 +197,7 @@ func TestRunArgsFollowDashRules(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"image"
,
"nginx"
)
cmd
.
Flags
()
.
Set
(
"image"
,
"nginx"
)
cmd
.
Flags
()
.
Set
(
"generator"
,
"run/v1"
)
cmd
.
Flags
()
.
Set
(
"generator"
,
"run/v1"
)
printFlags
:=
printer
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printFlags
:=
genericclioption
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printer
,
err
:=
printFlags
.
ToPrinter
()
printer
,
err
:=
printFlags
.
ToPrinter
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
...
@@ -366,7 +365,7 @@ func TestGenerateService(t *testing.T) {
...
@@ -366,7 +365,7 @@ func TestGenerateService(t *testing.T) {
}),
}),
}
}
printFlags
:=
printer
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printFlags
:=
genericclioption
s
.
NewPrintFlags
(
"created"
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printer
,
err
:=
printFlags
.
ToPrinter
()
printer
,
err
:=
printFlags
.
ToPrinter
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
...
...
pkg/kubectl/cmd/scale.go
View file @
d1603c95
...
@@ -33,9 +33,9 @@ import (
...
@@ -33,9 +33,9 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -68,7 +68,7 @@ var (
...
@@ -68,7 +68,7 @@ var (
type
ScaleOptions
struct
{
type
ScaleOptions
struct
{
FilenameOptions
resource
.
FilenameOptions
FilenameOptions
resource
.
FilenameOptions
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
PrintObj
printers
.
ResourcePrinterFunc
PrintObj
printers
.
ResourcePrinterFunc
Selector
string
Selector
string
...
@@ -98,9 +98,9 @@ func NewScaleOptions(ioStreams genericclioptions.IOStreams) *ScaleOptions {
...
@@ -98,9 +98,9 @@ func NewScaleOptions(ioStreams genericclioptions.IOStreams) *ScaleOptions {
return
&
ScaleOptions
{
return
&
ScaleOptions
{
// TODO(juanvallejo): figure out why we only support the "name" outputFormat in this command
// TODO(juanvallejo): figure out why we only support the "name" outputFormat in this command
// we only support "-o name" for this command, so only register the name printer
// we only support "-o name" for this command, so only register the name printer
PrintFlags
:
&
printer
s
.
PrintFlags
{
PrintFlags
:
&
genericclioption
s
.
PrintFlags
{
OutputFormat
:
&
outputFormat
,
OutputFormat
:
&
outputFormat
,
NamePrintFlags
:
printer
s
.
NewNamePrintFlags
(
"scaled"
),
NamePrintFlags
:
genericclioption
s
.
NewNamePrintFlags
(
"scaled"
),
},
},
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
CurrentReplicas
:
-
1
,
CurrentReplicas
:
-
1
,
...
...
pkg/kubectl/cmd/set/BUILD
View file @
d1603c95
...
@@ -25,10 +25,10 @@ go_library(
...
@@ -25,10 +25,10 @@ go_library(
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util/env:go_default_library",
"//pkg/kubectl/cmd/util/env:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/printers:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
...
@@ -69,7 +69,6 @@ go_test(
...
@@ -69,7 +69,6 @@ go_test(
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/printers:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/github.com/stretchr/testify/assert:go_default_library",
"//vendor/k8s.io/api/apps/v1:go_default_library",
"//vendor/k8s.io/api/apps/v1:go_default_library",
...
...
pkg/kubectl/cmd/set/set_env.go
View file @
d1603c95
...
@@ -34,9 +34,9 @@ import (
...
@@ -34,9 +34,9 @@ import (
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
envutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util/env"
envutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util/env"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -93,7 +93,7 @@ var (
...
@@ -93,7 +93,7 @@ var (
)
)
type
EnvOptions
struct
{
type
EnvOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
resource
.
FilenameOptions
resource
.
FilenameOptions
EnvParams
[]
string
EnvParams
[]
string
...
@@ -126,7 +126,7 @@ type EnvOptions struct {
...
@@ -126,7 +126,7 @@ type EnvOptions struct {
// pod templates are selected by default and allowing environment to be overwritten
// pod templates are selected by default and allowing environment to be overwritten
func
NewEnvOptions
(
streams
genericclioptions
.
IOStreams
)
*
EnvOptions
{
func
NewEnvOptions
(
streams
genericclioptions
.
IOStreams
)
*
EnvOptions
{
return
&
EnvOptions
{
return
&
EnvOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"env updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"env updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
ContainerSelector
:
"*"
,
ContainerSelector
:
"*"
,
Overwrite
:
true
,
Overwrite
:
true
,
...
...
pkg/kubectl/cmd/set/set_env_test.go
View file @
d1603c95
...
@@ -42,7 +42,6 @@ import (
...
@@ -42,7 +42,6 @@ import (
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/printers"
)
)
func
TestSetEnvLocal
(
t
*
testing
.
T
)
{
func
TestSetEnvLocal
(
t
*
testing
.
T
)
{
...
@@ -63,7 +62,7 @@ func TestSetEnvLocal(t *testing.T) {
...
@@ -63,7 +62,7 @@ func TestSetEnvLocal(t *testing.T) {
streams
,
_
,
buf
,
bufErr
:=
genericclioptions
.
NewTestIOStreams
()
streams
,
_
,
buf
,
bufErr
:=
genericclioptions
.
NewTestIOStreams
()
opts
:=
NewEnvOptions
(
streams
)
opts
:=
NewEnvOptions
(
streams
)
opts
.
PrintFlags
=
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
)
opts
.
PrintFlags
=
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
)
opts
.
FilenameOptions
=
resource
.
FilenameOptions
{
opts
.
FilenameOptions
=
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/e2e/testing-manifests/statefulset/cassandra/controller.yaml"
},
Filenames
:
[]
string
{
"../../../../test/e2e/testing-manifests/statefulset/cassandra/controller.yaml"
},
}
}
...
@@ -101,7 +100,7 @@ func TestSetMultiResourcesEnvLocal(t *testing.T) {
...
@@ -101,7 +100,7 @@ func TestSetMultiResourcesEnvLocal(t *testing.T) {
outputFormat
:=
"name"
outputFormat
:=
"name"
streams
,
_
,
buf
,
bufErr
:=
genericclioptions
.
NewTestIOStreams
()
streams
,
_
,
buf
,
bufErr
:=
genericclioptions
.
NewTestIOStreams
()
opts
:=
NewEnvOptions
(
streams
)
opts
:=
NewEnvOptions
(
streams
)
opts
.
PrintFlags
=
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
)
opts
.
PrintFlags
=
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
)
opts
.
FilenameOptions
=
resource
.
FilenameOptions
{
opts
.
FilenameOptions
=
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
},
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
},
}
}
...
@@ -483,7 +482,7 @@ func TestSetEnvRemote(t *testing.T) {
...
@@ -483,7 +482,7 @@ func TestSetEnvRemote(t *testing.T) {
outputFormat
:=
"yaml"
outputFormat
:=
"yaml"
streams
:=
genericclioptions
.
NewTestIOStreamsDiscard
()
streams
:=
genericclioptions
.
NewTestIOStreamsDiscard
()
opts
:=
NewEnvOptions
(
streams
)
opts
:=
NewEnvOptions
(
streams
)
opts
.
PrintFlags
=
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
)
opts
.
PrintFlags
=
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
)
opts
.
Local
=
false
opts
.
Local
=
false
opts
.
IOStreams
=
streams
opts
.
IOStreams
=
streams
err
:=
opts
.
Complete
(
tf
,
NewCmdEnv
(
tf
,
streams
),
input
.
args
)
err
:=
opts
.
Complete
(
tf
,
NewCmdEnv
(
tf
,
streams
),
input
.
args
)
...
...
pkg/kubectl/cmd/set/set_image.go
View file @
d1603c95
...
@@ -29,10 +29,10 @@ import (
...
@@ -29,10 +29,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
// ImageOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
// ImageOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
...
@@ -40,7 +40,7 @@ import (
...
@@ -40,7 +40,7 @@ import (
type
SetImageOptions
struct
{
type
SetImageOptions
struct
{
resource
.
FilenameOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
...
@@ -87,7 +87,7 @@ var (
...
@@ -87,7 +87,7 @@ var (
func
NewImageOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetImageOptions
{
func
NewImageOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetImageOptions
{
return
&
SetImageOptions
{
return
&
SetImageOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"image updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"image updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
...
...
pkg/kubectl/cmd/set/set_image_test.go
View file @
d1603c95
...
@@ -43,7 +43,6 @@ import (
...
@@ -43,7 +43,6 @@ import (
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/printers"
)
)
func
TestImageLocal
(
t
*
testing
.
T
)
{
func
TestImageLocal
(
t
*
testing
.
T
)
{
...
@@ -70,7 +69,7 @@ func TestImageLocal(t *testing.T) {
...
@@ -70,7 +69,7 @@ func TestImageLocal(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
opts
:=
SetImageOptions
{
opts
:=
SetImageOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
FilenameOptions
:
resource
.
FilenameOptions
{
FilenameOptions
:
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/e2e/testing-manifests/statefulset/cassandra/controller.yaml"
}},
Filenames
:
[]
string
{
"../../../../test/e2e/testing-manifests/statefulset/cassandra/controller.yaml"
}},
Local
:
true
,
Local
:
true
,
...
@@ -92,7 +91,7 @@ func TestImageLocal(t *testing.T) {
...
@@ -92,7 +91,7 @@ func TestImageLocal(t *testing.T) {
}
}
func
TestSetImageValidation
(
t
*
testing
.
T
)
{
func
TestSetImageValidation
(
t
*
testing
.
T
)
{
printFlags
:=
printer
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
scheme
.
Scheme
)
printFlags
:=
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
scheme
.
Scheme
)
testCases
:=
[]
struct
{
testCases
:=
[]
struct
{
name
string
name
string
...
@@ -183,7 +182,7 @@ func TestSetMultiResourcesImageLocal(t *testing.T) {
...
@@ -183,7 +182,7 @@ func TestSetMultiResourcesImageLocal(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
opts
:=
SetImageOptions
{
opts
:=
SetImageOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
FilenameOptions
:
resource
.
FilenameOptions
{
FilenameOptions
:
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
}},
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
}},
Local
:
true
,
Local
:
true
,
...
@@ -570,7 +569,7 @@ func TestSetImageRemote(t *testing.T) {
...
@@ -570,7 +569,7 @@ func TestSetImageRemote(t *testing.T) {
cmd
:=
NewCmdImage
(
tf
,
streams
)
cmd
:=
NewCmdImage
(
tf
,
streams
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
opts
:=
SetImageOptions
{
opts
:=
SetImageOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
Local
:
false
,
Local
:
false
,
IOStreams
:
streams
,
IOStreams
:
streams
,
...
...
pkg/kubectl/cmd/set/set_resources.go
View file @
d1603c95
...
@@ -20,8 +20,6 @@ import (
...
@@ -20,8 +20,6 @@ import (
"fmt"
"fmt"
"strings"
"strings"
"k8s.io/kubernetes/pkg/printers"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
...
@@ -33,6 +31,7 @@ import (
...
@@ -33,6 +31,7 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
...
@@ -65,7 +64,7 @@ var (
...
@@ -65,7 +64,7 @@ var (
type
SetResourcesOptions
struct
{
type
SetResourcesOptions
struct
{
resource
.
FilenameOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
...
@@ -94,7 +93,7 @@ type SetResourcesOptions struct {
...
@@ -94,7 +93,7 @@ type SetResourcesOptions struct {
// pod templates are selected by default.
// pod templates are selected by default.
func
NewResourcesOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetResourcesOptions
{
func
NewResourcesOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetResourcesOptions
{
return
&
SetResourcesOptions
{
return
&
SetResourcesOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"resource requirements updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"resource requirements updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
...
...
pkg/kubectl/cmd/set/set_resources_test.go
View file @
d1603c95
...
@@ -24,8 +24,6 @@ import (
...
@@ -24,8 +24,6 @@ import (
"strings"
"strings"
"testing"
"testing"
"k8s.io/kubernetes/pkg/printers"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/assert"
appsv1
"k8s.io/api/apps/v1"
appsv1
"k8s.io/api/apps/v1"
appsv1beta1
"k8s.io/api/apps/v1beta1"
appsv1beta1
"k8s.io/api/apps/v1beta1"
...
@@ -70,7 +68,7 @@ func TestResourcesLocal(t *testing.T) {
...
@@ -70,7 +68,7 @@ func TestResourcesLocal(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
opts
:=
SetResourcesOptions
{
opts
:=
SetResourcesOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
FilenameOptions
:
resource
.
FilenameOptions
{
FilenameOptions
:
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/e2e/testing-manifests/statefulset/cassandra/controller.yaml"
}},
Filenames
:
[]
string
{
"../../../../test/e2e/testing-manifests/statefulset/cassandra/controller.yaml"
}},
Local
:
true
,
Local
:
true
,
...
@@ -119,7 +117,7 @@ func TestSetMultiResourcesLimitsLocal(t *testing.T) {
...
@@ -119,7 +117,7 @@ func TestSetMultiResourcesLimitsLocal(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
opts
:=
SetResourcesOptions
{
opts
:=
SetResourcesOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
FilenameOptions
:
resource
.
FilenameOptions
{
FilenameOptions
:
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
}},
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
}},
Local
:
true
,
Local
:
true
,
...
@@ -494,7 +492,7 @@ func TestSetResourcesRemote(t *testing.T) {
...
@@ -494,7 +492,7 @@ func TestSetResourcesRemote(t *testing.T) {
cmd
:=
NewCmdResources
(
tf
,
streams
)
cmd
:=
NewCmdResources
(
tf
,
streams
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
opts
:=
SetResourcesOptions
{
opts
:=
SetResourcesOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
Limits
:
"cpu=200m,memory=512Mi"
,
Limits
:
"cpu=200m,memory=512Mi"
,
ContainerSelector
:
"*"
,
ContainerSelector
:
"*"
,
...
...
pkg/kubectl/cmd/set/set_selector.go
View file @
d1603c95
...
@@ -19,8 +19,6 @@ package set
...
@@ -19,8 +19,6 @@ package set
import
(
import
(
"fmt"
"fmt"
"k8s.io/kubernetes/pkg/printers"
"github.com/golang/glog"
"github.com/golang/glog"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
...
@@ -32,6 +30,7 @@ import (
...
@@ -32,6 +30,7 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
...
@@ -42,7 +41,7 @@ import (
...
@@ -42,7 +41,7 @@ import (
type
SetSelectorOptions
struct
{
type
SetSelectorOptions
struct
{
fileOptions
resource
.
FilenameOptions
fileOptions
resource
.
FilenameOptions
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
local
bool
local
bool
...
@@ -79,7 +78,7 @@ var (
...
@@ -79,7 +78,7 @@ var (
func
NewSelectorOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetSelectorOptions
{
func
NewSelectorOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetSelectorOptions
{
return
&
SetSelectorOptions
{
return
&
SetSelectorOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"selector updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"selector updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
...
...
pkg/kubectl/cmd/set/set_serviceaccount.go
View file @
d1603c95
...
@@ -20,8 +20,6 @@ import (
...
@@ -20,8 +20,6 @@ import (
"errors"
"errors"
"fmt"
"fmt"
"k8s.io/kubernetes/pkg/printers"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"github.com/golang/glog"
"github.com/golang/glog"
...
@@ -32,6 +30,7 @@ import (
...
@@ -32,6 +30,7 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
...
@@ -58,7 +57,7 @@ var (
...
@@ -58,7 +57,7 @@ var (
// serviceAccountConfig encapsulates the data required to perform the operation.
// serviceAccountConfig encapsulates the data required to perform the operation.
type
SetServiceAccountOptions
struct
{
type
SetServiceAccountOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
fileNameOptions
resource
.
FilenameOptions
fileNameOptions
resource
.
FilenameOptions
...
@@ -79,7 +78,7 @@ type SetServiceAccountOptions struct {
...
@@ -79,7 +78,7 @@ type SetServiceAccountOptions struct {
func
NewSetServiceAccountOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetServiceAccountOptions
{
func
NewSetServiceAccountOptions
(
streams
genericclioptions
.
IOStreams
)
*
SetServiceAccountOptions
{
return
&
SetServiceAccountOptions
{
return
&
SetServiceAccountOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"serviceaccount updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"serviceaccount updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
RecordFlags
:
genericclioptions
.
NewRecordFlags
(),
Recorder
:
genericclioptions
.
NoopRecorder
{},
Recorder
:
genericclioptions
.
NoopRecorder
{},
...
...
pkg/kubectl/cmd/set/set_serviceaccount_test.go
View file @
d1603c95
...
@@ -25,8 +25,6 @@ import (
...
@@ -25,8 +25,6 @@ import (
"path"
"path"
"testing"
"testing"
"k8s.io/kubernetes/pkg/printers"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/assert"
appsv1
"k8s.io/api/apps/v1"
appsv1
"k8s.io/api/apps/v1"
appsv1beta1
"k8s.io/api/apps/v1beta1"
appsv1beta1
"k8s.io/api/apps/v1beta1"
...
@@ -90,7 +88,7 @@ func TestSetServiceAccountLocal(t *testing.T) {
...
@@ -90,7 +88,7 @@ func TestSetServiceAccountLocal(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
testapi
.
Default
=
testapi
.
Groups
[
input
.
apiGroup
]
testapi
.
Default
=
testapi
.
Groups
[
input
.
apiGroup
]
saConfig
:=
SetServiceAccountOptions
{
saConfig
:=
SetServiceAccountOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
fileNameOptions
:
resource
.
FilenameOptions
{
fileNameOptions
:
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
input
.
yaml
}},
Filenames
:
[]
string
{
input
.
yaml
}},
local
:
true
,
local
:
true
,
...
@@ -128,7 +126,7 @@ func TestSetServiceAccountMultiLocal(t *testing.T) {
...
@@ -128,7 +126,7 @@ func TestSetServiceAccountMultiLocal(t *testing.T) {
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
cmd
.
Flags
()
.
Set
(
"local"
,
"true"
)
opts
:=
SetServiceAccountOptions
{
opts
:=
SetServiceAccountOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
fileNameOptions
:
resource
.
FilenameOptions
{
fileNameOptions
:
resource
.
FilenameOptions
{
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
}},
Filenames
:
[]
string
{
"../../../../test/fixtures/pkg/kubectl/cmd/set/multi-resource-yaml.yaml"
}},
local
:
true
,
local
:
true
,
...
@@ -365,7 +363,7 @@ func TestSetServiceAccountRemote(t *testing.T) {
...
@@ -365,7 +363,7 @@ func TestSetServiceAccountRemote(t *testing.T) {
cmd
:=
NewCmdServiceAccount
(
tf
,
streams
)
cmd
:=
NewCmdServiceAccount
(
tf
,
streams
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
cmd
.
Flags
()
.
Set
(
"output"
,
outputFormat
)
saConfig
:=
SetServiceAccountOptions
{
saConfig
:=
SetServiceAccountOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
local
:
false
,
local
:
false
,
IOStreams
:
streams
,
IOStreams
:
streams
,
...
@@ -407,7 +405,7 @@ func TestServiceAccountValidation(t *testing.T) {
...
@@ -407,7 +405,7 @@ func TestServiceAccountValidation(t *testing.T) {
cmd
:=
NewCmdServiceAccount
(
tf
,
streams
)
cmd
:=
NewCmdServiceAccount
(
tf
,
streams
)
saConfig
:=
&
SetServiceAccountOptions
{
saConfig
:=
&
SetServiceAccountOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithDefaultOutput
(
outputFormat
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
streams
,
IOStreams
:
streams
,
}
}
err
:=
saConfig
.
Complete
(
tf
,
cmd
,
input
.
args
)
err
:=
saConfig
.
Complete
(
tf
,
cmd
,
input
.
args
)
...
...
pkg/kubectl/cmd/set/set_subject.go
View file @
d1603c95
...
@@ -31,10 +31,10 @@ import (
...
@@ -31,10 +31,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
)
)
var
(
var
(
...
@@ -57,7 +57,7 @@ type updateSubjects func(existings []rbacv1.Subject, targets []rbacv1.Subject) (
...
@@ -57,7 +57,7 @@ type updateSubjects func(existings []rbacv1.Subject, targets []rbacv1.Subject) (
// SubjectOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
// SubjectOptions is the start of the data required to perform the operation. As new fields are added, add them here instead of
// referencing the cmd.Flags
// referencing the cmd.Flags
type
SubjectOptions
struct
{
type
SubjectOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
resource
.
FilenameOptions
resource
.
FilenameOptions
...
@@ -82,7 +82,7 @@ type SubjectOptions struct {
...
@@ -82,7 +82,7 @@ type SubjectOptions struct {
func
NewSubjectOptions
(
streams
genericclioptions
.
IOStreams
)
*
SubjectOptions
{
func
NewSubjectOptions
(
streams
genericclioptions
.
IOStreams
)
*
SubjectOptions
{
return
&
SubjectOptions
{
return
&
SubjectOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"subjects updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"subjects updated"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
streams
,
IOStreams
:
streams
,
}
}
...
...
pkg/kubectl/cmd/taint.go
View file @
d1603c95
...
@@ -34,17 +34,17 @@ import (
...
@@ -34,17 +34,17 @@ import (
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/printers"
taintutils
"k8s.io/kubernetes/pkg/util/taints"
taintutils
"k8s.io/kubernetes/pkg/util/taints"
)
)
// TaintOptions have the data required to perform the taint operation
// TaintOptions have the data required to perform the taint operation
type
TaintOptions
struct
{
type
TaintOptions
struct
{
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
resources
[]
string
resources
[]
string
taintsToAdd
[]
v1
.
Taint
taintsToAdd
[]
v1
.
Taint
...
@@ -87,7 +87,7 @@ var (
...
@@ -87,7 +87,7 @@ var (
func
NewCmdTaint
(
f
cmdutil
.
Factory
,
streams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
func
NewCmdTaint
(
f
cmdutil
.
Factory
,
streams
genericclioptions
.
IOStreams
)
*
cobra
.
Command
{
options
:=
&
TaintOptions
{
options
:=
&
TaintOptions
{
PrintFlags
:
printer
s
.
NewPrintFlags
(
"tainted"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"tainted"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
IOStreams
:
streams
,
IOStreams
:
streams
,
}
}
...
@@ -148,14 +148,9 @@ func (o *TaintOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
...
@@ -148,14 +148,9 @@ func (o *TaintOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []st
}
}
}
}
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
if
len
(
o
.
resources
)
<
1
{
if
len
(
o
.
resources
)
<
1
{
...
...
pkg/kubectl/cmd/util/editor/BUILD
View file @
d1603c95
...
@@ -19,11 +19,11 @@ go_library(
...
@@ -19,11 +19,11 @@ go_library(
"//pkg/kubectl:go_default_library",
"//pkg/kubectl:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/genericclioptions/resource:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/util/crlf:go_default_library",
"//pkg/kubectl/util/crlf:go_default_library",
"//pkg/kubectl/util/term:go_default_library",
"//pkg/kubectl/util/term:go_default_library",
"//pkg/printers:go_default_library",
"//vendor/github.com/evanphx/json-patch:go_default_library",
"//vendor/github.com/evanphx/json-patch:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
...
...
pkg/kubectl/cmd/util/editor/editoptions.go
View file @
d1603c95
...
@@ -46,10 +46,10 @@ import (
...
@@ -46,10 +46,10 @@ import (
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/util/crlf"
"k8s.io/kubernetes/pkg/kubectl/util/crlf"
"k8s.io/kubernetes/pkg/printers"
)
)
// EditOptions contains all the options for running edit cli command.
// EditOptions contains all the options for running edit cli command.
...
@@ -57,8 +57,8 @@ type EditOptions struct {
...
@@ -57,8 +57,8 @@ type EditOptions struct {
resource
.
FilenameOptions
resource
.
FilenameOptions
RecordFlags
*
genericclioptions
.
RecordFlags
RecordFlags
*
genericclioptions
.
RecordFlags
PrintFlags
*
printer
s
.
PrintFlags
PrintFlags
*
genericclioption
s
.
PrintFlags
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
ToPrinter
func
(
string
)
(
printers
.
ResourcePrinter
,
error
)
Output
string
Output
string
OutputPatch
bool
OutputPatch
bool
...
@@ -88,7 +88,7 @@ func NewEditOptions(editMode EditMode, ioStreams genericclioptions.IOStreams) *E
...
@@ -88,7 +88,7 @@ func NewEditOptions(editMode EditMode, ioStreams genericclioptions.IOStreams) *E
EditMode
:
editMode
,
EditMode
:
editMode
,
PrintFlags
:
printer
s
.
NewPrintFlags
(
"edited"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
PrintFlags
:
genericclioption
s
.
NewPrintFlags
(
"edited"
)
.
WithTypeSetter
(
scheme
.
Scheme
),
WindowsLineEndings
:
goruntime
.
GOOS
==
"windows"
,
WindowsLineEndings
:
goruntime
.
GOOS
==
"windows"
,
...
@@ -163,13 +163,9 @@ func (o *EditOptions) Complete(f cmdutil.Factory, args []string, cmd *cobra.Comm
...
@@ -163,13 +163,9 @@ func (o *EditOptions) Complete(f cmdutil.Factory, args []string, cmd *cobra.Comm
Do
()
Do
()
}
}
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
Func
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinter
,
error
)
{
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
o
.
PrintFlags
.
NamePrintFlags
.
Operation
=
operation
printer
,
err
:=
o
.
PrintFlags
.
ToPrinter
()
return
o
.
PrintFlags
.
ToPrinter
()
if
err
!=
nil
{
return
nil
,
err
}
return
printer
.
PrintObj
,
nil
}
}
o
.
CmdNamespace
=
cmdNamespace
o
.
CmdNamespace
=
cmdNamespace
...
...
pkg/kubectl/genericclioptions/BUILD
View file @
d1603c95
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_library"
, "go_test"
)
go_library(
go_library(
name = "go_default_library",
name = "go_default_library",
...
@@ -7,11 +7,15 @@ go_library(
...
@@ -7,11 +7,15 @@ go_library(
"config_flags_fake.go",
"config_flags_fake.go",
"doc.go",
"doc.go",
"io_options.go",
"io_options.go",
"json_yaml_flags.go",
"name_flags.go",
"print_flags.go",
"record_flags.go",
"record_flags.go",
],
],
importpath = "k8s.io/kubernetes/pkg/kubectl/genericclioptions",
importpath = "k8s.io/kubernetes/pkg/kubectl/genericclioptions",
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//vendor/github.com/evanphx/json-patch:go_default_library",
"//vendor/github.com/evanphx/json-patch:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library",
...
@@ -37,8 +41,22 @@ filegroup(
...
@@ -37,8 +41,22 @@ filegroup(
name = "all-srcs",
name = "all-srcs",
srcs = [
srcs = [
":package-srcs",
":package-srcs",
"//pkg/kubectl/genericclioptions/printers:all-srcs",
"//pkg/kubectl/genericclioptions/resource:all-srcs",
"//pkg/kubectl/genericclioptions/resource:all-srcs",
],
],
tags = ["automanaged"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
)
)
go_test(
name = "go_default_test",
srcs = [
"json_yaml_flags_test.go",
"name_flags_test.go",
],
embed = [":go_default_library"],
deps = [
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
],
)
pkg/
printer
s/json_yaml_flags.go
→
pkg/
kubectl/genericclioption
s/json_yaml_flags.go
View file @
d1603c95
...
@@ -14,12 +14,14 @@ See the License for the specific language governing permissions and
...
@@ -14,12 +14,14 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printer
s
package
genericclioption
s
import
(
import
(
"strings"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
)
)
// JSONYamlPrintFlags provides default flags necessary for json/yaml printing.
// JSONYamlPrintFlags provides default flags necessary for json/yaml printing.
...
@@ -32,15 +34,15 @@ type JSONYamlPrintFlags struct {
...
@@ -32,15 +34,15 @@ type JSONYamlPrintFlags struct {
// handling --output=(yaml|json) printing.
// handling --output=(yaml|json) printing.
// Returns false if the specified outputFormat does not match a supported format.
// Returns false if the specified outputFormat does not match a supported format.
// Supported Format types can be found in pkg/printers/printers.go
// Supported Format types can be found in pkg/printers/printers.go
func
(
f
*
JSONYamlPrintFlags
)
ToPrinter
(
outputFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
JSONYamlPrintFlags
)
ToPrinter
(
outputFormat
string
)
(
printers
.
ResourcePrinter
,
error
)
{
var
printer
ResourcePrinter
var
printer
printers
.
ResourcePrinter
outputFormat
=
strings
.
ToLower
(
outputFormat
)
outputFormat
=
strings
.
ToLower
(
outputFormat
)
switch
outputFormat
{
switch
outputFormat
{
case
"json"
:
case
"json"
:
printer
=
&
JSONPrinter
{}
printer
=
&
printers
.
JSONPrinter
{}
case
"yaml"
:
case
"yaml"
:
printer
=
&
YAMLPrinter
{}
printer
=
&
printers
.
YAMLPrinter
{}
default
:
default
:
return
nil
,
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
outputFormat
}
return
nil
,
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
outputFormat
}
}
}
...
...
pkg/
printer
s/json_yaml_flags_test.go
→
pkg/
kubectl/genericclioption
s/json_yaml_flags_test.go
View file @
d1603c95
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers_test
package
genericclioptions
import
(
import
(
"bytes"
"bytes"
...
@@ -23,7 +23,6 @@ import (
...
@@ -23,7 +23,6 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/printers"
)
)
func
TestPrinterSupportsExpectedJSONYamlFormats
(
t
*
testing
.
T
)
{
func
TestPrinterSupportsExpectedJSONYamlFormats
(
t
*
testing
.
T
)
{
...
@@ -62,16 +61,16 @@ func TestPrinterSupportsExpectedJSONYamlFormats(t *testing.T) {
...
@@ -62,16 +61,16 @@ func TestPrinterSupportsExpectedJSONYamlFormats(t *testing.T) {
for
_
,
tc
:=
range
testCases
{
for
_
,
tc
:=
range
testCases
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
printFlags
:=
printers
.
JSONYamlPrintFlags
{}
printFlags
:=
JSONYamlPrintFlags
{}
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
if
tc
.
expectNoMatch
{
if
tc
.
expectNoMatch
{
if
!
printers
.
IsNoCompatiblePrinterError
(
err
)
{
if
!
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
}
}
return
return
}
}
if
printers
.
IsNoCompatiblePrinterError
(
err
)
{
if
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
}
}
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/
printer
s/name_flags.go
→
pkg/
kubectl/genericclioption
s/name_flags.go
View file @
d1603c95
...
@@ -14,13 +14,15 @@ See the License for the specific language governing permissions and
...
@@ -14,13 +14,15 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printer
s
package
genericclioption
s
import
(
import
(
"fmt"
"fmt"
"strings"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
)
)
// NamePrintFlags provides default flags necessary for printing
// NamePrintFlags provides default flags necessary for printing
...
@@ -42,8 +44,8 @@ func (f *NamePrintFlags) Complete(successTemplate string) error {
...
@@ -42,8 +44,8 @@ func (f *NamePrintFlags) Complete(successTemplate string) error {
// handling --output=name printing.
// handling --output=name printing.
// Returns false if the specified outputFormat does not match a supported format.
// Returns false if the specified outputFormat does not match a supported format.
// Supported format types can be found in pkg/printers/printers.go
// Supported format types can be found in pkg/printers/printers.go
func
(
f
*
NamePrintFlags
)
ToPrinter
(
outputFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
NamePrintFlags
)
ToPrinter
(
outputFormat
string
)
(
printers
.
ResourcePrinter
,
error
)
{
namePrinter
:=
&
NamePrinter
{
namePrinter
:=
&
printers
.
NamePrinter
{
Operation
:
f
.
Operation
,
Operation
:
f
.
Operation
,
}
}
...
...
pkg/
printer
s/name_flags_test.go
→
pkg/
kubectl/genericclioption
s/name_flags_test.go
View file @
d1603c95
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers_test
package
genericclioptions
import
(
import
(
"bytes"
"bytes"
...
@@ -23,7 +23,6 @@ import (
...
@@ -23,7 +23,6 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/printers"
)
)
func
TestNamePrinterSupportsExpectedFormats
(
t
*
testing
.
T
)
{
func
TestNamePrinterSupportsExpectedFormats
(
t
*
testing
.
T
)
{
...
@@ -78,18 +77,18 @@ func TestNamePrinterSupportsExpectedFormats(t *testing.T) {
...
@@ -78,18 +77,18 @@ func TestNamePrinterSupportsExpectedFormats(t *testing.T) {
for
_
,
tc
:=
range
testCases
{
for
_
,
tc
:=
range
testCases
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
printFlags
:=
printers
.
NamePrintFlags
{
printFlags
:=
NamePrintFlags
{
Operation
:
tc
.
operation
,
Operation
:
tc
.
operation
,
}
}
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
if
tc
.
expectNoMatch
{
if
tc
.
expectNoMatch
{
if
!
printers
.
IsNoCompatiblePrinterError
(
err
)
{
if
!
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
}
}
return
return
}
}
if
printers
.
IsNoCompatiblePrinterError
(
err
)
{
if
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match name printer for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected to match name printer for output format %q"
,
tc
.
outputFormat
)
}
}
...
...
pkg/
printers/
flags.go
→
pkg/
kubectl/genericclioptions/print_
flags.go
View file @
d1603c95
...
@@ -14,28 +14,16 @@ See the License for the specific language governing permissions and
...
@@ -14,28 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printer
s
package
genericclioption
s
import
(
import
(
"fmt"
"fmt"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
)
)
var
(
internalObjectPrinterErr
=
"a versioned object must be passed to a printer"
// disallowedPackagePrefixes contains regular expression templates
// for object package paths that are not allowed by printers.
disallowedPackagePrefixes
=
[]
string
{
"k8s.io/kubernetes/pkg/apis/"
,
}
)
var
internalObjectPreventer
=
&
illegalPackageSourceChecker
{
disallowedPackagePrefixes
}
type
NoCompatiblePrinterError
struct
{
type
NoCompatiblePrinterError
struct
{
OutputFormat
*
string
OutputFormat
*
string
Options
interface
{}
Options
interface
{}
...
@@ -59,14 +47,6 @@ func IsNoCompatiblePrinterError(err error) bool {
...
@@ -59,14 +47,6 @@ func IsNoCompatiblePrinterError(err error) bool {
return
ok
return
ok
}
}
func
IsInternalObjectError
(
err
error
)
bool
{
if
err
==
nil
{
return
false
}
return
err
.
Error
()
==
internalObjectPrinterErr
}
// PrintFlags composes common printer flag structs
// PrintFlags composes common printer flag structs
// used across all commands, and provides a method
// used across all commands, and provides a method
// of retrieving a known printer based on flag values provided.
// of retrieving a known printer based on flag values provided.
...
@@ -74,7 +54,7 @@ type PrintFlags struct {
...
@@ -74,7 +54,7 @@ type PrintFlags struct {
JSONYamlPrintFlags
*
JSONYamlPrintFlags
JSONYamlPrintFlags
*
JSONYamlPrintFlags
NamePrintFlags
*
NamePrintFlags
NamePrintFlags
*
NamePrintFlags
TypeSetterPrinter
*
TypeSetterPrinter
TypeSetterPrinter
*
printers
.
TypeSetterPrinter
OutputFormat
*
string
OutputFormat
*
string
}
}
...
@@ -83,7 +63,7 @@ func (f *PrintFlags) Complete(successTemplate string) error {
...
@@ -83,7 +63,7 @@ func (f *PrintFlags) Complete(successTemplate string) error {
return
f
.
NamePrintFlags
.
Complete
(
successTemplate
)
return
f
.
NamePrintFlags
.
Complete
(
successTemplate
)
}
}
func
(
f
*
PrintFlags
)
ToPrinter
()
(
ResourcePrinter
,
error
)
{
func
(
f
*
PrintFlags
)
ToPrinter
()
(
printers
.
ResourcePrinter
,
error
)
{
outputFormat
:=
""
outputFormat
:=
""
if
f
.
OutputFormat
!=
nil
{
if
f
.
OutputFormat
!=
nil
{
outputFormat
=
*
f
.
OutputFormat
outputFormat
=
*
f
.
OutputFormat
...
@@ -121,7 +101,7 @@ func (f *PrintFlags) WithDefaultOutput(output string) *PrintFlags {
...
@@ -121,7 +101,7 @@ func (f *PrintFlags) WithDefaultOutput(output string) *PrintFlags {
// WithTypeSetter sets a wrapper than will surround the returned printer with a printer to type resources
// WithTypeSetter sets a wrapper than will surround the returned printer with a printer to type resources
func
(
f
*
PrintFlags
)
WithTypeSetter
(
scheme
*
runtime
.
Scheme
)
*
PrintFlags
{
func
(
f
*
PrintFlags
)
WithTypeSetter
(
scheme
*
runtime
.
Scheme
)
*
PrintFlags
{
f
.
TypeSetterPrinter
=
NewTypeSetter
(
scheme
)
f
.
TypeSetterPrinter
=
printers
.
NewTypeSetter
(
scheme
)
return
f
return
f
}
}
...
@@ -135,22 +115,3 @@ func NewPrintFlags(operation string) *PrintFlags {
...
@@ -135,22 +115,3 @@ func NewPrintFlags(operation string) *PrintFlags {
NamePrintFlags
:
NewNamePrintFlags
(
operation
),
NamePrintFlags
:
NewNamePrintFlags
(
operation
),
}
}
}
}
// illegalPackageSourceChecker compares a given
// object's package path, and determines if the
// object originates from a disallowed source.
type
illegalPackageSourceChecker
struct
{
// disallowedPrefixes is a slice of disallowed package path
// prefixes for a given runtime.Object that we are printing.
disallowedPrefixes
[]
string
}
func
(
c
*
illegalPackageSourceChecker
)
IsForbidden
(
pkgPath
string
)
bool
{
for
_
,
forbiddenPrefix
:=
range
c
.
disallowedPrefixes
{
if
strings
.
HasPrefix
(
pkgPath
,
forbiddenPrefix
)
{
return
true
}
}
return
false
}
pkg/kubectl/genericclioptions/printers/BUILD
0 → 100644
View file @
d1603c95
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"interface.go",
"json.go",
"name.go",
"sourcechecker.go",
"typesetter.go",
],
importpath = "k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/ghodss/yaml:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = ["sourcechecker_test.go"],
embed = [":go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
pkg/kubectl/genericclioptions/printers/interface.go
0 → 100644
View file @
d1603c95
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
printers
import
(
"io"
"k8s.io/apimachinery/pkg/runtime"
)
// ResourcePrinterFunc is a function that can print objects
type
ResourcePrinterFunc
func
(
runtime
.
Object
,
io
.
Writer
)
error
// ResourcePrinter is an interface that knows how to print runtime objects.
type
ResourcePrinter
interface
{
// Print receives a runtime object, formats it and prints it to a writer.
PrintObj
(
runtime
.
Object
,
io
.
Writer
)
error
}
pkg/printers/json.go
→
pkg/
kubectl/genericclioptions/
printers/json.go
View file @
d1603c95
...
@@ -36,8 +36,8 @@ func (p *JSONPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
...
@@ -36,8 +36,8 @@ func (p *JSONPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we need an actual value in order to retrieve the package path for an object.
// we need an actual value in order to retrieve the package path for an object.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
if
i
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
if
I
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
return
fmt
.
Errorf
(
i
nternalObjectPrinterErr
)
return
fmt
.
Errorf
(
I
nternalObjectPrinterErr
)
}
}
switch
obj
:=
obj
.
(
type
)
{
switch
obj
:=
obj
.
(
type
)
{
...
@@ -78,8 +78,8 @@ func (p *YAMLPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
...
@@ -78,8 +78,8 @@ func (p *YAMLPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we need an actual value in order to retrieve the package path for an object.
// we need an actual value in order to retrieve the package path for an object.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
if
i
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
if
I
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
return
fmt
.
Errorf
(
i
nternalObjectPrinterErr
)
return
fmt
.
Errorf
(
I
nternalObjectPrinterErr
)
}
}
switch
obj
:=
obj
.
(
type
)
{
switch
obj
:=
obj
.
(
type
)
{
...
...
pkg/printers/name.go
→
pkg/
kubectl/genericclioptions/
printers/name.go
View file @
d1603c95
...
@@ -45,8 +45,8 @@ func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error {
...
@@ -45,8 +45,8 @@ func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error {
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
// we need an actual value in order to retrieve the package path for an object.
// we need an actual value in order to retrieve the package path for an object.
if
i
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
if
I
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
return
fmt
.
Errorf
(
i
nternalObjectPrinterErr
)
return
fmt
.
Errorf
(
I
nternalObjectPrinterErr
)
}
}
if
meta
.
IsListType
(
obj
)
{
if
meta
.
IsListType
(
obj
)
{
...
...
pkg/kubectl/genericclioptions/printers/sourcechecker.go
0 → 100644
View file @
d1603c95
/*
Copyright 2018 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
printers
import
(
"strings"
)
var
(
InternalObjectPrinterErr
=
"a versioned object must be passed to a printer"
// disallowedPackagePrefixes contains regular expression templates
// for object package paths that are not allowed by printers.
disallowedPackagePrefixes
=
[]
string
{
"k8s.io/kubernetes/pkg/apis/"
,
}
)
var
InternalObjectPreventer
=
&
illegalPackageSourceChecker
{
disallowedPackagePrefixes
}
func
IsInternalObjectError
(
err
error
)
bool
{
if
err
==
nil
{
return
false
}
return
err
.
Error
()
==
InternalObjectPrinterErr
}
// illegalPackageSourceChecker compares a given
// object's package path, and determines if the
// object originates from a disallowed source.
type
illegalPackageSourceChecker
struct
{
// disallowedPrefixes is a slice of disallowed package path
// prefixes for a given runtime.Object that we are printing.
disallowedPrefixes
[]
string
}
func
(
c
*
illegalPackageSourceChecker
)
IsForbidden
(
pkgPath
string
)
bool
{
for
_
,
forbiddenPrefix
:=
range
c
.
disallowedPrefixes
{
if
strings
.
HasPrefix
(
pkgPath
,
forbiddenPrefix
)
{
return
true
}
}
return
false
}
pkg/
printers/flags
_test.go
→
pkg/
kubectl/genericclioptions/printers/sourcechecker
_test.go
View file @
d1603c95
File moved
pkg/printers/typesetter.go
→
pkg/
kubectl/genericclioptions/
printers/typesetter.go
View file @
d1603c95
File moved
pkg/printers/BUILD
View file @
d1603c95
...
@@ -11,25 +11,20 @@ go_library(
...
@@ -11,25 +11,20 @@ go_library(
srcs = [
srcs = [
"customcolumn.go",
"customcolumn.go",
"customcolumn_flags.go",
"customcolumn_flags.go",
"flags.go",
"humanreadable.go",
"humanreadable.go",
"interface.go",
"interface.go",
"json.go",
"json_yaml_flags.go",
"jsonpath.go",
"jsonpath.go",
"jsonpath_flags.go",
"jsonpath_flags.go",
"kube_template_flags.go",
"kube_template_flags.go",
"name.go",
"name_flags.go",
"tabwriter.go",
"tabwriter.go",
"template.go",
"template.go",
"template_flags.go",
"template_flags.go",
"typesetter.go",
],
],
importpath = "k8s.io/kubernetes/pkg/printers",
importpath = "k8s.io/kubernetes/pkg/printers",
deps = [
deps = [
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//vendor/github.com/ghodss/yaml:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
...
@@ -43,26 +38,6 @@ go_library(
...
@@ -43,26 +38,6 @@ go_library(
],
],
)
)
go_test(
name = "go_default_xtest",
srcs = [
"customcolumn_flags_test.go",
"customcolumn_test.go",
"json_yaml_flags_test.go",
"jsonpath_flags_test.go",
"name_flags_test.go",
"template_flags_test.go",
],
deps = [
":go_default_library",
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/core:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
],
)
filegroup(
filegroup(
name = "package-srcs",
name = "package-srcs",
srcs = glob(["**"]),
srcs = glob(["**"]),
...
@@ -83,13 +58,18 @@ filegroup(
...
@@ -83,13 +58,18 @@ filegroup(
go_test(
go_test(
name = "go_default_test",
name = "go_default_test",
srcs = [
srcs = [
"flags_test.go",
"customcolumn_flags_test.go",
"customcolumn_test.go",
"humanreadable_test.go",
"humanreadable_test.go",
"jsonpath_flags_test.go",
"template_flags_test.go",
"template_test.go",
"template_test.go",
],
],
embed = [":go_default_library"],
embed = [":go_default_library"],
deps = [
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/api/core/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
...
...
pkg/printers/customcolumn.go
View file @
d1603c95
...
@@ -29,6 +29,7 @@ import (
...
@@ -29,6 +29,7 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/util/jsonpath"
"k8s.io/client-go/util/jsonpath"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
)
)
var
jsonRegexp
=
regexp
.
MustCompile
(
"^
\\
{
\\
.?([^{}]+)
\\
}$|^
\\
.?([^{}]+)$"
)
var
jsonRegexp
=
regexp
.
MustCompile
(
"^
\\
{
\\
.?([^{}]+)
\\
}$|^
\\
.?([^{}]+)$"
)
...
@@ -154,8 +155,8 @@ func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error
...
@@ -154,8 +155,8 @@ func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we need an actual value in order to retrieve the package path for an object.
// we need an actual value in order to retrieve the package path for an object.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
if
i
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
if
printers
.
I
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
return
fmt
.
Errorf
(
i
nternalObjectPrinterErr
)
return
fmt
.
Errorf
(
printers
.
I
nternalObjectPrinterErr
)
}
}
if
w
,
found
:=
out
.
(
*
tabwriter
.
Writer
);
!
found
{
if
w
,
found
:=
out
.
(
*
tabwriter
.
Writer
);
!
found
{
...
...
pkg/printers/customcolumn_flags.go
View file @
d1603c95
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
)
)
...
@@ -39,7 +40,7 @@ type CustomColumnsPrintFlags struct {
...
@@ -39,7 +40,7 @@ type CustomColumnsPrintFlags struct {
// Supported format types can be found in pkg/printers/printers.go
// Supported format types can be found in pkg/printers/printers.go
func
(
f
*
CustomColumnsPrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
CustomColumnsPrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
if
len
(
templateFormat
)
==
0
{
if
len
(
templateFormat
)
==
0
{
return
nil
,
NoCompatiblePrinterError
{}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{}
}
}
templateValue
:=
""
templateValue
:=
""
...
@@ -63,7 +64,7 @@ func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrin
...
@@ -63,7 +64,7 @@ func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrin
}
}
if
_
,
supportedFormat
:=
supportedFormats
[
templateFormat
];
!
supportedFormat
{
if
_
,
supportedFormat
:=
supportedFormats
[
templateFormat
];
!
supportedFormat
{
return
nil
,
NoCompatiblePrinterError
{}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{}
}
}
if
len
(
templateValue
)
==
0
{
if
len
(
templateValue
)
==
0
{
...
@@ -82,8 +83,7 @@ func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrin
...
@@ -82,8 +83,7 @@ func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrin
return
p
,
err
return
p
,
err
}
}
p
,
err
:=
NewCustomColumnsPrinterFromSpec
(
templateValue
,
decoder
,
f
.
NoHeaders
)
return
NewCustomColumnsPrinterFromSpec
(
templateValue
,
decoder
,
f
.
NoHeaders
)
return
p
,
err
}
}
// AddFlags receives a *cobra.Command reference and binds
// AddFlags receives a *cobra.Command reference and binds
...
...
pkg/printers/customcolumn_flags_test.go
View file @
d1603c95
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
_test
package
printers
import
(
import
(
"bytes"
"bytes"
...
@@ -26,7 +26,7 @@ import (
...
@@ -26,7 +26,7 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/
printer
s"
"k8s.io/kubernetes/pkg/
kubectl/genericclioption
s"
)
)
func
TestPrinterSupportsExpectedCustomColumnFormats
(
t
*
testing
.
T
)
{
func
TestPrinterSupportsExpectedCustomColumnFormats
(
t
*
testing
.
T
)
{
...
@@ -94,18 +94,18 @@ func TestPrinterSupportsExpectedCustomColumnFormats(t *testing.T) {
...
@@ -94,18 +94,18 @@ func TestPrinterSupportsExpectedCustomColumnFormats(t *testing.T) {
for
_
,
tc
:=
range
testCases
{
for
_
,
tc
:=
range
testCases
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
printFlags
:=
printers
.
CustomColumnsPrintFlags
{
printFlags
:=
CustomColumnsPrintFlags
{
TemplateArgument
:
tc
.
templateArg
,
TemplateArgument
:
tc
.
templateArg
,
}
}
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
if
tc
.
expectNoMatch
{
if
tc
.
expectNoMatch
{
if
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
}
}
return
return
}
}
if
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
}
}
...
...
pkg/printers/customcolumn_test.go
View file @
d1603c95
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
_test
package
printers
import
(
import
(
"bytes"
"bytes"
...
@@ -27,7 +27,6 @@ import (
...
@@ -27,7 +27,6 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
api
"k8s.io/kubernetes/pkg/apis/core"
api
"k8s.io/kubernetes/pkg/apis/core"
"k8s.io/kubernetes/pkg/printers"
)
)
func
TestMassageJSONPath
(
t
*
testing
.
T
)
{
func
TestMassageJSONPath
(
t
*
testing
.
T
)
{
...
@@ -48,7 +47,7 @@ func TestMassageJSONPath(t *testing.T) {
...
@@ -48,7 +47,7 @@ func TestMassageJSONPath(t *testing.T) {
}
}
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
t
.
Run
(
test
.
input
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
input
,
func
(
t
*
testing
.
T
)
{
output
,
err
:=
printers
.
RelaxedJSONPathExpression
(
test
.
input
)
output
,
err
:=
RelaxedJSONPathExpression
(
test
.
input
)
if
err
!=
nil
&&
!
test
.
expectErr
{
if
err
!=
nil
&&
!
test
.
expectErr
{
t
.
Errorf
(
"unexpected error: %v"
,
err
)
t
.
Errorf
(
"unexpected error: %v"
,
err
)
return
return
...
@@ -69,7 +68,7 @@ func TestMassageJSONPath(t *testing.T) {
...
@@ -69,7 +68,7 @@ func TestMassageJSONPath(t *testing.T) {
func
TestNewColumnPrinterFromSpec
(
t
*
testing
.
T
)
{
func
TestNewColumnPrinterFromSpec
(
t
*
testing
.
T
)
{
tests
:=
[]
struct
{
tests
:=
[]
struct
{
spec
string
spec
string
expectedColumns
[]
printers
.
Column
expectedColumns
[]
Column
expectErr
bool
expectErr
bool
name
string
name
string
noHeaders
bool
noHeaders
bool
...
@@ -97,7 +96,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
...
@@ -97,7 +96,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
{
{
spec
:
"NAME:metadata.name,API_VERSION:apiVersion"
,
spec
:
"NAME:metadata.name,API_VERSION:apiVersion"
,
name
:
"ok"
,
name
:
"ok"
,
expectedColumns
:
[]
printers
.
Column
{
expectedColumns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -116,7 +115,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
...
@@ -116,7 +115,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
}
}
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
printer
,
err
:=
printers
.
NewCustomColumnsPrinterFromSpec
(
test
.
spec
,
legacyscheme
.
Codecs
.
UniversalDecoder
(),
test
.
noHeaders
)
printer
,
err
:=
NewCustomColumnsPrinterFromSpec
(
test
.
spec
,
legacyscheme
.
Codecs
.
UniversalDecoder
(),
test
.
noHeaders
)
if
test
.
expectErr
{
if
test
.
expectErr
{
if
err
==
nil
{
if
err
==
nil
{
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
...
@@ -164,7 +163,7 @@ const exampleTemplateTwo = `NAME API_VERSION
...
@@ -164,7 +163,7 @@ const exampleTemplateTwo = `NAME API_VERSION
func
TestNewColumnPrinterFromTemplate
(
t
*
testing
.
T
)
{
func
TestNewColumnPrinterFromTemplate
(
t
*
testing
.
T
)
{
tests
:=
[]
struct
{
tests
:=
[]
struct
{
spec
string
spec
string
expectedColumns
[]
printers
.
Column
expectedColumns
[]
Column
expectErr
bool
expectErr
bool
name
string
name
string
}{
}{
...
@@ -191,7 +190,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
...
@@ -191,7 +190,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
{
{
spec
:
exampleTemplateOne
,
spec
:
exampleTemplateOne
,
name
:
"ok"
,
name
:
"ok"
,
expectedColumns
:
[]
printers
.
Column
{
expectedColumns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -205,7 +204,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
...
@@ -205,7 +204,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
{
{
spec
:
exampleTemplateTwo
,
spec
:
exampleTemplateTwo
,
name
:
"ok-2"
,
name
:
"ok-2"
,
expectedColumns
:
[]
printers
.
Column
{
expectedColumns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -220,7 +219,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
...
@@ -220,7 +219,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
reader
:=
bytes
.
NewBufferString
(
test
.
spec
)
reader
:=
bytes
.
NewBufferString
(
test
.
spec
)
printer
,
err
:=
printers
.
NewCustomColumnsPrinterFromTemplate
(
reader
,
legacyscheme
.
Codecs
.
UniversalDecoder
())
printer
,
err
:=
NewCustomColumnsPrinterFromTemplate
(
reader
,
legacyscheme
.
Codecs
.
UniversalDecoder
())
if
test
.
expectErr
{
if
test
.
expectErr
{
if
err
==
nil
{
if
err
==
nil
{
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
...
@@ -241,12 +240,12 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
...
@@ -241,12 +240,12 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
func
TestColumnPrint
(
t
*
testing
.
T
)
{
func
TestColumnPrint
(
t
*
testing
.
T
)
{
tests
:=
[]
struct
{
tests
:=
[]
struct
{
columns
[]
printers
.
Column
columns
[]
Column
obj
runtime
.
Object
obj
runtime
.
Object
expectedOutput
string
expectedOutput
string
}{
}{
{
{
columns
:
[]
printers
.
Column
{
columns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -258,7 +257,7 @@ foo
...
@@ -258,7 +257,7 @@ foo
`
,
`
,
},
},
{
{
columns
:
[]
printers
.
Column
{
columns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -276,7 +275,7 @@ bar
...
@@ -276,7 +275,7 @@ bar
`
,
`
,
},
},
{
{
columns
:
[]
printers
.
Column
{
columns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -292,7 +291,7 @@ foo baz
...
@@ -292,7 +291,7 @@ foo baz
`
,
`
,
},
},
{
{
columns
:
[]
printers
.
Column
{
columns
:
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -315,7 +314,7 @@ foo baz <none>
...
@@ -315,7 +314,7 @@ foo baz <none>
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
t
.
Run
(
test
.
expectedOutput
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
expectedOutput
,
func
(
t
*
testing
.
T
)
{
printer
:=
&
printers
.
CustomColumnsPrinter
{
printer
:=
&
CustomColumnsPrinter
{
Columns
:
test
.
columns
,
Columns
:
test
.
columns
,
Decoder
:
legacyscheme
.
Codecs
.
UniversalDecoder
(),
Decoder
:
legacyscheme
.
Codecs
.
UniversalDecoder
(),
}
}
...
@@ -332,7 +331,7 @@ foo baz <none>
...
@@ -332,7 +331,7 @@ foo baz <none>
// this mimics how resource/get.go calls the customcolumn printer
// this mimics how resource/get.go calls the customcolumn printer
func
TestIndividualPrintObjOnExistingTabWriter
(
t
*
testing
.
T
)
{
func
TestIndividualPrintObjOnExistingTabWriter
(
t
*
testing
.
T
)
{
columns
:=
[]
printers
.
Column
{
columns
:=
[]
Column
{
{
{
Header
:
"NAME"
,
Header
:
"NAME"
,
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
...
@@ -356,8 +355,8 @@ bar bar bar
...
@@ -356,8 +355,8 @@ bar bar bar
`
`
buffer
:=
&
bytes
.
Buffer
{}
buffer
:=
&
bytes
.
Buffer
{}
tabWriter
:=
printers
.
GetNewTabWriter
(
buffer
)
tabWriter
:=
GetNewTabWriter
(
buffer
)
printer
:=
&
printers
.
CustomColumnsPrinter
{
printer
:=
&
CustomColumnsPrinter
{
Columns
:
columns
,
Columns
:
columns
,
Decoder
:
legacyscheme
.
Codecs
.
UniversalDecoder
(),
Decoder
:
legacyscheme
.
Codecs
.
UniversalDecoder
(),
}
}
...
...
pkg/printers/internalversion/BUILD
View file @
d1603c95
...
@@ -27,6 +27,8 @@ go_test(
...
@@ -27,6 +27,8 @@ go_test(
"//pkg/apis/storage:go_default_library",
"//pkg/apis/storage:go_default_library",
"//pkg/client/clientset_generated/internalclientset:go_default_library",
"//pkg/client/clientset_generated/internalclientset:go_default_library",
"//pkg/client/clientset_generated/internalclientset/fake:go_default_library",
"//pkg/client/clientset_generated/internalclientset/fake:go_default_library",
"//pkg/kubectl/genericclioptions:go_default_library",
"//pkg/kubectl/genericclioptions/printers:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/util/pointer:go_default_library",
"//pkg/util/pointer:go_default_library",
"//vendor/github.com/ghodss/yaml:go_default_library",
"//vendor/github.com/ghodss/yaml:go_default_library",
...
...
pkg/printers/internalversion/printers_test.go
View file @
d1603c95
...
@@ -50,6 +50,8 @@ import (
...
@@ -50,6 +50,8 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/apis/policy"
"k8s.io/kubernetes/pkg/apis/policy"
"k8s.io/kubernetes/pkg/apis/storage"
"k8s.io/kubernetes/pkg/apis/storage"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
genericprinters
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/printers"
)
)
...
@@ -255,11 +257,11 @@ func testPrinter(t *testing.T, printer printers.ResourcePrinter, unmarshalFunc f
...
@@ -255,11 +257,11 @@ func testPrinter(t *testing.T, printer printers.ResourcePrinter, unmarshalFunc f
}
}
func
TestYAMLPrinter
(
t
*
testing
.
T
)
{
func
TestYAMLPrinter
(
t
*
testing
.
T
)
{
testPrinter
(
t
,
printers
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
printers
.
YAMLPrinter
{}),
yaml
.
Unmarshal
)
testPrinter
(
t
,
genericprinters
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
generic
printers
.
YAMLPrinter
{}),
yaml
.
Unmarshal
)
}
}
func
TestJSONPrinter
(
t
*
testing
.
T
)
{
func
TestJSONPrinter
(
t
*
testing
.
T
)
{
testPrinter
(
t
,
printers
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
printers
.
JSONPrinter
{}),
json
.
Unmarshal
)
testPrinter
(
t
,
genericprinters
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
generic
printers
.
JSONPrinter
{}),
json
.
Unmarshal
)
}
}
func
TestFormatResourceName
(
t
*
testing
.
T
)
{
func
TestFormatResourceName
(
t
*
testing
.
T
)
{
...
@@ -385,7 +387,7 @@ func TestNamePrinter(t *testing.T) {
...
@@ -385,7 +387,7 @@ func TestNamePrinter(t *testing.T) {
"pod/bar
\n
"
},
"pod/bar
\n
"
},
}
}
printFlags
:=
printer
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
legacyscheme
.
Scheme
)
.
WithDefaultOutput
(
"name"
)
printFlags
:=
genericclioption
s
.
NewPrintFlags
(
""
)
.
WithTypeSetter
(
legacyscheme
.
Scheme
)
.
WithDefaultOutput
(
"name"
)
printer
,
err
:=
printFlags
.
ToPrinter
()
printer
,
err
:=
printFlags
.
ToPrinter
()
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"unexpected err: %v"
,
err
)
t
.
Fatalf
(
"unexpected err: %v"
,
err
)
...
@@ -548,8 +550,9 @@ func TestPrinters(t *testing.T) {
...
@@ -548,8 +550,9 @@ func TestPrinters(t *testing.T) {
}
}
genericPrinters
:=
map
[
string
]
printers
.
ResourcePrinter
{
genericPrinters
:=
map
[
string
]
printers
.
ResourcePrinter
{
"json"
:
printers
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
printers
.
JSONPrinter
{}),
// TODO(juanvallejo): move "generic printer" tests to pkg/kubectl/genericclioptions/printers
"yaml"
:
printers
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
printers
.
YAMLPrinter
{}),
"json"
:
genericprinters
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
genericprinters
.
JSONPrinter
{}),
"yaml"
:
genericprinters
.
NewTypeSetter
(
legacyscheme
.
Scheme
)
.
ToPrinter
(
&
genericprinters
.
YAMLPrinter
{}),
"template"
:
templatePrinter
,
"template"
:
templatePrinter
,
"template2"
:
templatePrinter2
,
"template2"
:
templatePrinter2
,
"jsonpath"
:
jsonpathPrinter
,
"jsonpath"
:
jsonpathPrinter
,
...
...
pkg/printers/jsonpath.go
View file @
d1603c95
...
@@ -25,6 +25,7 @@ import (
...
@@ -25,6 +25,7 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/util/jsonpath"
"k8s.io/client-go/util/jsonpath"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
)
)
// exists returns true if it would be possible to call the index function
// exists returns true if it would be possible to call the index function
...
@@ -118,8 +119,8 @@ func (j *JSONPathPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
...
@@ -118,8 +119,8 @@ func (j *JSONPathPrinter) PrintObj(obj runtime.Object, w io.Writer) error {
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we use reflect.Indirect here in order to obtain the actual value from a pointer.
// we need an actual value in order to retrieve the package path for an object.
// we need an actual value in order to retrieve the package path for an object.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
// using reflect.Indirect indiscriminately is valid here, as all runtime.Objects are supposed to be pointers.
if
i
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
if
printers
.
I
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
return
fmt
.
Errorf
(
i
nternalObjectPrinterErr
)
return
fmt
.
Errorf
(
printers
.
I
nternalObjectPrinterErr
)
}
}
var
queryObj
interface
{}
=
obj
var
queryObj
interface
{}
=
obj
...
...
pkg/printers/jsonpath_flags.go
View file @
d1603c95
...
@@ -22,6 +22,8 @@ import (
...
@@ -22,6 +22,8 @@ import (
"strings"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
)
)
// JSONPathPrintFlags provides default flags necessary for template printing.
// JSONPathPrintFlags provides default flags necessary for template printing.
...
@@ -39,7 +41,7 @@ type JSONPathPrintFlags struct {
...
@@ -39,7 +41,7 @@ type JSONPathPrintFlags struct {
// Returns false if the specified templateFormat does not match a template format.
// Returns false if the specified templateFormat does not match a template format.
func
(
f
*
JSONPathPrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
JSONPathPrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
if
(
f
.
TemplateArgument
==
nil
||
len
(
*
f
.
TemplateArgument
)
==
0
)
&&
len
(
templateFormat
)
==
0
{
if
(
f
.
TemplateArgument
==
nil
||
len
(
*
f
.
TemplateArgument
)
==
0
)
&&
len
(
templateFormat
)
==
0
{
return
nil
,
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
}
}
templateValue
:=
""
templateValue
:=
""
...
@@ -66,7 +68,7 @@ func (f *JSONPathPrintFlags) ToPrinter(templateFormat string) (ResourcePrinter,
...
@@ -66,7 +68,7 @@ func (f *JSONPathPrintFlags) ToPrinter(templateFormat string) (ResourcePrinter,
}
}
if
_
,
supportedFormat
:=
templateFormats
[
templateFormat
];
!
supportedFormat
{
if
_
,
supportedFormat
:=
templateFormats
[
templateFormat
];
!
supportedFormat
{
return
nil
,
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
}
}
if
len
(
templateValue
)
==
0
{
if
len
(
templateValue
)
==
0
{
...
...
pkg/printers/jsonpath_flags_test.go
View file @
d1603c95
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
_test
package
printers
import
(
import
(
"bytes"
"bytes"
...
@@ -26,7 +26,7 @@ import (
...
@@ -26,7 +26,7 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/
printer
s"
"k8s.io/kubernetes/pkg/
kubectl/genericclioption
s"
)
)
func
TestPrinterSupportsExpectedJSONPathFormats
(
t
*
testing
.
T
)
{
func
TestPrinterSupportsExpectedJSONPathFormats
(
t
*
testing
.
T
)
{
...
@@ -99,18 +99,18 @@ func TestPrinterSupportsExpectedJSONPathFormats(t *testing.T) {
...
@@ -99,18 +99,18 @@ func TestPrinterSupportsExpectedJSONPathFormats(t *testing.T) {
templateArg
=
nil
templateArg
=
nil
}
}
printFlags
:=
printers
.
JSONPathPrintFlags
{
printFlags
:=
JSONPathPrintFlags
{
TemplateArgument
:
templateArg
,
TemplateArgument
:
templateArg
,
}
}
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
if
tc
.
expectNoMatch
{
if
tc
.
expectNoMatch
{
if
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
}
}
return
return
}
}
if
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
}
}
...
@@ -177,14 +177,14 @@ func TestJSONPathPrinterDefaultsAllowMissingKeysToTrue(t *testing.T) {
...
@@ -177,14 +177,14 @@ func TestJSONPathPrinterDefaultsAllowMissingKeysToTrue(t *testing.T) {
for
_
,
tc
:=
range
testCases
{
for
_
,
tc
:=
range
testCases
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
printFlags
:=
printers
.
JSONPathPrintFlags
{
printFlags
:=
JSONPathPrintFlags
{
TemplateArgument
:
&
tc
.
templateArg
,
TemplateArgument
:
&
tc
.
templateArg
,
AllowMissingKeys
:
tc
.
allowMissingKeys
,
AllowMissingKeys
:
tc
.
allowMissingKeys
,
}
}
outputFormat
:=
"jsonpath"
outputFormat
:=
"jsonpath"
p
,
err
:=
printFlags
.
ToPrinter
(
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
outputFormat
)
if
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
outputFormat
)
}
}
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/printers/kube_template_flags.go
View file @
d1603c95
...
@@ -16,7 +16,11 @@ limitations under the License.
...
@@ -16,7 +16,11 @@ limitations under the License.
package
printers
package
printers
import
"github.com/spf13/cobra"
import
(
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
)
// KubeTemplatePrintFlags composes print flags that provide both a JSONPath and a go-template printer.
// KubeTemplatePrintFlags composes print flags that provide both a JSONPath and a go-template printer.
// This is necessary if dealing with cases that require support both both printers, since both sets of flags
// This is necessary if dealing with cases that require support both both printers, since both sets of flags
...
@@ -30,7 +34,7 @@ type KubeTemplatePrintFlags struct {
...
@@ -30,7 +34,7 @@ type KubeTemplatePrintFlags struct {
}
}
func
(
f
*
KubeTemplatePrintFlags
)
ToPrinter
(
outputFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
KubeTemplatePrintFlags
)
ToPrinter
(
outputFormat
string
)
(
ResourcePrinter
,
error
)
{
if
p
,
err
:=
f
.
JSONPathPrintFlags
.
ToPrinter
(
outputFormat
);
!
IsNoCompatiblePrinterError
(
err
)
{
if
p
,
err
:=
f
.
JSONPathPrintFlags
.
ToPrinter
(
outputFormat
);
!
genericclioptions
.
IsNoCompatiblePrinterError
(
err
)
{
return
p
,
err
return
p
,
err
}
}
return
f
.
GoTemplatePrintFlags
.
ToPrinter
(
outputFormat
)
return
f
.
GoTemplatePrintFlags
.
ToPrinter
(
outputFormat
)
...
...
pkg/printers/template.go
View file @
d1603c95
...
@@ -25,6 +25,7 @@ import (
...
@@ -25,6 +25,7 @@ import (
"text/template"
"text/template"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/printers"
)
)
// GoTemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template.
// GoTemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template.
...
@@ -60,8 +61,8 @@ func (p *GoTemplatePrinter) AllowMissingKeys(allow bool) {
...
@@ -60,8 +61,8 @@ func (p *GoTemplatePrinter) AllowMissingKeys(allow bool) {
// PrintObj formats the obj with the Go Template.
// PrintObj formats the obj with the Go Template.
func
(
p
*
GoTemplatePrinter
)
PrintObj
(
obj
runtime
.
Object
,
w
io
.
Writer
)
error
{
func
(
p
*
GoTemplatePrinter
)
PrintObj
(
obj
runtime
.
Object
,
w
io
.
Writer
)
error
{
if
i
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
if
printers
.
I
nternalObjectPreventer
.
IsForbidden
(
reflect
.
Indirect
(
reflect
.
ValueOf
(
obj
))
.
Type
()
.
PkgPath
())
{
return
fmt
.
Errorf
(
i
nternalObjectPrinterErr
)
return
fmt
.
Errorf
(
printers
.
I
nternalObjectPrinterErr
)
}
}
var
data
[]
byte
var
data
[]
byte
...
...
pkg/printers/template_flags.go
View file @
d1603c95
...
@@ -22,6 +22,8 @@ import (
...
@@ -22,6 +22,8 @@ import (
"strings"
"strings"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
)
)
// GoTemplatePrintFlags provides default flags necessary for template printing.
// GoTemplatePrintFlags provides default flags necessary for template printing.
...
@@ -39,7 +41,7 @@ type GoTemplatePrintFlags struct {
...
@@ -39,7 +41,7 @@ type GoTemplatePrintFlags struct {
// Returns false if the specified templateFormat does not match a template format.
// Returns false if the specified templateFormat does not match a template format.
func
(
f
*
GoTemplatePrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
GoTemplatePrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
if
(
f
.
TemplateArgument
==
nil
||
len
(
*
f
.
TemplateArgument
)
==
0
)
&&
len
(
templateFormat
)
==
0
{
if
(
f
.
TemplateArgument
==
nil
||
len
(
*
f
.
TemplateArgument
)
==
0
)
&&
len
(
templateFormat
)
==
0
{
return
nil
,
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
}
}
templateValue
:=
""
templateValue
:=
""
...
@@ -68,7 +70,7 @@ func (f *GoTemplatePrintFlags) ToPrinter(templateFormat string) (ResourcePrinter
...
@@ -68,7 +70,7 @@ func (f *GoTemplatePrintFlags) ToPrinter(templateFormat string) (ResourcePrinter
}
}
if
_
,
supportedFormat
:=
supportedFormats
[
templateFormat
];
!
supportedFormat
{
if
_
,
supportedFormat
:=
supportedFormats
[
templateFormat
];
!
supportedFormat
{
return
nil
,
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{
Options
:
f
,
OutputFormat
:
&
templateFormat
}
}
}
if
len
(
templateValue
)
==
0
{
if
len
(
templateValue
)
==
0
{
...
...
pkg/printers/template_flags_test.go
View file @
d1603c95
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
_test
package
printers
import
(
import
(
"bytes"
"bytes"
...
@@ -26,7 +26,7 @@ import (
...
@@ -26,7 +26,7 @@ import (
"k8s.io/api/core/v1"
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/
printer
s"
"k8s.io/kubernetes/pkg/
kubectl/genericclioption
s"
)
)
func
TestPrinterSupportsExpectedTemplateFormats
(
t
*
testing
.
T
)
{
func
TestPrinterSupportsExpectedTemplateFormats
(
t
*
testing
.
T
)
{
...
@@ -99,18 +99,18 @@ func TestPrinterSupportsExpectedTemplateFormats(t *testing.T) {
...
@@ -99,18 +99,18 @@ func TestPrinterSupportsExpectedTemplateFormats(t *testing.T) {
templateArg
=
nil
templateArg
=
nil
}
}
printFlags
:=
printers
.
GoTemplatePrintFlags
{
printFlags
:=
GoTemplatePrintFlags
{
TemplateArgument
:
templateArg
,
TemplateArgument
:
templateArg
,
}
}
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
tc
.
outputFormat
)
if
tc
.
expectNoMatch
{
if
tc
.
expectNoMatch
{
if
!
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
!
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected no printer matches for output format %q"
,
tc
.
outputFormat
)
}
}
return
return
}
}
if
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
tc
.
outputFormat
)
}
}
...
@@ -171,14 +171,14 @@ func TestTemplatePrinterDefaultsAllowMissingKeysToTrue(t *testing.T) {
...
@@ -171,14 +171,14 @@ func TestTemplatePrinterDefaultsAllowMissingKeysToTrue(t *testing.T) {
for
_
,
tc
:=
range
testCases
{
for
_
,
tc
:=
range
testCases
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
tc
.
name
,
func
(
t
*
testing
.
T
)
{
printFlags
:=
printers
.
GoTemplatePrintFlags
{
printFlags
:=
GoTemplatePrintFlags
{
TemplateArgument
:
&
tc
.
templateArg
,
TemplateArgument
:
&
tc
.
templateArg
,
AllowMissingKeys
:
tc
.
allowMissingKeys
,
AllowMissingKeys
:
tc
.
allowMissingKeys
,
}
}
outputFormat
:=
"template"
outputFormat
:=
"template"
p
,
err
:=
printFlags
.
ToPrinter
(
outputFormat
)
p
,
err
:=
printFlags
.
ToPrinter
(
outputFormat
)
if
printer
s
.
IsNoCompatiblePrinterError
(
err
)
{
if
genericclioption
s
.
IsNoCompatiblePrinterError
(
err
)
{
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
outputFormat
)
t
.
Fatalf
(
"expected to match template printer for output format %q"
,
outputFormat
)
}
}
if
err
!=
nil
{
if
err
!=
nil
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment