Fix error checking for pod name & NS
Previously it would just check if POD_NAME *or* POD_NAMESPACE was set, which could lead to very bizarre failure modes.
This commit is contained in:
parent
d416d029ec
commit
ad583c3acb
2 changed files with 21 additions and 5 deletions
|
@ -117,7 +117,7 @@ func GetPodDetails(kubeClient clientset.Interface) (*PodInfo, error) {
|
||||||
podName := os.Getenv("POD_NAME")
|
podName := os.Getenv("POD_NAME")
|
||||||
podNs := os.Getenv("POD_NAMESPACE")
|
podNs := os.Getenv("POD_NAMESPACE")
|
||||||
|
|
||||||
if podName == "" && podNs == "" {
|
if podName == "" || podNs == "" {
|
||||||
return nil, fmt.Errorf("unable to get POD information (missing POD_NAME or POD_NAMESPACE environment variable")
|
return nil, fmt.Errorf("unable to get POD information (missing POD_NAME or POD_NAMESPACE environment variable")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -297,14 +297,30 @@ func TestGetPodDetails(t *testing.T) {
|
||||||
t.Errorf("expected an error but returned nil")
|
t.Errorf("expected an error but returned nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
// POD not exist
|
// POD_NAME not exist
|
||||||
os.Setenv("POD_NAME", "testpod")
|
os.Setenv("POD_NAME", "")
|
||||||
os.Setenv("POD_NAMESPACE", api.NamespaceDefault)
|
os.Setenv("POD_NAMESPACE", api.NamespaceDefault)
|
||||||
_, err2 := GetPodDetails(testclient.NewSimpleClientset())
|
_, err2 := GetPodDetails(testclient.NewSimpleClientset())
|
||||||
if err2 == nil {
|
if err2 == nil {
|
||||||
t.Errorf("expected an error but returned nil")
|
t.Errorf("expected an error but returned nil")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// POD_NAMESPACE not exist
|
||||||
|
os.Setenv("POD_NAME", "testpod")
|
||||||
|
os.Setenv("POD_NAMESPACE", "")
|
||||||
|
_, err3 := GetPodDetails(testclient.NewSimpleClientset())
|
||||||
|
if err3 == nil {
|
||||||
|
t.Errorf("expected an error but returned nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
// POD not exist
|
||||||
|
os.Setenv("POD_NAME", "testpod")
|
||||||
|
os.Setenv("POD_NAMESPACE", api.NamespaceDefault)
|
||||||
|
_, err4 := GetPodDetails(testclient.NewSimpleClientset())
|
||||||
|
if err4 == nil {
|
||||||
|
t.Errorf("expected an error but returned nil")
|
||||||
|
}
|
||||||
|
|
||||||
// success to get PodInfo
|
// success to get PodInfo
|
||||||
fkClient := testclient.NewSimpleClientset(
|
fkClient := testclient.NewSimpleClientset(
|
||||||
&api.PodList{Items: []api.Pod{{
|
&api.PodList{Items: []api.Pod{{
|
||||||
|
@ -331,8 +347,8 @@ func TestGetPodDetails(t *testing.T) {
|
||||||
},
|
},
|
||||||
}}})
|
}}})
|
||||||
|
|
||||||
epi, err3 := GetPodDetails(fkClient)
|
epi, err5 := GetPodDetails(fkClient)
|
||||||
if err3 != nil {
|
if err5 != nil {
|
||||||
t.Errorf("expected a PodInfo but returned error")
|
t.Errorf("expected a PodInfo but returned error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue