Adjust the logic, so that if the apiserver restarts, or has no pod info

for some other reason, pods on missing machines are still 'terminated'
pull/6/head
Brendan Burns 2014-09-17 21:57:11 -07:00
parent b3bfef9127
commit 17cbde0c5a
2 changed files with 14 additions and 1 deletions

View File

@ -214,7 +214,7 @@ func getInstanceIP(cloud cloudprovider.Interface, host string) string {
}
func getPodStatus(pod *api.Pod, minions client.MinionInterface) (api.PodStatus, error) {
if pod.CurrentState.Info == nil || pod.CurrentState.Host == "" {
if pod.CurrentState.Host == "" {
return api.PodWaiting, nil
}
res, err := minions.ListMinions()
@ -232,6 +232,9 @@ func getPodStatus(pod *api.Pod, minions client.MinionInterface) (api.PodStatus,
if !found {
return api.PodTerminated, nil
}
if pod.CurrentState.Info == nil {
return api.PodWaiting, nil
}
running := 0
stopped := 0
unknown := 0

View File

@ -296,6 +296,16 @@ func TestMakePodStatus(t *testing.T) {
test string
}{
{&api.Pod{DesiredState: desiredState, CurrentState: currentState}, api.PodWaiting, "waiting"},
{
&api.Pod{
DesiredState: desiredState,
CurrentState: api.PodState{
Host: "machine-2",
},
},
api.PodTerminated,
"no info, but bad machine",
},
{
&api.Pod{
DesiredState: desiredState,