Fix kubectl describe for controllerRef
This commit is contained in:
@@ -1421,7 +1421,7 @@ func (d *ReplicationControllerDescriber) Describe(namespace, name string, descri
|
||||
return "", err
|
||||
}
|
||||
|
||||
running, waiting, succeeded, failed, err := getPodStatusForController(pc, labels.SelectorFromSet(controller.Spec.Selector))
|
||||
running, waiting, succeeded, failed, err := getPodStatusForController(pc, labels.SelectorFromSet(controller.Spec.Selector), controller.UID)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -1498,7 +1498,7 @@ func (d *ReplicaSetDescriber) Describe(namespace, name string, describerSettings
|
||||
return "", err
|
||||
}
|
||||
|
||||
running, waiting, succeeded, failed, getPodErr := getPodStatusForController(pc, selector)
|
||||
running, waiting, succeeded, failed, getPodErr := getPodStatusForController(pc, selector, rs.UID)
|
||||
|
||||
var events *api.EventList
|
||||
if describerSettings.ShowEvents {
|
||||
@@ -1698,7 +1698,7 @@ func (d *DaemonSetDescriber) Describe(namespace, name string, describerSettings
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
running, waiting, succeeded, failed, err := getPodStatusForController(pc, selector)
|
||||
running, waiting, succeeded, failed, err := getPodStatusForController(pc, selector, daemon.UID)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -2452,7 +2452,7 @@ func (p *StatefulSetDescriber) Describe(namespace, name string, describerSetting
|
||||
return "", err
|
||||
}
|
||||
|
||||
running, waiting, succeeded, failed, err := getPodStatusForController(pc, selector)
|
||||
running, waiting, succeeded, failed, err := getPodStatusForController(pc, selector, ps.UID)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -2837,13 +2837,18 @@ func printReplicaSetsByLabels(matchingRSs []*versionedextension.ReplicaSet) stri
|
||||
return list
|
||||
}
|
||||
|
||||
func getPodStatusForController(c coreclient.PodInterface, selector labels.Selector) (running, waiting, succeeded, failed int, err error) {
|
||||
func getPodStatusForController(c coreclient.PodInterface, selector labels.Selector, uid types.UID) (running, waiting, succeeded, failed int, err error) {
|
||||
options := metav1.ListOptions{LabelSelector: selector.String()}
|
||||
rcPods, err := c.List(options)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for _, pod := range rcPods.Items {
|
||||
controllerRef := controller.GetControllerOf(&pod)
|
||||
// Skip pods that are orphans or owned by other controllers.
|
||||
if controllerRef == nil || controllerRef.UID != uid {
|
||||
continue
|
||||
}
|
||||
switch pod.Status.Phase {
|
||||
case api.PodRunning:
|
||||
running++
|
||||
|
Reference in New Issue
Block a user