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
5432ef5c
Commit
5432ef5c
authored
Apr 27, 2018
by
David Eads
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
divide statically known typer from dynamically derive restmapper
parent
6fbcbc99
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
47 additions
and
75 deletions
+47
-75
apply_set_last_applied.go
pkg/kubectl/cmd/apply_set_last_applied.go
+1
-2
BUILD
pkg/kubectl/cmd/auth/BUILD
+1
-0
cani.go
pkg/kubectl/cmd/auth/cani.go
+1
-1
autoscale.go
pkg/kubectl/cmd/autoscale.go
+1
-3
create.go
pkg/kubectl/cmd/create/create.go
+3
-2
create_clusterrole_test.go
pkg/kubectl/cmd/create/create_clusterrole_test.go
+1
-1
create_role.go
pkg/kubectl/cmd/create/create_role.go
+1
-1
create_role_test.go
pkg/kubectl/cmd/create/create_role_test.go
+1
-1
drain_test.go
pkg/kubectl/cmd/drain_test.go
+1
-1
explain.go
pkg/kubectl/cmd/explain.go
+1
-1
expose.go
pkg/kubectl/cmd/expose.go
+1
-2
BUILD
pkg/kubectl/cmd/rollout/BUILD
+1
-1
rollout_pause.go
pkg/kubectl/cmd/rollout/rollout_pause.go
+1
-3
rollout_resume.go
pkg/kubectl/cmd/rollout/rollout_resume.go
+1
-3
rollout_undo.go
pkg/kubectl/cmd/rollout/rollout_undo.go
+1
-3
run.go
pkg/kubectl/cmd/run.go
+3
-2
set_selector.go
pkg/kubectl/cmd/set/set_selector.go
+1
-1
fake.go
pkg/kubectl/cmd/testing/fake.go
+3
-4
factory.go
pkg/kubectl/cmd/util/factory.go
+1
-1
factory_builder.go
pkg/kubectl/cmd/util/factory_builder.go
+2
-2
factory_object_mapping.go
pkg/kubectl/cmd/util/factory_object_mapping.go
+5
-16
BUILD
pkg/kubectl/resource/BUILD
+3
-0
builder.go
pkg/kubectl/resource/builder.go
+5
-0
visitor.go
pkg/kubectl/resource/visitor.go
+1
-1
lazy.go
staging/src/k8s.io/apimachinery/pkg/api/meta/lazy.go
+4
-21
print_test.go
test/integration/apiserver/print_test.go
+1
-1
etcd_storage_path_test.go
test/integration/etcd/etcd_storage_path_test.go
+1
-1
No files found.
pkg/kubectl/cmd/apply_set_last_applied.go
View file @
5432ef5c
...
@@ -46,7 +46,6 @@ type SetLastAppliedOptions struct {
...
@@ -46,7 +46,6 @@ type SetLastAppliedOptions struct {
Selector
string
Selector
string
InfoList
[]
*
resource
.
Info
InfoList
[]
*
resource
.
Info
Mapper
meta
.
RESTMapper
Mapper
meta
.
RESTMapper
Typer
runtime
.
ObjectTyper
Namespace
string
Namespace
string
EnforceNamespace
bool
EnforceNamespace
bool
DryRun
bool
DryRun
bool
...
@@ -117,7 +116,7 @@ func (o *SetLastAppliedOptions) Complete(f cmdutil.Factory, cmd *cobra.Command)
...
@@ -117,7 +116,7 @@ func (o *SetLastAppliedOptions) Complete(f cmdutil.Factory, cmd *cobra.Command)
o
.
Output
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
Output
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
ShortOutput
=
o
.
Output
==
"name"
o
.
ShortOutput
=
o
.
Output
==
"name"
o
.
Mapper
,
o
.
Typer
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
var
err
error
var
err
error
o
.
Namespace
,
o
.
EnforceNamespace
,
err
=
f
.
DefaultNamespace
()
o
.
Namespace
,
o
.
EnforceNamespace
,
err
=
f
.
DefaultNamespace
()
...
...
pkg/kubectl/cmd/auth/BUILD
View file @
5432ef5c
...
@@ -16,6 +16,7 @@ go_library(
...
@@ -16,6 +16,7 @@ go_library(
"//build/visible_to:pkg_kubectl_cmd_auth_CONSUMERS",
"//build/visible_to:pkg_kubectl_cmd_auth_CONSUMERS",
],
],
deps = [
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/authorization:go_default_library",
"//pkg/apis/authorization:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/apis/rbac:go_default_library",
"//pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion:go_default_library",
"//pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion:go_default_library",
...
...
pkg/kubectl/cmd/auth/cani.go
View file @
5432ef5c
...
@@ -127,7 +127,7 @@ func (o *CanIOptions) Complete(f cmdutil.Factory, args []string) error {
...
@@ -127,7 +127,7 @@ func (o *CanIOptions) Complete(f cmdutil.Factory, args []string) error {
break
break
}
}
resourceTokens
:=
strings
.
SplitN
(
args
[
1
],
"/"
,
2
)
resourceTokens
:=
strings
.
SplitN
(
args
[
1
],
"/"
,
2
)
restMapper
,
_
:=
f
.
Object
()
restMapper
:=
f
.
RESTMapper
()
o
.
Resource
=
o
.
resourceFor
(
restMapper
,
resourceTokens
[
0
])
o
.
Resource
=
o
.
resourceFor
(
restMapper
,
resourceTokens
[
0
])
if
len
(
resourceTokens
)
>
1
{
if
len
(
resourceTokens
)
>
1
{
o
.
ResourceName
=
resourceTokens
[
1
]
o
.
ResourceName
=
resourceTokens
[
1
]
...
...
pkg/kubectl/cmd/autoscale.go
View file @
5432ef5c
...
@@ -23,7 +23,6 @@ import (
...
@@ -23,7 +23,6 @@ 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"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
...
@@ -68,7 +67,6 @@ type AutoscaleOptions struct {
...
@@ -68,7 +67,6 @@ type AutoscaleOptions struct {
EnforceNamespace
bool
EnforceNamespace
bool
Mapper
meta
.
RESTMapper
Mapper
meta
.
RESTMapper
Typer
runtime
.
ObjectTyper
ClientForMapping
func
(
mapping
*
meta
.
RESTMapping
)
(
resource
.
RESTClient
,
error
)
ClientForMapping
func
(
mapping
*
meta
.
RESTMapping
)
(
resource
.
RESTClient
,
error
)
GeneratorFunc
func
(
string
,
*
meta
.
RESTMapping
)
(
kubectl
.
StructuredGenerator
,
error
)
GeneratorFunc
func
(
string
,
*
meta
.
RESTMapping
)
(
kubectl
.
StructuredGenerator
,
error
)
...
@@ -133,7 +131,7 @@ func (o *AutoscaleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
...
@@ -133,7 +131,7 @@ func (o *AutoscaleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
o
.
CreateAnnotation
=
cmdutil
.
GetFlagBool
(
cmd
,
cmdutil
.
ApplyAnnotationsFlag
)
o
.
CreateAnnotation
=
cmdutil
.
GetFlagBool
(
cmd
,
cmdutil
.
ApplyAnnotationsFlag
)
o
.
Builder
=
f
.
NewBuilder
()
o
.
Builder
=
f
.
NewBuilder
()
o
.
CanBeAutoscaled
=
f
.
CanBeAutoscaled
o
.
CanBeAutoscaled
=
f
.
CanBeAutoscaled
o
.
Mapper
,
o
.
Typer
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
o
.
ClientForMapping
=
f
.
ClientForMapping
o
.
ClientForMapping
=
f
.
ClientForMapping
o
.
BuilderArgs
=
args
o
.
BuilderArgs
=
args
o
.
RecordFlags
.
Complete
(
f
.
Command
(
cmd
,
false
))
o
.
RecordFlags
.
Complete
(
f
.
Command
(
cmd
,
false
))
...
...
pkg/kubectl/cmd/create/create.go
View file @
5432ef5c
...
@@ -389,9 +389,10 @@ func RunCreateSubcommand(f cmdutil.Factory, options *CreateSubcommandOptions) er
...
@@ -389,9 +389,10 @@ func RunCreateSubcommand(f cmdutil.Factory, options *CreateSubcommandOptions) er
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
mapper
,
typer
:=
f
.
Object
()
mapper
:=
f
.
RESTMapper
()
if
!
options
.
DryRun
{
if
!
options
.
DryRun
{
gvks
,
_
,
err
:=
typer
.
ObjectKinds
(
obj
)
// create subcommands have compiled knowledge of things they create, so type them directly
gvks
,
_
,
err
:=
legacyscheme
.
Scheme
.
ObjectKinds
(
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
pkg/kubectl/cmd/create/create_clusterrole_test.go
View file @
5432ef5c
...
@@ -437,7 +437,7 @@ func TestClusterRoleValidate(t *testing.T) {
...
@@ -437,7 +437,7 @@ func TestClusterRoleValidate(t *testing.T) {
for
name
,
test
:=
range
tests
{
for
name
,
test
:=
range
tests
{
t
.
Run
(
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
name
,
func
(
t
*
testing
.
T
)
{
test
.
clusterRoleOptions
.
Mapper
,
_
=
tf
.
Object
()
test
.
clusterRoleOptions
.
Mapper
=
tf
.
RESTMapper
()
err
:=
test
.
clusterRoleOptions
.
Validate
()
err
:=
test
.
clusterRoleOptions
.
Validate
()
if
test
.
expectErr
&&
err
==
nil
{
if
test
.
expectErr
&&
err
==
nil
{
t
.
Errorf
(
"%s: expect error happens, but validate passes."
,
name
)
t
.
Errorf
(
"%s: expect error happens, but validate passes."
,
name
)
...
...
pkg/kubectl/cmd/create/create_role.go
View file @
5432ef5c
...
@@ -205,7 +205,7 @@ func (o *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
...
@@ -205,7 +205,7 @@ func (o *CreateRoleOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args
o
.
ResourceNames
=
resourceNames
o
.
ResourceNames
=
resourceNames
// Complete other options for Run.
// Complete other options for Run.
o
.
Mapper
,
_
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
o
.
DryRun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
o
.
DryRun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
o
.
OutputFormat
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
o
.
OutputFormat
=
cmdutil
.
GetFlagString
(
cmd
,
"output"
)
...
...
pkg/kubectl/cmd/create/create_role_test.go
View file @
5432ef5c
...
@@ -339,7 +339,7 @@ func TestValidate(t *testing.T) {
...
@@ -339,7 +339,7 @@ func TestValidate(t *testing.T) {
}
}
for
name
,
test
:=
range
tests
{
for
name
,
test
:=
range
tests
{
test
.
roleOptions
.
Mapper
,
_
=
tf
.
Object
()
test
.
roleOptions
.
Mapper
=
tf
.
RESTMapper
()
err
:=
test
.
roleOptions
.
Validate
()
err
:=
test
.
roleOptions
.
Validate
()
if
test
.
expectErr
&&
err
==
nil
{
if
test
.
expectErr
&&
err
==
nil
{
t
.
Errorf
(
"%s: expect error happens but validate passes."
,
name
)
t
.
Errorf
(
"%s: expect error happens but validate passes."
,
name
)
...
...
pkg/kubectl/cmd/drain_test.go
View file @
5432ef5c
...
@@ -836,7 +836,7 @@ func TestDeletePods(t *testing.T) {
...
@@ -836,7 +836,7 @@ func TestDeletePods(t *testing.T) {
o
:=
DrainOptions
{
o
:=
DrainOptions
{
PrintFlags
:
printers
.
NewPrintFlags
(
"drained"
),
PrintFlags
:
printers
.
NewPrintFlags
(
"drained"
),
}
}
o
.
mapper
,
_
=
tf
.
Object
()
o
.
mapper
=
tf
.
RESTMapper
()
o
.
Out
=
os
.
Stdout
o
.
Out
=
os
.
Stdout
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinterFunc
,
error
)
{
o
.
ToPrinter
=
func
(
operation
string
)
(
printers
.
ResourcePrinterFunc
,
error
)
{
...
...
pkg/kubectl/cmd/explain.go
View file @
5432ef5c
...
@@ -94,7 +94,7 @@ func (o *ExplainOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
...
@@ -94,7 +94,7 @@ func (o *ExplainOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) error {
o
.
Recursive
=
cmdutil
.
GetFlagBool
(
cmd
,
"recursive"
)
o
.
Recursive
=
cmdutil
.
GetFlagBool
(
cmd
,
"recursive"
)
o
.
ApiVersion
=
cmdutil
.
GetFlagString
(
cmd
,
"api-version"
)
o
.
ApiVersion
=
cmdutil
.
GetFlagString
(
cmd
,
"api-version"
)
o
.
Mapper
,
_
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
var
err
error
var
err
error
o
.
Schema
,
err
=
f
.
OpenAPISchema
()
o
.
Schema
,
err
=
f
.
OpenAPISchema
()
...
...
pkg/kubectl/cmd/expose.go
View file @
5432ef5c
...
@@ -96,7 +96,6 @@ type ExposeServiceOptions struct {
...
@@ -96,7 +96,6 @@ type ExposeServiceOptions struct {
Namespace
string
Namespace
string
Mapper
meta
.
RESTMapper
Mapper
meta
.
RESTMapper
Typer
runtime
.
ObjectTyper
Builder
*
resource
.
Builder
Builder
*
resource
.
Builder
...
@@ -188,7 +187,7 @@ func (o *ExposeServiceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) e
...
@@ -188,7 +187,7 @@ func (o *ExposeServiceOptions) Complete(f cmdutil.Factory, cmd *cobra.Command) e
o
.
MapBasedSelectorForObject
=
f
.
MapBasedSelectorForObject
o
.
MapBasedSelectorForObject
=
f
.
MapBasedSelectorForObject
o
.
PortsForObject
=
f
.
PortsForObject
o
.
PortsForObject
=
f
.
PortsForObject
o
.
ProtocolsForObject
=
f
.
ProtocolsForObject
o
.
ProtocolsForObject
=
f
.
ProtocolsForObject
o
.
Mapper
,
o
.
Typer
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
o
.
LabelsForObject
=
f
.
LabelsForObject
o
.
LabelsForObject
=
f
.
LabelsForObject
o
.
Namespace
,
o
.
EnforceNamespace
,
err
=
f
.
DefaultNamespace
()
o
.
Namespace
,
o
.
EnforceNamespace
,
err
=
f
.
DefaultNamespace
()
...
...
pkg/kubectl/cmd/rollout/BUILD
View file @
5432ef5c
...
@@ -19,6 +19,7 @@ go_library(
...
@@ -19,6 +19,7 @@ go_library(
"//build/visible_to:pkg_kubectl_cmd_rollout_CONSUMERS",
"//build/visible_to:pkg_kubectl_cmd_rollout_CONSUMERS",
],
],
deps = [
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/kubectl:go_default_library",
"//pkg/kubectl:go_default_library",
"//pkg/kubectl/cmd/set:go_default_library",
"//pkg/kubectl/cmd/set:go_default_library",
"//pkg/kubectl/cmd/templates:go_default_library",
"//pkg/kubectl/cmd/templates:go_default_library",
...
@@ -29,7 +30,6 @@ go_library(
...
@@ -29,7 +30,6 @@ go_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",
"//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/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/types:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/watch:go_default_library",
...
...
pkg/kubectl/cmd/rollout/rollout_pause.go
View file @
5432ef5c
...
@@ -23,7 +23,6 @@ import (
...
@@ -23,7 +23,6 @@ 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/types"
"k8s.io/apimachinery/pkg/types"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
...
@@ -42,7 +41,6 @@ type PauseConfig struct {
...
@@ -42,7 +41,6 @@ type PauseConfig struct {
Pauser
func
(
info
*
resource
.
Info
)
([]
byte
,
error
)
Pauser
func
(
info
*
resource
.
Info
)
([]
byte
,
error
)
Mapper
meta
.
RESTMapper
Mapper
meta
.
RESTMapper
Typer
runtime
.
ObjectTyper
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
Out
io
.
Writer
Out
io
.
Writer
...
@@ -101,7 +99,7 @@ func (o *PauseConfig) CompletePause(f cmdutil.Factory, cmd *cobra.Command, out i
...
@@ -101,7 +99,7 @@ func (o *PauseConfig) CompletePause(f cmdutil.Factory, cmd *cobra.Command, out i
return
cmdutil
.
UsageErrorf
(
cmd
,
"%s"
,
cmd
.
Use
)
return
cmdutil
.
UsageErrorf
(
cmd
,
"%s"
,
cmd
.
Use
)
}
}
o
.
Mapper
,
o
.
Typer
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
o
.
Pauser
=
f
.
Pauser
o
.
Pauser
=
f
.
Pauser
o
.
Out
=
out
o
.
Out
=
out
...
...
pkg/kubectl/cmd/rollout/rollout_resume.go
View file @
5432ef5c
...
@@ -23,7 +23,6 @@ import (
...
@@ -23,7 +23,6 @@ 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/types"
"k8s.io/apimachinery/pkg/types"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
...
@@ -42,7 +41,6 @@ type ResumeConfig struct {
...
@@ -42,7 +41,6 @@ type ResumeConfig struct {
Resumer
func
(
object
*
resource
.
Info
)
([]
byte
,
error
)
Resumer
func
(
object
*
resource
.
Info
)
([]
byte
,
error
)
Mapper
meta
.
RESTMapper
Mapper
meta
.
RESTMapper
Typer
runtime
.
ObjectTyper
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
Out
io
.
Writer
Out
io
.
Writer
...
@@ -99,7 +97,7 @@ func (o *ResumeConfig) CompleteResume(f cmdutil.Factory, cmd *cobra.Command, out
...
@@ -99,7 +97,7 @@ func (o *ResumeConfig) CompleteResume(f cmdutil.Factory, cmd *cobra.Command, out
return
cmdutil
.
UsageErrorf
(
cmd
,
"%s"
,
cmd
.
Use
)
return
cmdutil
.
UsageErrorf
(
cmd
,
"%s"
,
cmd
.
Use
)
}
}
o
.
Mapper
,
o
.
Typer
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
o
.
Resumer
=
f
.
Resumer
o
.
Resumer
=
f
.
Resumer
o
.
Out
=
out
o
.
Out
=
out
...
...
pkg/kubectl/cmd/rollout/rollout_undo.go
View file @
5432ef5c
...
@@ -20,7 +20,6 @@ import (
...
@@ -20,7 +20,6 @@ import (
"io"
"io"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
utilerrors
"k8s.io/apimachinery/pkg/util/errors"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubectl"
...
@@ -39,7 +38,6 @@ type UndoOptions struct {
...
@@ -39,7 +38,6 @@ type UndoOptions struct {
Rollbackers
[]
kubectl
.
Rollbacker
Rollbackers
[]
kubectl
.
Rollbacker
Mapper
meta
.
RESTMapper
Mapper
meta
.
RESTMapper
Typer
runtime
.
ObjectTyper
Infos
[]
*
resource
.
Info
Infos
[]
*
resource
.
Info
ToRevision
int64
ToRevision
int64
DryRun
bool
DryRun
bool
...
@@ -103,7 +101,7 @@ func (o *UndoOptions) CompleteUndo(f cmdutil.Factory, cmd *cobra.Command, out io
...
@@ -103,7 +101,7 @@ func (o *UndoOptions) CompleteUndo(f cmdutil.Factory, cmd *cobra.Command, out io
}
}
o
.
ToRevision
=
cmdutil
.
GetFlagInt64
(
cmd
,
"to-revision"
)
o
.
ToRevision
=
cmdutil
.
GetFlagInt64
(
cmd
,
"to-revision"
)
o
.
Mapper
,
o
.
Typer
=
f
.
Object
()
o
.
Mapper
=
f
.
RESTMapper
()
o
.
Out
=
out
o
.
Out
=
out
o
.
DryRun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
o
.
DryRun
=
cmdutil
.
GetDryRunFlag
(
cmd
)
...
...
pkg/kubectl/cmd/run.go
View file @
5432ef5c
...
@@ -643,8 +643,9 @@ func (o *RunOptions) createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command
...
@@ -643,8 +643,9 @@ func (o *RunOptions) createGeneratedObject(f cmdutil.Factory, cmd *cobra.Command
return
nil
,
err
return
nil
,
err
}
}
mapper
,
typer
:=
f
.
Object
()
mapper
:=
f
.
RESTMapper
()
groupVersionKinds
,
_
,
err
:=
typer
.
ObjectKinds
(
obj
)
// run has compiled knowledge of the thing is is creating
groupVersionKinds
,
_
,
err
:=
legacyscheme
.
Scheme
.
ObjectKinds
(
obj
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
pkg/kubectl/cmd/set/set_selector.go
View file @
5432ef5c
...
@@ -140,7 +140,7 @@ func (o *SetSelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg
...
@@ -140,7 +140,7 @@ func (o *SetSelectorOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg
return
err
return
err
}
}
mapper
,
_
:=
f
.
Object
()
mapper
:=
f
.
RESTMapper
()
o
.
mapper
=
mapper
o
.
mapper
=
mapper
o
.
resources
,
o
.
selector
,
err
=
getResourcesAndSelector
(
args
)
o
.
resources
,
o
.
selector
,
err
=
getResourcesAndSelector
(
args
)
...
...
pkg/kubectl/cmd/testing/fake.go
View file @
5432ef5c
...
@@ -342,7 +342,7 @@ func (f *TestFactory) Command(*cobra.Command, bool) string {
...
@@ -342,7 +342,7 @@ func (f *TestFactory) Command(*cobra.Command, bool) string {
}
}
func
(
f
*
TestFactory
)
NewBuilder
()
*
resource
.
Builder
{
func
(
f
*
TestFactory
)
NewBuilder
()
*
resource
.
Builder
{
mapper
,
_
:=
f
.
Object
()
mapper
:=
f
.
RESTMapper
()
return
resource
.
NewBuilder
(
return
resource
.
NewBuilder
(
&
resource
.
Mapper
{
&
resource
.
Mapper
{
...
@@ -430,7 +430,7 @@ func (f *TestFactory) ClientSetForVersion(requiredVersion *schema.GroupVersion)
...
@@ -430,7 +430,7 @@ func (f *TestFactory) ClientSetForVersion(requiredVersion *schema.GroupVersion)
return
f
.
ClientSet
()
return
f
.
ClientSet
()
}
}
func
(
f
*
TestFactory
)
Object
()
(
meta
.
RESTMapper
,
runtime
.
ObjectTyper
)
{
func
(
f
*
TestFactory
)
RESTMapper
()
meta
.
RESTMapper
{
groupResources
:=
testDynamicResources
()
groupResources
:=
testDynamicResources
()
mapper
:=
discovery
.
NewRESTMapper
(
mapper
:=
discovery
.
NewRESTMapper
(
groupResources
,
groupResources
,
...
@@ -457,10 +457,9 @@ func (f *TestFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
...
@@ -457,10 +457,9 @@ func (f *TestFactory) Object() (meta.RESTMapper, runtime.ObjectTyper) {
}
}
// TODO: should probably be the external scheme
// TODO: should probably be the external scheme
typer
:=
discovery
.
NewUnstructuredObjectTyper
(
groupResources
,
legacyscheme
.
Scheme
)
fakeDs
:=
&
fakeCachedDiscoveryClient
{}
fakeDs
:=
&
fakeCachedDiscoveryClient
{}
expander
:=
cmdutil
.
NewShortcutExpander
(
mapper
,
fakeDs
)
expander
:=
cmdutil
.
NewShortcutExpander
(
mapper
,
fakeDs
)
return
expander
,
typer
return
expander
}
}
func
(
f
*
TestFactory
)
LogsForObject
(
object
,
options
runtime
.
Object
,
timeout
time
.
Duration
)
(
*
restclient
.
Request
,
error
)
{
func
(
f
*
TestFactory
)
LogsForObject
(
object
,
options
runtime
.
Object
,
timeout
time
.
Duration
)
(
*
restclient
.
Request
,
error
)
{
...
...
pkg/kubectl/cmd/util/factory.go
View file @
5432ef5c
...
@@ -164,7 +164,7 @@ type ClientAccessFactory interface {
...
@@ -164,7 +164,7 @@ type ClientAccessFactory interface {
// Generally they provide object typing and functions that build requests based on the negotiated clients.
// Generally they provide object typing and functions that build requests based on the negotiated clients.
type
ObjectMappingFactory
interface
{
type
ObjectMappingFactory
interface
{
// Returns interfaces for dealing with arbitrary runtime.Objects.
// Returns interfaces for dealing with arbitrary runtime.Objects.
Object
()
(
meta
.
RESTMapper
,
runtime
.
ObjectTyper
)
RESTMapper
()
meta
.
RESTMapper
// Returns interface for expanding categories like `all`.
// Returns interface for expanding categories like `all`.
CategoryExpander
()
categories
.
CategoryExpander
CategoryExpander
()
categories
.
CategoryExpander
// Returns a RESTClient for working with the specified RESTMapping or an error. This is intended
// Returns a RESTClient for working with the specified RESTMapping or an error. This is intended
...
...
pkg/kubectl/cmd/util/factory_builder.go
View file @
5432ef5c
...
@@ -47,7 +47,7 @@ func NewBuilderFactory(clientAccessFactory ClientAccessFactory, objectMappingFac
...
@@ -47,7 +47,7 @@ func NewBuilderFactory(clientAccessFactory ClientAccessFactory, objectMappingFac
// NewBuilder returns a new resource builder for structured api objects.
// NewBuilder returns a new resource builder for structured api objects.
func
(
f
*
ring2Factory
)
NewBuilder
()
*
resource
.
Builder
{
func
(
f
*
ring2Factory
)
NewBuilder
()
*
resource
.
Builder
{
clientMapperFunc
:=
resource
.
ClientMapperFunc
(
f
.
objectMappingFactory
.
ClientForMapping
)
clientMapperFunc
:=
resource
.
ClientMapperFunc
(
f
.
objectMappingFactory
.
ClientForMapping
)
mapper
,
_
:=
f
.
objectMappingFactory
.
Object
()
mapper
:=
f
.
objectMappingFactory
.
RESTMapper
()
unstructuredClientMapperFunc
:=
resource
.
ClientMapperFunc
(
f
.
objectMappingFactory
.
UnstructuredClientForMapping
)
unstructuredClientMapperFunc
:=
resource
.
ClientMapperFunc
(
f
.
objectMappingFactory
.
UnstructuredClientForMapping
)
...
@@ -97,7 +97,7 @@ func (f *ring2Factory) ScaleClient() (scaleclient.ScalesGetter, error) {
...
@@ -97,7 +97,7 @@ func (f *ring2Factory) ScaleClient() (scaleclient.ScalesGetter, error) {
return
nil
,
err
return
nil
,
err
}
}
resolver
:=
scaleclient
.
NewDiscoveryScaleKindResolver
(
discoClient
)
resolver
:=
scaleclient
.
NewDiscoveryScaleKindResolver
(
discoClient
)
mapper
,
_
:=
f
.
objectMappingFactory
.
Object
()
mapper
:=
f
.
objectMappingFactory
.
RESTMapper
()
return
scaleclient
.
New
(
restClient
,
mapper
,
dynamic
.
LegacyAPIPathResolverFunc
,
resolver
),
nil
return
scaleclient
.
New
(
restClient
,
mapper
,
dynamic
.
LegacyAPIPathResolverFunc
,
resolver
),
nil
}
}
...
...
pkg/kubectl/cmd/util/factory_object_mapping.go
View file @
5432ef5c
...
@@ -76,34 +76,23 @@ func NewObjectMappingFactory(clientAccessFactory ClientAccessFactory) ObjectMapp
...
@@ -76,34 +76,23 @@ func NewObjectMappingFactory(clientAccessFactory ClientAccessFactory) ObjectMapp
// the built in mapper if necessary. It supports unstructured objects either way, since
// the built in mapper if necessary. It supports unstructured objects either way, since
// the underlying Scheme supports Unstructured. The mapper will return converters that can
// the underlying Scheme supports Unstructured. The mapper will return converters that can
// convert versioned types to unstructured and back.
// convert versioned types to unstructured and back.
func
(
f
*
ring1Factory
)
objectLoader
()
(
meta
.
RESTMapper
,
runtime
.
ObjectTy
per
,
error
)
{
func
(
f
*
ring1Factory
)
restMapper
()
(
meta
.
RESTMap
per
,
error
)
{
discoveryClient
,
err
:=
f
.
clientAccessFactory
.
DiscoveryClient
()
discoveryClient
,
err
:=
f
.
clientAccessFactory
.
DiscoveryClient
()
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
V
(
3
)
.
Infof
(
"Unable to get a discovery client to find server resources, falling back to hardcoded types: %v"
,
err
)
glog
.
V
(
3
)
.
Infof
(
"Unable to get a discovery client to find server resources, falling back to hardcoded types: %v"
,
err
)
return
legacyscheme
.
Registry
.
RESTMapper
(),
legacyscheme
.
Scheme
,
nil
return
legacyscheme
.
Registry
.
RESTMapper
(),
nil
}
groupResources
,
err
:=
discovery
.
GetAPIGroupResources
(
discoveryClient
)
if
err
!=
nil
&&
!
discoveryClient
.
Fresh
()
{
discoveryClient
.
Invalidate
()
groupResources
,
err
=
discovery
.
GetAPIGroupResources
(
discoveryClient
)
}
if
err
!=
nil
{
glog
.
V
(
3
)
.
Infof
(
"Unable to retrieve API resources, falling back to hardcoded types: %v"
,
err
)
return
legacyscheme
.
Registry
.
RESTMapper
(),
legacyscheme
.
Scheme
,
nil
}
}
// allow conversion between typed and unstructured objects
// allow conversion between typed and unstructured objects
interfaces
:=
meta
.
InterfacesForUnstructuredConversion
(
legacyscheme
.
Registry
.
InterfacesFor
)
interfaces
:=
meta
.
InterfacesForUnstructuredConversion
(
legacyscheme
.
Registry
.
InterfacesFor
)
mapper
:=
discovery
.
NewDeferredDiscoveryRESTMapper
(
discoveryClient
,
meta
.
VersionInterfacesFunc
(
interfaces
))
mapper
:=
discovery
.
NewDeferredDiscoveryRESTMapper
(
discoveryClient
,
meta
.
VersionInterfacesFunc
(
interfaces
))
// TODO: should this also indicate it recognizes typed objects?
// TODO: should this also indicate it recognizes typed objects?
typer
:=
discovery
.
NewUnstructuredObjectTyper
(
groupResources
,
legacyscheme
.
Scheme
)
expander
:=
NewShortcutExpander
(
mapper
,
discoveryClient
)
expander
:=
NewShortcutExpander
(
mapper
,
discoveryClient
)
return
expander
,
typer
,
err
return
expander
,
err
}
}
func
(
f
*
ring1Factory
)
Object
()
(
meta
.
RESTMapper
,
runtime
.
ObjectTyper
)
{
func
(
f
*
ring1Factory
)
RESTMapper
()
meta
.
RESTMapper
{
return
meta
.
NewLazy
ObjectLoader
(
f
.
objectLoad
er
)
return
meta
.
NewLazy
RESTMapperLoader
(
f
.
restMapp
er
)
}
}
func
(
f
*
ring1Factory
)
CategoryExpander
()
categories
.
CategoryExpander
{
func
(
f
*
ring1Factory
)
CategoryExpander
()
categories
.
CategoryExpander
{
...
...
pkg/kubectl/resource/BUILD
View file @
5432ef5c
...
@@ -29,6 +29,7 @@ go_library(
...
@@ -29,6 +29,7 @@ go_library(
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/api/errors: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",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/fields:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/fields:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/labels:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library",
...
@@ -55,6 +56,8 @@ go_test(
...
@@ -55,6 +56,8 @@ go_test(
],
],
embed = [":go_default_library"],
embed = [":go_default_library"],
deps = [
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/core/install:go_default_library",
"//pkg/kubectl/categories:go_default_library",
"//pkg/kubectl/categories: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/ghodss/yaml:go_default_library",
...
...
pkg/kubectl/resource/builder.go
View file @
5432ef5c
...
@@ -644,6 +644,11 @@ func (b *Builder) mappingFor(resourceOrKindArg string) (*meta.RESTMapping, error
...
@@ -644,6 +644,11 @@ func (b *Builder) mappingFor(resourceOrKindArg string) (*meta.RESTMapping, error
// if we error out here, it is because we could not match a resource or a kind
// if we error out here, it is because we could not match a resource or a kind
// for the given argument. To maintain consistency with previous behavior,
// for the given argument. To maintain consistency with previous behavior,
// announce that a resource type could not be found.
// announce that a resource type could not be found.
// if the error is a URL error, then we had trouble doing discovery, so we should return the original
// error since it may help a user diagnose what is actually wrong
if
_
,
ok
:=
err
.
(
*
url
.
Error
);
ok
{
return
nil
,
err
}
return
nil
,
fmt
.
Errorf
(
"the server doesn't have a resource type %q"
,
groupResource
.
Resource
)
return
nil
,
fmt
.
Errorf
(
"the server doesn't have a resource type %q"
,
groupResource
.
Resource
)
}
}
...
...
pkg/kubectl/resource/visitor.go
View file @
5432ef5c
...
@@ -188,7 +188,7 @@ func (i *Info) versioned(convertor runtime.ObjectConvertor) (runtime.Object, err
...
@@ -188,7 +188,7 @@ func (i *Info) versioned(convertor runtime.ObjectConvertor) (runtime.Object, err
// AsVersioned returns the object as a Go object in the external form if possible (matching the
// AsVersioned returns the object as a Go object in the external form if possible (matching the
// group version kind of the mapping, or i.Object if it cannot be converted.
// group version kind of the mapping, or i.Object if it cannot be converted.
// Deprecated this function will be removed once calling code is updated to indicate the correct
// Deprecated this function will be removed once calling code is updated to indicate the correct
// negoticatedserializers during contruction of the builder
// negoticatedserializers during con
s
truction of the builder
func
(
i
*
Info
)
AsVersioned
(
convertor
runtime
.
ObjectConvertor
)
runtime
.
Object
{
func
(
i
*
Info
)
AsVersioned
(
convertor
runtime
.
ObjectConvertor
)
runtime
.
Object
{
if
obj
,
err
:=
i
.
versioned
(
convertor
);
err
==
nil
{
if
obj
,
err
:=
i
.
versioned
(
convertor
);
err
==
nil
{
return
obj
return
obj
...
...
staging/src/k8s.io/apimachinery/pkg/api/meta/lazy.go
View file @
5432ef5c
...
@@ -19,27 +19,25 @@ package meta
...
@@ -19,27 +19,25 @@ package meta
import
(
import
(
"sync"
"sync"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
)
)
// lazyObject defers loading the mapper and typer until necessary.
// lazyObject defers loading the mapper and typer until necessary.
type
lazyObject
struct
{
type
lazyObject
struct
{
loader
func
()
(
RESTMapper
,
runtime
.
ObjectTyper
,
error
)
loader
func
()
(
RESTMapper
,
error
)
lock
sync
.
Mutex
lock
sync
.
Mutex
loaded
bool
loaded
bool
err
error
err
error
mapper
RESTMapper
mapper
RESTMapper
typer
runtime
.
ObjectTyper
}
}
// NewLazyObjectLoader handles unrecoverable errors when creating a RESTMapper / ObjectTyper by
// NewLazyObjectLoader handles unrecoverable errors when creating a RESTMapper / ObjectTyper by
// returning those initialization errors when the interface methods are invoked. This defers the
// returning those initialization errors when the interface methods are invoked. This defers the
// initialization and any server calls until a client actually needs to perform the action.
// initialization and any server calls until a client actually needs to perform the action.
func
NewLazy
ObjectLoader
(
fn
func
()
(
RESTMapper
,
runtime
.
ObjectTyper
,
error
))
(
RESTMapper
,
runtime
.
ObjectTyper
)
{
func
NewLazy
RESTMapperLoader
(
fn
func
()
(
RESTMapper
,
error
))
RESTMapper
{
obj
:=
&
lazyObject
{
loader
:
fn
}
obj
:=
&
lazyObject
{
loader
:
fn
}
return
obj
,
obj
return
obj
}
}
// init lazily loads the mapper and typer, returning an error if initialization has failed.
// init lazily loads the mapper and typer, returning an error if initialization has failed.
...
@@ -49,13 +47,12 @@ func (o *lazyObject) init() error {
...
@@ -49,13 +47,12 @@ func (o *lazyObject) init() error {
if
o
.
loaded
{
if
o
.
loaded
{
return
o
.
err
return
o
.
err
}
}
o
.
mapper
,
o
.
typer
,
o
.
err
=
o
.
loader
()
o
.
mapper
,
o
.
err
=
o
.
loader
()
o
.
loaded
=
true
o
.
loaded
=
true
return
o
.
err
return
o
.
err
}
}
var
_
RESTMapper
=
&
lazyObject
{}
var
_
RESTMapper
=
&
lazyObject
{}
var
_
runtime
.
ObjectTyper
=
&
lazyObject
{}
func
(
o
*
lazyObject
)
KindFor
(
resource
schema
.
GroupVersionResource
)
(
schema
.
GroupVersionKind
,
error
)
{
func
(
o
*
lazyObject
)
KindFor
(
resource
schema
.
GroupVersionResource
)
(
schema
.
GroupVersionKind
,
error
)
{
if
err
:=
o
.
init
();
err
!=
nil
{
if
err
:=
o
.
init
();
err
!=
nil
{
...
@@ -105,17 +102,3 @@ func (o *lazyObject) ResourceSingularizer(resource string) (singular string, err
...
@@ -105,17 +102,3 @@ func (o *lazyObject) ResourceSingularizer(resource string) (singular string, err
}
}
return
o
.
mapper
.
ResourceSingularizer
(
resource
)
return
o
.
mapper
.
ResourceSingularizer
(
resource
)
}
}
func
(
o
*
lazyObject
)
ObjectKinds
(
obj
runtime
.
Object
)
([]
schema
.
GroupVersionKind
,
bool
,
error
)
{
if
err
:=
o
.
init
();
err
!=
nil
{
return
nil
,
false
,
err
}
return
o
.
typer
.
ObjectKinds
(
obj
)
}
func
(
o
*
lazyObject
)
Recognizes
(
gvk
schema
.
GroupVersionKind
)
bool
{
if
err
:=
o
.
init
();
err
!=
nil
{
return
false
}
return
o
.
typer
.
Recognizes
(
gvk
)
}
test/integration/apiserver/print_test.go
View file @
5432ef5c
...
@@ -147,7 +147,7 @@ func TestServerSidePrint(t *testing.T) {
...
@@ -147,7 +147,7 @@ func TestServerSidePrint(t *testing.T) {
printer
:=
newFakePrinter
(
printersinternal
.
AddHandlers
)
printer
:=
newFakePrinter
(
printersinternal
.
AddHandlers
)
factory
:=
util
.
NewFactory
(
clientcmd
.
NewDefaultClientConfig
(
*
createKubeConfig
(
s
.
URL
),
&
clientcmd
.
ConfigOverrides
{}))
factory
:=
util
.
NewFactory
(
clientcmd
.
NewDefaultClientConfig
(
*
createKubeConfig
(
s
.
URL
),
&
clientcmd
.
ConfigOverrides
{}))
mapper
,
_
:=
factory
.
Object
()
mapper
:=
factory
.
RESTMapper
()
for
gvk
,
apiType
:=
range
legacyscheme
.
Scheme
.
AllKnownTypes
()
{
for
gvk
,
apiType
:=
range
legacyscheme
.
Scheme
.
AllKnownTypes
()
{
// we do not care about internal objects or lists // TODO make sure this is always true
// we do not care about internal objects or lists // TODO make sure this is always true
...
...
test/integration/etcd/etcd_storage_path_test.go
View file @
5432ef5c
...
@@ -811,7 +811,7 @@ func startRealMasterOrDie(t *testing.T, certDir string) (*allClient, clientv3.KV
...
@@ -811,7 +811,7 @@ func startRealMasterOrDie(t *testing.T, certDir string) (*allClient, clientv3.KV
t
.
Fatal
(
err
)
t
.
Fatal
(
err
)
}
}
mapper
,
_
:=
util
.
NewFactory
(
clientcmd
.
NewDefaultClientConfig
(
*
clientcmdapi
.
NewConfig
(),
&
clientcmd
.
ConfigOverrides
{}))
.
Object
()
mapper
:=
util
.
NewFactory
(
clientcmd
.
NewDefaultClientConfig
(
*
clientcmdapi
.
NewConfig
(),
&
clientcmd
.
ConfigOverrides
{}))
.
RESTMapper
()
return
client
,
kvClient
,
mapper
return
client
,
kvClient
,
mapper
}
}
...
...
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