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
2e038223
Commit
2e038223
authored
Mar 05, 2016
by
k8s-merge-robot
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #21335 from deads2k/make-rc-logs-work
Auto commit by PR queue bot
parents
f359bd96
f8f45df5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
54 additions
and
8 deletions
+54
-8
factory.go
pkg/kubectl/cmd/util/factory.go
+46
-7
kubectl.go
test/e2e/kubectl.go
+8
-1
No files found.
pkg/kubectl/cmd/util/factory.go
View file @
2e038223
...
...
@@ -380,6 +380,42 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
return
nil
,
errors
.
New
(
"provided options object is not a PodLogOptions"
)
}
return
c
.
Pods
(
t
.
Namespace
)
.
GetLogs
(
t
.
Name
,
opts
),
nil
case
*
api
.
ReplicationController
:
opts
,
ok
:=
options
.
(
*
api
.
PodLogOptions
)
if
!
ok
{
return
nil
,
errors
.
New
(
"provided options object is not a PodLogOptions"
)
}
selector
:=
labels
.
SelectorFromSet
(
t
.
Spec
.
Selector
)
pod
,
numPods
,
err
:=
GetFirstPod
(
c
,
t
.
Namespace
,
selector
)
if
err
!=
nil
{
return
nil
,
err
}
if
numPods
>
1
{
fmt
.
Fprintf
(
os
.
Stderr
,
"Found %v pods, using pod/%v
\n
"
,
numPods
,
pod
.
Name
)
}
return
c
.
Pods
(
pod
.
Namespace
)
.
GetLogs
(
pod
.
Name
,
opts
),
nil
case
*
extensions
.
ReplicaSet
:
opts
,
ok
:=
options
.
(
*
api
.
PodLogOptions
)
if
!
ok
{
return
nil
,
errors
.
New
(
"provided options object is not a PodLogOptions"
)
}
selector
,
err
:=
unversioned
.
LabelSelectorAsSelector
(
t
.
Spec
.
Selector
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid label selector: %v"
,
err
)
}
pod
,
numPods
,
err
:=
GetFirstPod
(
c
,
t
.
Namespace
,
selector
)
if
err
!=
nil
{
return
nil
,
err
}
if
numPods
>
1
{
fmt
.
Fprintf
(
os
.
Stderr
,
"Found %v pods, using pod/%v
\n
"
,
numPods
,
pod
.
Name
)
}
return
c
.
Pods
(
pod
.
Namespace
)
.
GetLogs
(
pod
.
Name
,
opts
),
nil
default
:
gvk
,
err
:=
api
.
Scheme
.
ObjectKind
(
object
)
if
err
!=
nil
{
...
...
@@ -527,19 +563,22 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
switch
t
:=
object
.
(
type
)
{
case
*
api
.
ReplicationController
:
selector
:=
labels
.
SelectorFromSet
(
t
.
Spec
.
Selector
)
return
GetFirstPod
(
client
,
t
.
Namespace
,
selector
)
pod
,
_
,
err
:=
GetFirstPod
(
client
,
t
.
Namespace
,
selector
)
return
pod
,
err
case
*
extensions
.
Deployment
:
selector
,
err
:=
unversioned
.
LabelSelectorAsSelector
(
t
.
Spec
.
Selector
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid label selector: %v"
,
err
)
}
return
GetFirstPod
(
client
,
t
.
Namespace
,
selector
)
pod
,
_
,
err
:=
GetFirstPod
(
client
,
t
.
Namespace
,
selector
)
return
pod
,
err
case
*
extensions
.
Job
:
selector
,
err
:=
unversioned
.
LabelSelectorAsSelector
(
t
.
Spec
.
Selector
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"invalid label selector: %v"
,
err
)
}
return
GetFirstPod
(
client
,
t
.
Namespace
,
selector
)
pod
,
_
,
err
:=
GetFirstPod
(
client
,
t
.
Namespace
,
selector
)
return
pod
,
err
case
*
api
.
Pod
:
return
t
,
nil
default
:
...
...
@@ -556,21 +595,21 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
}
}
// GetFirstPod returns the first pod of an object from its namespace and selector
func
GetFirstPod
(
client
*
client
.
Client
,
namespace
string
,
selector
labels
.
Selector
)
(
*
api
.
Pod
,
error
)
{
// GetFirstPod returns the first pod of an object from its namespace and selector
and the number of matching pods
func
GetFirstPod
(
client
*
client
.
Client
,
namespace
string
,
selector
labels
.
Selector
)
(
*
api
.
Pod
,
int
,
error
)
{
var
pods
*
api
.
PodList
for
pods
==
nil
||
len
(
pods
.
Items
)
==
0
{
var
err
error
options
:=
api
.
ListOptions
{
LabelSelector
:
selector
}
if
pods
,
err
=
client
.
Pods
(
namespace
)
.
List
(
options
);
err
!=
nil
{
return
nil
,
err
return
nil
,
0
,
err
}
if
len
(
pods
.
Items
)
==
0
{
time
.
Sleep
(
2
*
time
.
Second
)
}
}
pod
:=
&
pods
.
Items
[
0
]
return
pod
,
nil
return
pod
,
len
(
pods
.
Items
),
nil
}
// Command will stringify and return all environment arguments ie. a command run by a client
...
...
test/e2e/kubectl.go
View file @
2e038223
...
...
@@ -464,7 +464,7 @@ var _ = Describe("Kubectl client", func() {
withStdinData
(
"abcd1234
\n
"
)
.
execOrDie
()
Expect
(
runOutput
)
.
ToNot
(
ContainSubstring
(
"stdin closed"
))
runTestPod
,
err
:=
util
.
GetFirstPod
(
c
,
ns
,
labels
.
SelectorFromSet
(
map
[
string
]
string
{
"run"
:
"run-test-3"
}))
runTestPod
,
_
,
err
:=
util
.
GetFirstPod
(
c
,
ns
,
labels
.
SelectorFromSet
(
map
[
string
]
string
{
"run"
:
"run-test-3"
}))
if
err
!=
nil
{
os
.
Exit
(
1
)
}
...
...
@@ -898,6 +898,13 @@ var _ = Describe("Kubectl client", func() {
runKubectlOrDie
(
"get"
,
"pods"
,
"-L"
,
"run"
,
nsFlag
)
Failf
(
"Failed creating 1 pod with expected image %s. Number of pods = %v"
,
nginxImage
,
len
(
pods
))
}
By
(
"confirm that you can get logs from an rc"
)
_
,
err
=
runKubectl
(
"logs"
,
"rc/"
+
rcName
,
nsFlag
)
// a non-nil error is fine as long as we actually found a pod.
if
err
!=
nil
&&
!
strings
.
Contains
(
err
.
Error
(),
" in pod "
)
{
Failf
(
"Failed getting logs by rc %s: %v"
,
rcName
,
err
)
}
})
})
...
...
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