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
f505a339
Commit
f505a339
authored
Mar 03, 2015
by
Brendan Burns
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Differentiate between server error messages and client error messages in kubectl
parent
53ec66ca
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
142 additions
and
114 deletions
+142
-114
errors.go
pkg/api/errors/errors.go
+12
-0
request.go
pkg/client/request.go
+8
-1
clusterinfo.go
pkg/kubectl/cmd/clusterinfo.go
+3
-2
cmd.go
pkg/kubectl/cmd/cmd.go
+2
-8
create.go
pkg/kubectl/cmd/create.go
+6
-5
delete.go
pkg/kubectl/cmd/delete.go
+3
-3
describe.go
pkg/kubectl/cmd/describe.go
+3
-3
exec.go
pkg/kubectl/cmd/exec.go
+5
-5
expose.go
pkg/kubectl/cmd/expose.go
+8
-8
get.go
pkg/kubectl/cmd/get.go
+13
-13
label.go
pkg/kubectl/cmd/label.go
+6
-6
log.go
pkg/kubectl/cmd/log.go
+5
-5
portforward.go
pkg/kubectl/cmd/portforward.go
+7
-6
proxy.go
pkg/kubectl/cmd/proxy.go
+2
-2
resize.go
pkg/kubectl/cmd/resize.go
+3
-3
rollingupdate.go
pkg/kubectl/cmd/rollingupdate.go
+8
-8
run.go
pkg/kubectl/cmd/run.go
+7
-7
stop.go
pkg/kubectl/cmd/stop.go
+4
-3
update.go
pkg/kubectl/cmd/update.go
+10
-10
helpers.go
pkg/kubectl/cmd/util/helpers.go
+15
-4
resource.go
pkg/kubectl/cmd/util/resource.go
+11
-11
version.go
pkg/kubectl/cmd/version.go
+1
-1
No files found.
pkg/api/errors/errors.go
View file @
f505a339
...
@@ -262,6 +262,18 @@ func IsServerTimeout(err error) bool {
...
@@ -262,6 +262,18 @@ func IsServerTimeout(err error) bool {
return
reasonForError
(
err
)
==
api
.
StatusReasonServerTimeout
return
reasonForError
(
err
)
==
api
.
StatusReasonServerTimeout
}
}
// IsStatusError determines if err is an API Status error received from the master.
func
IsStatusError
(
err
error
)
bool
{
_
,
ok
:=
err
.
(
*
StatusError
)
return
ok
}
// IsUnexpectedObjectError determines if err is due to an unexpected object from the master.
func
IsUnexpectedObjectError
(
err
error
)
bool
{
_
,
ok
:=
err
.
(
*
UnexpectedObjectError
)
return
ok
}
func
reasonForError
(
err
error
)
api
.
StatusReason
{
func
reasonForError
(
err
error
)
api
.
StatusReason
{
switch
t
:=
err
.
(
type
)
{
switch
t
:=
err
.
(
type
)
{
case
*
StatusError
:
case
*
StatusError
:
...
...
pkg/client/request.go
View file @
f505a339
...
@@ -62,6 +62,12 @@ func (u *UnexpectedStatusError) Error() string {
...
@@ -62,6 +62,12 @@ func (u *UnexpectedStatusError) Error() string {
return
fmt
.
Sprintf
(
"request [%+v] failed (%d) %s: %s"
,
u
.
Request
,
u
.
Response
.
StatusCode
,
u
.
Response
.
Status
,
u
.
Body
)
return
fmt
.
Sprintf
(
"request [%+v] failed (%d) %s: %s"
,
u
.
Request
,
u
.
Response
.
StatusCode
,
u
.
Response
.
Status
,
u
.
Body
)
}
}
// IsUnexpectedStatusError determines if err is due to an unexpected status from the server.
func
IsUnexpectedStatusError
(
err
error
)
bool
{
_
,
ok
:=
err
.
(
*
UnexpectedStatusError
)
return
ok
}
// RequestConstructionError is returned when there's an error assembling a request.
// RequestConstructionError is returned when there's an error assembling a request.
type
RequestConstructionError
struct
{
type
RequestConstructionError
struct
{
Err
error
Err
error
...
@@ -576,7 +582,8 @@ func (r *Request) transformResponse(body []byte, resp *http.Response, req *http.
...
@@ -576,7 +582,8 @@ func (r *Request) transformResponse(body []byte, resp *http.Response, req *http.
// no-op, we've been upgraded
// no-op, we've been upgraded
case
resp
.
StatusCode
<
http
.
StatusOK
||
resp
.
StatusCode
>
http
.
StatusPartialContent
:
case
resp
.
StatusCode
<
http
.
StatusOK
||
resp
.
StatusCode
>
http
.
StatusPartialContent
:
if
!
isStatusResponse
{
if
!
isStatusResponse
{
var
err
error
=
&
UnexpectedStatusError
{
var
err
error
err
=
&
UnexpectedStatusError
{
Request
:
req
,
Request
:
req
,
Response
:
resp
,
Response
:
resp
,
Body
:
string
(
body
),
Body
:
string
(
body
),
...
...
pkg/kubectl/cmd/clusterinfo.go
View file @
f505a339
...
@@ -22,6 +22,7 @@ import (
...
@@ -22,6 +22,7 @@ import (
"strings"
"strings"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
...
@@ -41,12 +42,12 @@ func (f *Factory) NewCmdClusterInfo(out io.Writer) *cobra.Command {
...
@@ -41,12 +42,12 @@ func (f *Factory) NewCmdClusterInfo(out io.Writer) *cobra.Command {
func
RunClusterInfo
(
factory
*
Factory
,
out
io
.
Writer
,
cmd
*
cobra
.
Command
)
{
func
RunClusterInfo
(
factory
*
Factory
,
out
io
.
Writer
,
cmd
*
cobra
.
Command
)
{
client
,
err
:=
factory
.
ClientConfig
(
cmd
)
client
,
err
:=
factory
.
ClientConfig
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
fmt
.
Fprintf
(
out
,
"Kubernetes master is running at %v
\n
"
,
client
.
Host
)
fmt
.
Fprintf
(
out
,
"Kubernetes master is running at %v
\n
"
,
client
.
Host
)
mapper
,
typer
:=
factory
.
Object
(
cmd
)
mapper
,
typer
:=
factory
.
Object
(
cmd
)
cmdNamespace
,
err
:=
factory
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
factory
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
// TODO: use generalized labels once they are implemented (#341)
// TODO: use generalized labels once they are implemented (#341)
b
:=
resource
.
NewBuilder
(
mapper
,
typer
,
factory
.
ClientMapperForCommand
(
cmd
))
.
b
:=
resource
.
NewBuilder
(
mapper
,
typer
,
factory
.
ClientMapperForCommand
(
cmd
))
.
...
...
pkg/kubectl/cmd/cmd.go
View file @
f505a339
...
@@ -97,7 +97,7 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
...
@@ -97,7 +97,7 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
Object
:
func
(
cmd
*
cobra
.
Command
)
(
meta
.
RESTMapper
,
runtime
.
ObjectTyper
)
{
Object
:
func
(
cmd
*
cobra
.
Command
)
(
meta
.
RESTMapper
,
runtime
.
ObjectTyper
)
{
cfg
,
err
:=
clientConfig
.
ClientConfig
()
cfg
,
err
:=
clientConfig
.
ClientConfig
()
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
cmdApiVersion
:=
cfg
.
Version
cmdApiVersion
:=
cfg
.
Version
return
kubectl
.
OutputVersionMapper
{
mapper
,
cmdApiVersion
},
api
.
Scheme
return
kubectl
.
OutputVersionMapper
{
mapper
,
cmdApiVersion
},
api
.
Scheme
...
@@ -253,7 +253,7 @@ func (f *Factory) PrinterForMapping(cmd *cobra.Command, mapping *meta.RESTMappin
...
@@ -253,7 +253,7 @@ func (f *Factory) PrinterForMapping(cmd *cobra.Command, mapping *meta.RESTMappin
}
}
if
ok
{
if
ok
{
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
defaultVersion
:=
clientConfig
.
Version
defaultVersion
:=
clientConfig
.
Version
version
:=
cmdutil
.
OutputVersion
(
cmd
,
defaultVersion
)
version
:=
cmdutil
.
OutputVersion
(
cmd
,
defaultVersion
)
...
@@ -329,12 +329,6 @@ func DefaultClientConfig(flags *pflag.FlagSet) clientcmd.ClientConfig {
...
@@ -329,12 +329,6 @@ func DefaultClientConfig(flags *pflag.FlagSet) clientcmd.ClientConfig {
return
clientConfig
return
clientConfig
}
}
func
checkErr
(
err
error
)
{
if
err
!=
nil
{
glog
.
FatalDepth
(
1
,
err
.
Error
())
}
}
func
usageError
(
cmd
*
cobra
.
Command
,
format
string
,
args
...
interface
{})
{
func
usageError
(
cmd
*
cobra
.
Command
,
format
string
,
args
...
interface
{})
{
glog
.
Errorf
(
format
,
args
...
)
glog
.
Errorf
(
format
,
args
...
)
glog
.
Errorf
(
"See '%s -h' for help."
,
cmd
.
CommandPath
())
glog
.
Errorf
(
"See '%s -h' for help."
,
cmd
.
CommandPath
())
...
...
pkg/kubectl/cmd/create.go
View file @
f505a339
...
@@ -22,6 +22,7 @@ import (
...
@@ -22,6 +22,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
cmdutil
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
)
)
...
@@ -48,10 +49,10 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command {
...
@@ -48,10 +49,10 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command {
Example
:
create_example
,
Example
:
create_example
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
schema
,
err
:=
f
.
Validator
(
cmd
)
schema
,
err
:=
f
.
Validator
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
r
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
r
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
...
@@ -60,7 +61,7 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command {
...
@@ -60,7 +61,7 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command {
FilenameParam
(
flags
.
Filenames
...
)
.
FilenameParam
(
flags
.
Filenames
...
)
.
Flatten
()
.
Flatten
()
.
Do
()
Do
()
checkErr
(
r
.
Err
())
c
mdutil
.
C
heckErr
(
r
.
Err
())
count
:=
0
count
:=
0
err
=
r
.
Visit
(
func
(
info
*
resource
.
Info
)
error
{
err
=
r
.
Visit
(
func
(
info
*
resource
.
Info
)
error
{
...
@@ -80,9 +81,9 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command {
...
@@ -80,9 +81,9 @@ func (f *Factory) NewCmdCreate(out io.Writer) *cobra.Command {
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
info
.
Name
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
info
.
Name
)
return
nil
return
nil
})
})
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
if
count
==
0
{
if
count
==
0
{
checkErr
(
fmt
.
Errorf
(
"no objects passed to create"
))
c
mdutil
.
C
heckErr
(
fmt
.
Errorf
(
"no objects passed to create"
))
}
}
},
},
}
}
...
...
pkg/kubectl/cmd/delete.go
View file @
f505a339
...
@@ -66,7 +66,7 @@ func (f *Factory) NewCmdDelete(out io.Writer) *cobra.Command {
...
@@ -66,7 +66,7 @@ func (f *Factory) NewCmdDelete(out io.Writer) *cobra.Command {
Example
:
delete_example
,
Example
:
delete_example
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
r
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
r
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
ContinueOnError
()
.
ContinueOnError
()
.
...
@@ -77,7 +77,7 @@ func (f *Factory) NewCmdDelete(out io.Writer) *cobra.Command {
...
@@ -77,7 +77,7 @@ func (f *Factory) NewCmdDelete(out io.Writer) *cobra.Command {
ResourceTypeOrNameArgs
(
false
,
args
...
)
.
ResourceTypeOrNameArgs
(
false
,
args
...
)
.
Flatten
()
.
Flatten
()
.
Do
()
Do
()
checkErr
(
r
.
Err
())
c
mdutil
.
C
heckErr
(
r
.
Err
())
found
:=
0
found
:=
0
err
=
r
.
IgnoreErrors
(
errors
.
IsNotFound
)
.
Visit
(
func
(
r
*
resource
.
Info
)
error
{
err
=
r
.
IgnoreErrors
(
errors
.
IsNotFound
)
.
Visit
(
func
(
r
*
resource
.
Info
)
error
{
...
@@ -88,7 +88,7 @@ func (f *Factory) NewCmdDelete(out io.Writer) *cobra.Command {
...
@@ -88,7 +88,7 @@ func (f *Factory) NewCmdDelete(out io.Writer) *cobra.Command {
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
r
.
Name
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
r
.
Name
)
return
nil
return
nil
})
})
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
if
found
==
0
{
if
found
==
0
{
fmt
.
Fprintf
(
cmd
.
Out
(),
"No resources found
\n
"
)
fmt
.
Fprintf
(
cmd
.
Out
(),
"No resources found
\n
"
)
}
}
...
...
pkg/kubectl/cmd/describe.go
View file @
f505a339
...
@@ -34,17 +34,17 @@ This command joins many API calls together to form a detailed description of a
...
@@ -34,17 +34,17 @@ This command joins many API calls together to form a detailed description of a
given resource.`
,
given resource.`
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
mapper
,
_
:=
f
.
Object
(
cmd
)
mapper
,
_
:=
f
.
Object
(
cmd
)
// TODO: use resource.Builder instead
// TODO: use resource.Builder instead
mapping
,
namespace
,
name
:=
util
.
ResourceFromArgs
(
cmd
,
args
,
mapper
,
cmdNamespace
)
mapping
,
namespace
,
name
:=
util
.
ResourceFromArgs
(
cmd
,
args
,
mapper
,
cmdNamespace
)
describer
,
err
:=
f
.
Describer
(
cmd
,
mapping
)
describer
,
err
:=
f
.
Describer
(
cmd
,
mapping
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
s
,
err
:=
describer
.
Describe
(
namespace
,
name
)
s
,
err
:=
describer
.
Describe
(
namespace
,
name
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
s
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
s
)
},
},
}
}
...
...
pkg/kubectl/cmd/exec.go
View file @
f505a339
...
@@ -61,13 +61,13 @@ func (f *Factory) NewCmdExec(cmdIn io.Reader, cmdOut, cmdErr io.Writer) *cobra.C
...
@@ -61,13 +61,13 @@ func (f *Factory) NewCmdExec(cmdIn io.Reader, cmdOut, cmdErr io.Writer) *cobra.C
}
}
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
pod
,
err
:=
client
.
Pods
(
namespace
)
.
Get
(
flags
.
pod
)
pod
,
err
:=
client
.
Pods
(
namespace
)
.
Get
(
flags
.
pod
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
if
pod
.
Status
.
Phase
!=
api
.
PodRunning
{
if
pod
.
Status
.
Phase
!=
api
.
PodRunning
{
glog
.
Fatalf
(
"Unable to execute command because pod is not running. Current status=%v"
,
pod
.
Status
.
Phase
)
glog
.
Fatalf
(
"Unable to execute command because pod is not running. Current status=%v"
,
pod
.
Status
.
Phase
)
...
@@ -113,7 +113,7 @@ func (f *Factory) NewCmdExec(cmdIn io.Reader, cmdOut, cmdErr io.Writer) *cobra.C
...
@@ -113,7 +113,7 @@ func (f *Factory) NewCmdExec(cmdIn io.Reader, cmdOut, cmdErr io.Writer) *cobra.C
}
}
config
,
err
:=
f
.
ClientConfig
(
cmd
)
config
,
err
:=
f
.
ClientConfig
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
req
:=
client
.
RESTClient
.
Get
()
.
req
:=
client
.
RESTClient
.
Get
()
.
Prefix
(
"proxy"
)
.
Prefix
(
"proxy"
)
.
...
@@ -123,7 +123,7 @@ func (f *Factory) NewCmdExec(cmdIn io.Reader, cmdOut, cmdErr io.Writer) *cobra.C
...
@@ -123,7 +123,7 @@ func (f *Factory) NewCmdExec(cmdIn io.Reader, cmdOut, cmdErr io.Writer) *cobra.C
e
:=
remotecommand
.
New
(
req
,
config
,
args
,
stdin
,
cmdOut
,
cmdErr
,
flags
.
tty
)
e
:=
remotecommand
.
New
(
req
,
config
,
args
,
stdin
,
cmdOut
,
cmdErr
,
flags
.
tty
)
err
=
e
.
Execute
()
err
=
e
.
Execute
()
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
},
},
}
}
cmd
.
Flags
()
.
StringVarP
(
&
flags
.
pod
,
"pod"
,
"p"
,
""
,
"Pod name"
)
cmd
.
Flags
()
.
StringVarP
(
&
flags
.
pod
,
"pod"
,
"p"
,
""
,
"Pod name"
)
...
...
pkg/kubectl/cmd/expose.go
View file @
f505a339
...
@@ -51,9 +51,9 @@ func (f *Factory) NewCmdExposeService(out io.Writer) *cobra.Command {
...
@@ -51,9 +51,9 @@ func (f *Factory) NewCmdExposeService(out io.Writer) *cobra.Command {
}
}
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
generatorName
:=
util
.
GetFlagString
(
cmd
,
"generator"
)
generatorName
:=
util
.
GetFlagString
(
cmd
,
"generator"
)
...
@@ -73,7 +73,7 @@ func (f *Factory) NewCmdExposeService(out io.Writer) *cobra.Command {
...
@@ -73,7 +73,7 @@ func (f *Factory) NewCmdExposeService(out io.Writer) *cobra.Command {
}
}
if
_
,
found
:=
params
[
"selector"
];
!
found
{
if
_
,
found
:=
params
[
"selector"
];
!
found
{
rc
,
err
:=
client
.
ReplicationControllers
(
namespace
)
.
Get
(
args
[
0
])
rc
,
err
:=
client
.
ReplicationControllers
(
namespace
)
.
Get
(
args
[
0
])
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
params
[
"selector"
]
=
kubectl
.
MakeLabels
(
rc
.
Spec
.
Selector
)
params
[
"selector"
]
=
kubectl
.
MakeLabels
(
rc
.
Spec
.
Selector
)
}
}
if
util
.
GetFlagBool
(
cmd
,
"create-external-load-balancer"
)
{
if
util
.
GetFlagBool
(
cmd
,
"create-external-load-balancer"
)
{
...
@@ -81,25 +81,25 @@ func (f *Factory) NewCmdExposeService(out io.Writer) *cobra.Command {
...
@@ -81,25 +81,25 @@ func (f *Factory) NewCmdExposeService(out io.Writer) *cobra.Command {
}
}
err
=
kubectl
.
ValidateParams
(
names
,
params
)
err
=
kubectl
.
ValidateParams
(
names
,
params
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
service
,
err
:=
generator
.
Generate
(
params
)
service
,
err
:=
generator
.
Generate
(
params
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
inline
:=
util
.
GetFlagString
(
cmd
,
"overrides"
)
inline
:=
util
.
GetFlagString
(
cmd
,
"overrides"
)
if
len
(
inline
)
>
0
{
if
len
(
inline
)
>
0
{
service
,
err
=
util
.
Merge
(
service
,
inline
,
"Service"
)
service
,
err
=
util
.
Merge
(
service
,
inline
,
"Service"
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
}
}
// TODO: extract this flag to a central location, when such a location exists.
// TODO: extract this flag to a central location, when such a location exists.
if
!
util
.
GetFlagBool
(
cmd
,
"dry-run"
)
{
if
!
util
.
GetFlagBool
(
cmd
,
"dry-run"
)
{
service
,
err
=
client
.
Services
(
namespace
)
.
Create
(
service
.
(
*
api
.
Service
))
service
,
err
=
client
.
Services
(
namespace
)
.
Create
(
service
.
(
*
api
.
Service
))
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
}
}
err
=
f
.
PrintObject
(
cmd
,
service
,
out
)
err
=
f
.
PrintObject
(
cmd
,
service
,
out
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
},
},
}
}
util
.
AddPrinterFlags
(
cmd
)
util
.
AddPrinterFlags
(
cmd
)
...
...
pkg/kubectl/cmd/get.go
View file @
f505a339
...
@@ -81,7 +81,7 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -81,7 +81,7 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
mapper
,
typer
:=
f
.
Object
(
cmd
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
// handle watch separately since we cannot watch multiple resource types
// handle watch separately since we cannot watch multiple resource types
isWatch
,
isWatchOnly
:=
util
.
GetFlagBool
(
cmd
,
"watch"
),
util
.
GetFlagBool
(
cmd
,
"watch-only"
)
isWatch
,
isWatchOnly
:=
util
.
GetFlagBool
(
cmd
,
"watch"
),
util
.
GetFlagBool
(
cmd
,
"watch-only"
)
...
@@ -92,30 +92,30 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -92,30 +92,30 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
ResourceTypeOrNameArgs
(
true
,
args
...
)
.
ResourceTypeOrNameArgs
(
true
,
args
...
)
.
SingleResourceType
()
.
SingleResourceType
()
.
Do
()
Do
()
c
heckErr
(
r
.
Err
())
util
.
C
heckErr
(
r
.
Err
())
mapping
,
err
:=
r
.
ResourceMapping
()
mapping
,
err
:=
r
.
ResourceMapping
()
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
printer
,
err
:=
f
.
PrinterForMapping
(
cmd
,
mapping
)
printer
,
err
:=
f
.
PrinterForMapping
(
cmd
,
mapping
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
obj
,
err
:=
r
.
Object
()
obj
,
err
:=
r
.
Object
()
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
rv
,
err
:=
mapping
.
MetadataAccessor
.
ResourceVersion
(
obj
)
rv
,
err
:=
mapping
.
MetadataAccessor
.
ResourceVersion
(
obj
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
// print the current object
// print the current object
if
!
isWatchOnly
{
if
!
isWatchOnly
{
if
err
:=
printer
.
PrintObj
(
obj
,
out
);
err
!=
nil
{
if
err
:=
printer
.
PrintObj
(
obj
,
out
);
err
!=
nil
{
c
heckErr
(
fmt
.
Errorf
(
"unable to output the provided object: %v"
,
err
))
util
.
C
heckErr
(
fmt
.
Errorf
(
"unable to output the provided object: %v"
,
err
))
}
}
}
}
// print watched changes
// print watched changes
w
,
err
:=
r
.
Watch
(
rv
)
w
,
err
:=
r
.
Watch
(
rv
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
kubectl
.
WatchLoop
(
w
,
func
(
e
watch
.
Event
)
error
{
kubectl
.
WatchLoop
(
w
,
func
(
e
watch
.
Event
)
error
{
return
printer
.
PrintObj
(
e
.
Object
,
out
)
return
printer
.
PrintObj
(
e
.
Object
,
out
)
...
@@ -129,11 +129,11 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -129,11 +129,11 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
ResourceTypeOrNameArgs
(
true
,
args
...
)
.
ResourceTypeOrNameArgs
(
true
,
args
...
)
.
Latest
()
Latest
()
printer
,
generic
,
err
:=
util
.
PrinterForCommand
(
cmd
)
printer
,
generic
,
err
:=
util
.
PrinterForCommand
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
if
generic
{
if
generic
{
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
defaultVersion
:=
clientConfig
.
Version
defaultVersion
:=
clientConfig
.
Version
// the outermost object will be converted to the output-version
// the outermost object will be converted to the output-version
...
@@ -141,7 +141,7 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -141,7 +141,7 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
r
:=
b
.
Flatten
()
.
Do
()
r
:=
b
.
Flatten
()
.
Do
()
obj
,
err
:=
r
.
Object
()
obj
,
err
:=
r
.
Object
()
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
// try conversion to all the possible versions
// try conversion to all the possible versions
// TODO: simplify by adding a ResourceBuilder mode
// TODO: simplify by adding a ResourceBuilder mode
...
@@ -158,7 +158,7 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -158,7 +158,7 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
printer
:=
kubectl
.
NewVersionedPrinter
(
printer
,
api
.
Scheme
,
versions
...
)
printer
:=
kubectl
.
NewVersionedPrinter
(
printer
,
api
.
Scheme
,
versions
...
)
err
=
printer
.
PrintObj
(
obj
,
out
)
err
=
printer
.
PrintObj
(
obj
,
out
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
return
return
}
}
...
@@ -170,5 +170,5 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
...
@@ -170,5 +170,5 @@ func RunGet(f *Factory, out io.Writer, cmd *cobra.Command, args []string) {
}
}
return
printer
.
PrintObj
(
r
.
Object
,
out
)
return
printer
.
PrintObj
(
r
.
Object
,
out
)
})
})
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
}
}
pkg/kubectl/cmd/label.go
View file @
f505a339
...
@@ -63,28 +63,28 @@ func (f *Factory) NewCmdLabel(out io.Writer) *cobra.Command {
...
@@ -63,28 +63,28 @@ func (f *Factory) NewCmdLabel(out io.Writer) *cobra.Command {
}
}
res
:=
args
[
:
2
]
res
:=
args
[
:
2
]
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
mapper
,
_
:=
f
.
Object
(
cmd
)
mapper
,
_
:=
f
.
Object
(
cmd
)
// TODO: use resource.Builder instead
// TODO: use resource.Builder instead
mapping
,
namespace
,
name
:=
util
.
ResourceFromArgs
(
cmd
,
res
,
mapper
,
cmdNamespace
)
mapping
,
namespace
,
name
:=
util
.
ResourceFromArgs
(
cmd
,
res
,
mapper
,
cmdNamespace
)
client
,
err
:=
f
.
RESTClient
(
cmd
,
mapping
)
client
,
err
:=
f
.
RESTClient
(
cmd
,
mapping
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
labels
,
remove
,
err
:=
parseLabels
(
args
[
2
:
])
labels
,
remove
,
err
:=
parseLabels
(
args
[
2
:
])
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
overwrite
:=
util
.
GetFlagBool
(
cmd
,
"overwrite"
)
overwrite
:=
util
.
GetFlagBool
(
cmd
,
"overwrite"
)
resourceVersion
:=
util
.
GetFlagString
(
cmd
,
"resource-version"
)
resourceVersion
:=
util
.
GetFlagString
(
cmd
,
"resource-version"
)
obj
,
err
:=
updateObject
(
client
,
mapping
,
namespace
,
name
,
func
(
obj
runtime
.
Object
)
runtime
.
Object
{
obj
,
err
:=
updateObject
(
client
,
mapping
,
namespace
,
name
,
func
(
obj
runtime
.
Object
)
runtime
.
Object
{
outObj
,
err
:=
labelFunc
(
obj
,
overwrite
,
resourceVersion
,
labels
,
remove
)
outObj
,
err
:=
labelFunc
(
obj
,
overwrite
,
resourceVersion
,
labels
,
remove
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
return
outObj
return
outObj
})
})
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
printer
,
err
:=
f
.
PrinterForMapping
(
cmd
,
mapping
)
printer
,
err
:=
f
.
PrinterForMapping
(
cmd
,
mapping
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
printer
.
PrintObj
(
obj
,
out
)
printer
.
PrintObj
(
obj
,
out
)
},
},
...
...
pkg/kubectl/cmd/log.go
View file @
f505a339
...
@@ -74,14 +74,14 @@ func (f *Factory) NewCmdLog(out io.Writer) *cobra.Command {
...
@@ -74,14 +74,14 @@ func (f *Factory) NewCmdLog(out io.Writer) *cobra.Command {
}
}
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
podID
:=
args
[
0
]
podID
:=
args
[
0
]
pod
,
err
:=
client
.
Pods
(
namespace
)
.
Get
(
podID
)
pod
,
err
:=
client
.
Pods
(
namespace
)
.
Get
(
podID
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
var
container
string
var
container
string
if
len
(
args
)
==
1
{
if
len
(
args
)
==
1
{
...
@@ -111,11 +111,11 @@ func (f *Factory) NewCmdLog(out io.Writer) *cobra.Command {
...
@@ -111,11 +111,11 @@ func (f *Factory) NewCmdLog(out io.Writer) *cobra.Command {
Suffix
(
"containerLogs"
,
namespace
,
podID
,
container
)
.
Suffix
(
"containerLogs"
,
namespace
,
podID
,
container
)
.
Param
(
"follow"
,
strconv
.
FormatBool
(
follow
))
.
Param
(
"follow"
,
strconv
.
FormatBool
(
follow
))
.
Stream
()
Stream
()
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
defer
readCloser
.
Close
()
defer
readCloser
.
Close
()
_
,
err
=
io
.
Copy
(
out
,
readCloser
)
_
,
err
=
io
.
Copy
(
out
,
readCloser
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
},
},
}
}
cmd
.
Flags
()
.
BoolP
(
"follow"
,
"f"
,
false
,
"Specify if the logs should be streamed."
)
cmd
.
Flags
()
.
BoolP
(
"follow"
,
"f"
,
false
,
"Specify if the logs should be streamed."
)
...
...
pkg/kubectl/cmd/portforward.go
View file @
f505a339
...
@@ -22,6 +22,7 @@ import (
...
@@ -22,6 +22,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/portforward"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client/portforward"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/golang/glog"
"github.com/golang/glog"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
...
@@ -61,20 +62,20 @@ func (f *Factory) NewCmdPortForward() *cobra.Command {
...
@@ -61,20 +62,20 @@ func (f *Factory) NewCmdPortForward() *cobra.Command {
}
}
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
pod
,
err
:=
client
.
Pods
(
namespace
)
.
Get
(
flags
.
pod
)
pod
,
err
:=
client
.
Pods
(
namespace
)
.
Get
(
flags
.
pod
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
if
pod
.
Status
.
Phase
!=
api
.
PodRunning
{
if
pod
.
Status
.
Phase
!=
api
.
PodRunning
{
glog
.
Fatalf
(
"Unable to execute command because pod is not running. Current status=%v"
,
pod
.
Status
.
Phase
)
glog
.
Fatalf
(
"Unable to execute command because pod is not running. Current status=%v"
,
pod
.
Status
.
Phase
)
}
}
config
,
err
:=
f
.
ClientConfig
(
cmd
)
config
,
err
:=
f
.
ClientConfig
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
signals
:=
make
(
chan
os
.
Signal
,
1
)
signals
:=
make
(
chan
os
.
Signal
,
1
)
signal
.
Notify
(
signals
,
os
.
Interrupt
)
signal
.
Notify
(
signals
,
os
.
Interrupt
)
...
@@ -93,10 +94,10 @@ func (f *Factory) NewCmdPortForward() *cobra.Command {
...
@@ -93,10 +94,10 @@ func (f *Factory) NewCmdPortForward() *cobra.Command {
Suffix
(
"portForward"
,
namespace
,
flags
.
pod
)
Suffix
(
"portForward"
,
namespace
,
flags
.
pod
)
pf
,
err
:=
portforward
.
New
(
req
,
config
,
args
,
stopCh
)
pf
,
err
:=
portforward
.
New
(
req
,
config
,
args
,
stopCh
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
err
=
pf
.
ForwardPorts
()
err
=
pf
.
ForwardPorts
()
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
},
},
}
}
cmd
.
Flags
()
.
StringVarP
(
&
flags
.
pod
,
"pod"
,
"p"
,
""
,
"Pod name"
)
cmd
.
Flags
()
.
StringVarP
(
&
flags
.
pod
,
"pod"
,
"p"
,
""
,
"Pod name"
)
...
...
pkg/kubectl/cmd/proxy.go
View file @
f505a339
...
@@ -36,7 +36,7 @@ func (f *Factory) NewCmdProxy(out io.Writer) *cobra.Command {
...
@@ -36,7 +36,7 @@ func (f *Factory) NewCmdProxy(out io.Writer) *cobra.Command {
glog
.
Infof
(
"Starting to serve on localhost:%d"
,
port
)
glog
.
Infof
(
"Starting to serve on localhost:%d"
,
port
)
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
staticPrefix
:=
util
.
GetFlagString
(
cmd
,
"www-prefix"
)
staticPrefix
:=
util
.
GetFlagString
(
cmd
,
"www-prefix"
)
if
!
strings
.
HasSuffix
(
staticPrefix
,
"/"
)
{
if
!
strings
.
HasSuffix
(
staticPrefix
,
"/"
)
{
...
@@ -49,7 +49,7 @@ func (f *Factory) NewCmdProxy(out io.Writer) *cobra.Command {
...
@@ -49,7 +49,7 @@ func (f *Factory) NewCmdProxy(out io.Writer) *cobra.Command {
}
}
server
,
err
:=
kubectl
.
NewProxyServer
(
util
.
GetFlagString
(
cmd
,
"www"
),
apiProxyPrefix
,
staticPrefix
,
clientConfig
)
server
,
err
:=
kubectl
.
NewProxyServer
(
util
.
GetFlagString
(
cmd
,
"www"
),
apiProxyPrefix
,
staticPrefix
,
clientConfig
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
glog
.
Fatal
(
server
.
Serve
(
port
))
glog
.
Fatal
(
server
.
Serve
(
port
))
},
},
}
}
...
...
pkg/kubectl/cmd/resize.go
View file @
f505a339
...
@@ -58,14 +58,14 @@ func (f *Factory) NewCmdResize(out io.Writer) *cobra.Command {
...
@@ -58,14 +58,14 @@ func (f *Factory) NewCmdResize(out io.Writer) *cobra.Command {
}
}
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
mapper
,
_
:=
f
.
Object
(
cmd
)
mapper
,
_
:=
f
.
Object
(
cmd
)
// TODO: use resource.Builder instead
// TODO: use resource.Builder instead
mapping
,
namespace
,
name
:=
util
.
ResourceFromArgs
(
cmd
,
args
,
mapper
,
cmdNamespace
)
mapping
,
namespace
,
name
:=
util
.
ResourceFromArgs
(
cmd
,
args
,
mapper
,
cmdNamespace
)
resizer
,
err
:=
f
.
Resizer
(
cmd
,
mapping
)
resizer
,
err
:=
f
.
Resizer
(
cmd
,
mapping
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
resourceVersion
:=
util
.
GetFlagString
(
cmd
,
"resource-version"
)
resourceVersion
:=
util
.
GetFlagString
(
cmd
,
"resource-version"
)
currentSize
:=
util
.
GetFlagInt
(
cmd
,
"current-replicas"
)
currentSize
:=
util
.
GetFlagInt
(
cmd
,
"current-replicas"
)
...
@@ -75,7 +75,7 @@ func (f *Factory) NewCmdResize(out io.Writer) *cobra.Command {
...
@@ -75,7 +75,7 @@ func (f *Factory) NewCmdResize(out io.Writer) *cobra.Command {
msg
:=
"resized"
msg
:=
"resized"
if
err
=
wait
.
Poll
(
retryFrequency
,
retryTimeout
,
cond
);
err
!=
nil
{
if
err
=
wait
.
Poll
(
retryFrequency
,
retryTimeout
,
cond
);
err
!=
nil
{
msg
=
fmt
.
Sprintf
(
"Failed to resize controller in spite of retrying for %s"
,
retryTimeout
)
msg
=
fmt
.
Sprintf
(
"Failed to resize controller in spite of retrying for %s"
,
retryTimeout
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
}
}
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
msg
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
msg
)
},
},
...
...
pkg/kubectl/cmd/rollingupdate.go
View file @
f505a339
...
@@ -61,10 +61,10 @@ func (f *Factory) NewCmdRollingUpdate(out io.Writer) *cobra.Command {
...
@@ -61,10 +61,10 @@ func (f *Factory) NewCmdRollingUpdate(out io.Writer) *cobra.Command {
}
}
oldName
:=
args
[
0
]
oldName
:=
args
[
0
]
schema
,
err
:=
f
.
Validator
(
cmd
)
schema
,
err
:=
f
.
Validator
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
clientConfig
,
err
:=
f
.
ClientConfig
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
cmdApiVersion
:=
clientConfig
.
Version
cmdApiVersion
:=
clientConfig
.
Version
mapper
,
typer
:=
f
.
Object
(
cmd
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
...
@@ -79,23 +79,23 @@ func (f *Factory) NewCmdRollingUpdate(out io.Writer) *cobra.Command {
...
@@ -79,23 +79,23 @@ func (f *Factory) NewCmdRollingUpdate(out io.Writer) *cobra.Command {
}
}
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
// TODO: use resource.Builder instead
// TODO: use resource.Builder instead
err
=
util
.
CompareNamespace
(
cmdNamespace
,
namespace
)
err
=
util
.
CompareNamespace
(
cmdNamespace
,
namespace
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
obj
,
err
:=
mapping
.
Codec
.
Decode
(
data
)
obj
,
err
:=
mapping
.
Codec
.
Decode
(
data
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
newRc
:=
obj
.
(
*
api
.
ReplicationController
)
newRc
:=
obj
.
(
*
api
.
ReplicationController
)
updater
:=
kubectl
.
NewRollingUpdater
(
cmdNamespace
,
client
)
updater
:=
kubectl
.
NewRollingUpdater
(
cmdNamespace
,
client
)
// fetch rc
// fetch rc
oldRc
,
err
:=
client
.
ReplicationControllers
(
cmdNamespace
)
.
Get
(
oldName
)
oldRc
,
err
:=
client
.
ReplicationControllers
(
cmdNamespace
)
.
Get
(
oldName
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
var
hasLabel
bool
var
hasLabel
bool
for
key
,
oldValue
:=
range
oldRc
.
Spec
.
Selector
{
for
key
,
oldValue
:=
range
oldRc
.
Spec
.
Selector
{
...
@@ -113,7 +113,7 @@ func (f *Factory) NewCmdRollingUpdate(out io.Writer) *cobra.Command {
...
@@ -113,7 +113,7 @@ func (f *Factory) NewCmdRollingUpdate(out io.Writer) *cobra.Command {
newRc
.
Spec
.
Replicas
=
oldRc
.
Spec
.
Replicas
newRc
.
Spec
.
Replicas
=
oldRc
.
Spec
.
Replicas
}
}
err
=
updater
.
Update
(
out
,
oldRc
,
newRc
,
period
,
interval
,
timeout
)
err
=
updater
.
Update
(
out
,
oldRc
,
newRc
,
period
,
interval
,
timeout
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
newName
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
newName
)
},
},
...
...
pkg/kubectl/cmd/run.go
View file @
f505a339
...
@@ -54,10 +54,10 @@ func (f *Factory) NewCmdRunContainer(out io.Writer) *cobra.Command {
...
@@ -54,10 +54,10 @@ func (f *Factory) NewCmdRunContainer(out io.Writer) *cobra.Command {
}
}
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
namespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
generatorName
:=
util
.
GetFlagString
(
cmd
,
"generator"
)
generatorName
:=
util
.
GetFlagString
(
cmd
,
"generator"
)
generator
,
found
:=
kubectl
.
Generators
[
generatorName
]
generator
,
found
:=
kubectl
.
Generators
[
generatorName
]
...
@@ -69,25 +69,25 @@ func (f *Factory) NewCmdRunContainer(out io.Writer) *cobra.Command {
...
@@ -69,25 +69,25 @@ func (f *Factory) NewCmdRunContainer(out io.Writer) *cobra.Command {
params
[
"name"
]
=
args
[
0
]
params
[
"name"
]
=
args
[
0
]
err
=
kubectl
.
ValidateParams
(
names
,
params
)
err
=
kubectl
.
ValidateParams
(
names
,
params
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
controller
,
err
:=
generator
.
Generate
(
params
)
controller
,
err
:=
generator
.
Generate
(
params
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
inline
:=
util
.
GetFlagString
(
cmd
,
"overrides"
)
inline
:=
util
.
GetFlagString
(
cmd
,
"overrides"
)
if
len
(
inline
)
>
0
{
if
len
(
inline
)
>
0
{
controller
,
err
=
util
.
Merge
(
controller
,
inline
,
"ReplicationController"
)
controller
,
err
=
util
.
Merge
(
controller
,
inline
,
"ReplicationController"
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
}
}
// TODO: extract this flag to a central location, when such a location exists.
// TODO: extract this flag to a central location, when such a location exists.
if
!
util
.
GetFlagBool
(
cmd
,
"dry-run"
)
{
if
!
util
.
GetFlagBool
(
cmd
,
"dry-run"
)
{
controller
,
err
=
client
.
ReplicationControllers
(
namespace
)
.
Create
(
controller
.
(
*
api
.
ReplicationController
))
controller
,
err
=
client
.
ReplicationControllers
(
namespace
)
.
Create
(
controller
.
(
*
api
.
ReplicationController
))
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
}
}
err
=
f
.
PrintObject
(
cmd
,
controller
,
out
)
err
=
f
.
PrintObject
(
cmd
,
controller
,
out
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
},
},
}
}
util
.
AddPrinterFlags
(
cmd
)
util
.
AddPrinterFlags
(
cmd
)
...
...
pkg/kubectl/cmd/stop.go
View file @
f505a339
...
@@ -20,6 +20,7 @@ import (
...
@@ -20,6 +20,7 @@ import (
"fmt"
"fmt"
"io"
"io"
cmdutil
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
...
@@ -51,7 +52,7 @@ func (f *Factory) NewCmdStop(out io.Writer) *cobra.Command {
...
@@ -51,7 +52,7 @@ func (f *Factory) NewCmdStop(out io.Writer) *cobra.Command {
Example
:
stop_example
,
Example
:
stop_example
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
mapper
,
typer
:=
f
.
Object
(
cmd
)
r
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
r
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
ContinueOnError
()
.
ContinueOnError
()
.
...
@@ -60,11 +61,11 @@ func (f *Factory) NewCmdStop(out io.Writer) *cobra.Command {
...
@@ -60,11 +61,11 @@ func (f *Factory) NewCmdStop(out io.Writer) *cobra.Command {
FilenameParam
(
flags
.
Filenames
...
)
.
FilenameParam
(
flags
.
Filenames
...
)
.
Flatten
()
.
Flatten
()
.
Do
()
Do
()
checkErr
(
r
.
Err
())
c
mdutil
.
C
heckErr
(
r
.
Err
())
r
.
Visit
(
func
(
info
*
resource
.
Info
)
error
{
r
.
Visit
(
func
(
info
*
resource
.
Info
)
error
{
reaper
,
err
:=
f
.
Reaper
(
cmd
,
info
.
Mapping
)
reaper
,
err
:=
f
.
Reaper
(
cmd
,
info
.
Mapping
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
s
,
err
:=
reaper
.
Stop
(
info
.
Namespace
,
info
.
Name
)
s
,
err
:=
reaper
.
Stop
(
info
.
Namespace
,
info
.
Name
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
...
pkg/kubectl/cmd/update.go
View file @
f505a339
...
@@ -51,10 +51,10 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
...
@@ -51,10 +51,10 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
Example
:
update_example
,
Example
:
update_example
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
schema
,
err
:=
f
.
Validator
(
cmd
)
schema
,
err
:=
f
.
Validator
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
patch
:=
cmdutil
.
GetFlagString
(
cmd
,
"patch"
)
patch
:=
cmdutil
.
GetFlagString
(
cmd
,
"patch"
)
if
len
(
flags
.
Filenames
)
==
0
&&
len
(
patch
)
==
0
{
if
len
(
flags
.
Filenames
)
==
0
&&
len
(
patch
)
==
0
{
...
@@ -78,7 +78,7 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
...
@@ -78,7 +78,7 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
FilenameParam
(
flags
.
Filenames
...
)
.
FilenameParam
(
flags
.
Filenames
...
)
.
Flatten
()
.
Flatten
()
.
Do
()
Do
()
checkErr
(
r
.
Err
())
c
mdutil
.
C
heckErr
(
r
.
Err
())
err
=
r
.
Visit
(
func
(
info
*
resource
.
Info
)
error
{
err
=
r
.
Visit
(
func
(
info
*
resource
.
Info
)
error
{
data
,
err
:=
info
.
Mapping
.
Codec
.
Encode
(
info
.
Object
)
data
,
err
:=
info
.
Mapping
.
Codec
.
Encode
(
info
.
Object
)
...
@@ -96,7 +96,7 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
...
@@ -96,7 +96,7 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
info
.
Name
)
fmt
.
Fprintf
(
out
,
"%s
\n
"
,
info
.
Name
)
return
nil
return
nil
})
})
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
},
},
}
}
...
@@ -107,25 +107,25 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
...
@@ -107,25 +107,25 @@ func (f *Factory) NewCmdUpdate(out io.Writer) *cobra.Command {
func
updateWithPatch
(
cmd
*
cobra
.
Command
,
args
[]
string
,
f
*
Factory
,
patch
string
)
string
{
func
updateWithPatch
(
cmd
*
cobra
.
Command
,
args
[]
string
,
f
*
Factory
,
patch
string
)
string
{
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
cmdNamespace
,
err
:=
f
.
DefaultNamespace
(
cmd
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
mapper
,
_
:=
f
.
Object
(
cmd
)
mapper
,
_
:=
f
.
Object
(
cmd
)
// TODO: use resource.Builder instead
// TODO: use resource.Builder instead
mapping
,
namespace
,
name
:=
cmdutil
.
ResourceFromArgs
(
cmd
,
args
,
mapper
,
cmdNamespace
)
mapping
,
namespace
,
name
:=
cmdutil
.
ResourceFromArgs
(
cmd
,
args
,
mapper
,
cmdNamespace
)
client
,
err
:=
f
.
RESTClient
(
cmd
,
mapping
)
client
,
err
:=
f
.
RESTClient
(
cmd
,
mapping
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
helper
:=
resource
.
NewHelper
(
client
,
mapping
)
helper
:=
resource
.
NewHelper
(
client
,
mapping
)
obj
,
err
:=
helper
.
Get
(
namespace
,
name
)
obj
,
err
:=
helper
.
Get
(
namespace
,
name
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
patchedObj
,
err
:=
cmdutil
.
Merge
(
obj
,
patch
,
mapping
.
Kind
)
patchedObj
,
err
:=
cmdutil
.
Merge
(
obj
,
patch
,
mapping
.
Kind
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
data
,
err
:=
helper
.
Codec
.
Encode
(
patchedObj
)
data
,
err
:=
helper
.
Codec
.
Encode
(
patchedObj
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
_
,
err
=
helper
.
Update
(
namespace
,
name
,
true
,
data
)
_
,
err
=
helper
.
Update
(
namespace
,
name
,
true
,
data
)
checkErr
(
err
)
c
mdutil
.
C
heckErr
(
err
)
return
name
return
name
}
}
pkg/kubectl/cmd/util/helpers.go
View file @
f505a339
...
@@ -26,7 +26,9 @@ import (
...
@@ -26,7 +26,9 @@ import (
"strings"
"strings"
"time"
"time"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/latest"
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
"github.com/evanphx/json-patch"
"github.com/evanphx/json-patch"
...
@@ -34,9 +36,18 @@ import (
...
@@ -34,9 +36,18 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
func
c
heckErr
(
err
error
)
{
func
C
heckErr
(
err
error
)
{
if
err
!=
nil
{
if
err
!=
nil
{
glog
.
FatalDepth
(
1
,
err
.
Error
())
if
errors
.
IsStatusError
(
err
)
{
glog
.
FatalDepth
(
1
,
fmt
.
Sprintf
(
"Error received from API: %s"
,
err
.
Error
()))
}
if
errors
.
IsUnexpectedObjectError
(
err
)
{
glog
.
FatalDepth
(
1
,
fmt
.
Sprintf
(
"Unexpected object received from server: %s"
,
err
.
Error
()))
}
if
client
.
IsUnexpectedStatusError
(
err
)
{
glog
.
FatalDepth
(
1
,
fmt
.
Sprintf
(
"Unexpected status received from server: %s"
,
err
.
Error
()))
}
glog
.
FatalDepth
(
1
,
fmt
.
Sprintf
(
"Client error processing command: %s"
,
err
.
Error
()))
}
}
}
}
...
@@ -75,7 +86,7 @@ func GetFlagInt(cmd *cobra.Command, flag string) int {
...
@@ -75,7 +86,7 @@ func GetFlagInt(cmd *cobra.Command, flag string) int {
v
,
err
:=
strconv
.
Atoi
(
f
.
Value
.
String
())
v
,
err
:=
strconv
.
Atoi
(
f
.
Value
.
String
())
// This is likely not a sufficiently friendly error message, but cobra
// This is likely not a sufficiently friendly error message, but cobra
// should prevent non-integer values from reaching here.
// should prevent non-integer values from reaching here.
c
heckErr
(
err
)
C
heckErr
(
err
)
return
v
return
v
}
}
...
@@ -85,7 +96,7 @@ func GetFlagDuration(cmd *cobra.Command, flag string) time.Duration {
...
@@ -85,7 +96,7 @@ func GetFlagDuration(cmd *cobra.Command, flag string) time.Duration {
glog
.
Fatalf
(
"Flag accessed but not defined for command %s: %s"
,
cmd
.
Name
(),
flag
)
glog
.
Fatalf
(
"Flag accessed but not defined for command %s: %s"
,
cmd
.
Name
(),
flag
)
}
}
v
,
err
:=
time
.
ParseDuration
(
f
.
Value
.
String
())
v
,
err
:=
time
.
ParseDuration
(
f
.
Value
.
String
())
c
heckErr
(
err
)
C
heckErr
(
err
)
return
v
return
v
}
}
...
...
pkg/kubectl/cmd/util/resource.go
View file @
f505a339
...
@@ -43,10 +43,10 @@ func ResourceFromArgs(cmd *cobra.Command, args []string, mapper meta.RESTMapper,
...
@@ -43,10 +43,10 @@ func ResourceFromArgs(cmd *cobra.Command, args []string, mapper meta.RESTMapper,
}
}
version
,
kind
,
err
:=
mapper
.
VersionAndKindForResource
(
resource
)
version
,
kind
,
err
:=
mapper
.
VersionAndKindForResource
(
resource
)
c
heckErr
(
err
)
C
heckErr
(
err
)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
version
)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
version
)
c
heckErr
(
err
)
C
heckErr
(
err
)
return
return
}
}
...
@@ -56,37 +56,37 @@ func ResourceFromArgs(cmd *cobra.Command, args []string, mapper meta.RESTMapper,
...
@@ -56,37 +56,37 @@ func ResourceFromArgs(cmd *cobra.Command, args []string, mapper meta.RESTMapper,
// DEPRECATED: Use resource.Builder
// DEPRECATED: Use resource.Builder
func
ResourceFromFile
(
filename
string
,
typer
runtime
.
ObjectTyper
,
mapper
meta
.
RESTMapper
,
schema
validation
.
Schema
,
cmdVersion
string
)
(
mapping
*
meta
.
RESTMapping
,
namespace
,
name
string
,
data
[]
byte
)
{
func
ResourceFromFile
(
filename
string
,
typer
runtime
.
ObjectTyper
,
mapper
meta
.
RESTMapper
,
schema
validation
.
Schema
,
cmdVersion
string
)
(
mapping
*
meta
.
RESTMapping
,
namespace
,
name
string
,
data
[]
byte
)
{
configData
,
err
:=
ReadConfigData
(
filename
)
configData
,
err
:=
ReadConfigData
(
filename
)
c
heckErr
(
err
)
C
heckErr
(
err
)
data
=
configData
data
=
configData
objVersion
,
kind
,
err
:=
typer
.
DataVersionAndKind
(
data
)
objVersion
,
kind
,
err
:=
typer
.
DataVersionAndKind
(
data
)
c
heckErr
(
err
)
C
heckErr
(
err
)
// TODO: allow unversioned objects?
// TODO: allow unversioned objects?
if
len
(
objVersion
)
==
0
{
if
len
(
objVersion
)
==
0
{
c
heckErr
(
fmt
.
Errorf
(
"the resource in the provided file has no apiVersion defined"
))
C
heckErr
(
fmt
.
Errorf
(
"the resource in the provided file has no apiVersion defined"
))
}
}
err
=
schema
.
ValidateBytes
(
data
)
err
=
schema
.
ValidateBytes
(
data
)
c
heckErr
(
err
)
C
heckErr
(
err
)
// decode using the version stored with the object (allows codec to vary across versions)
// decode using the version stored with the object (allows codec to vary across versions)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
objVersion
)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
objVersion
)
c
heckErr
(
err
)
C
heckErr
(
err
)
obj
,
err
:=
mapping
.
Codec
.
Decode
(
data
)
obj
,
err
:=
mapping
.
Codec
.
Decode
(
data
)
c
heckErr
(
err
)
C
heckErr
(
err
)
meta
:=
mapping
.
MetadataAccessor
meta
:=
mapping
.
MetadataAccessor
namespace
,
err
=
meta
.
Namespace
(
obj
)
namespace
,
err
=
meta
.
Namespace
(
obj
)
c
heckErr
(
err
)
C
heckErr
(
err
)
name
,
err
=
meta
.
Name
(
obj
)
name
,
err
=
meta
.
Name
(
obj
)
c
heckErr
(
err
)
C
heckErr
(
err
)
// if the preferred API version differs, get a different mapper
// if the preferred API version differs, get a different mapper
if
cmdVersion
!=
objVersion
{
if
cmdVersion
!=
objVersion
{
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
cmdVersion
)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
cmdVersion
)
c
heckErr
(
err
)
C
heckErr
(
err
)
}
}
return
return
...
...
pkg/kubectl/cmd/version.go
View file @
f505a339
...
@@ -36,7 +36,7 @@ func (f *Factory) NewCmdVersion(out io.Writer) *cobra.Command {
...
@@ -36,7 +36,7 @@ func (f *Factory) NewCmdVersion(out io.Writer) *cobra.Command {
}
}
client
,
err
:=
f
.
Client
(
cmd
)
client
,
err
:=
f
.
Client
(
cmd
)
c
heckErr
(
err
)
util
.
C
heckErr
(
err
)
kubectl
.
GetVersion
(
out
,
client
)
kubectl
.
GetVersion
(
out
,
client
)
},
},
...
...
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