From 4342a8c4f08130c3013ddee445a18f89a6a8c31d Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Fri, 12 Feb 2016 11:10:08 -0800 Subject: [PATCH 1/2] revert 20202 --- pkg/api/rest/resttest/resttest.go | 2 +- pkg/registry/generic/etcd/etcd.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/api/rest/resttest/resttest.go b/pkg/api/rest/resttest/resttest.go index fbf0bf87d81..b17ae740df9 100644 --- a/pkg/api/rest/resttest/resttest.go +++ b/pkg/api/rest/resttest/resttest.go @@ -674,7 +674,7 @@ func (t *Tester) testDeleteGracefulImmediate(obj runtime.Object, setFn SetFunc, } objectMeta = t.getObjectMetaOrFail(out) // the second delete shouldn't update the object, so the objectMeta.DeletionGracePeriodSeconds should eqaul to the value set in the first delete. - if objectMeta.DeletionTimestamp == nil || objectMeta.DeletionGracePeriodSeconds == nil || *objectMeta.DeletionGracePeriodSeconds != expectedGrace { + if objectMeta.DeletionTimestamp == nil || objectMeta.DeletionGracePeriodSeconds == nil || *objectMeta.DeletionGracePeriodSeconds != 0 { t.Errorf("unexpected deleted meta: %#v", objectMeta) } } diff --git a/pkg/registry/generic/etcd/etcd.go b/pkg/registry/generic/etcd/etcd.go index a976d61af91..fe0119d57d7 100644 --- a/pkg/registry/generic/etcd/etcd.go +++ b/pkg/registry/generic/etcd/etcd.go @@ -396,7 +396,7 @@ func (e *Etcd) Delete(ctx api.Context, name string, options *api.DeleteOptions) if pendingGraceful { return e.finalizeDelete(obj, false) } - if graceful && *options.GracePeriodSeconds > 0 { + if graceful { out := e.NewFunc() lastGraceful := int64(0) err := e.Storage.GuaranteedUpdate( From 314a6ab7de7437b26b3f76b76e055916988e99b3 Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Fri, 12 Feb 2016 11:11:42 -0800 Subject: [PATCH 2/2] switch namespace before recreate a pod in test-cmd.sh --- hack/test-cmd.sh | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 565fafb3c6c..0ccbde60fad 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -209,6 +209,20 @@ PATH="${KUBE_OUTPUT_HOSTBIN}":$PATH kube::log::status "Checking kubectl version" kubectl version +# TODO: we need to note down the current default namespace and set back to this +# namespace after the tests are done. +kubectl config view +CONTEXT="test" +kubectl config set-context "${CONTEXT}" +kubectl config use-context "${CONTEXT}" + +i=0 +create_and_use_new_namespace() { + i=$(($i+1)) + kubectl create namespace "namespace${i}" + kubectl config set-context "${CONTEXT}" --namespace="namespace${i}" +} + runTests() { version="$1" echo "Testing api version: $1" @@ -310,6 +324,7 @@ runTests() { ### Create POD valid-pod from JSON # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create "${kube_flags[@]}" -f docs/admin/limitrange/valid-pod.yaml @@ -345,9 +360,10 @@ runTests() { ### Create POD valid-pod from dumped YAML # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command - echo "${output_pod}" | kubectl create -f - "${kube_flags[@]}" + echo "${output_pod}" | sed '/namespace:/d' | kubectl create -f - "${kube_flags[@]}" # Post-condition: valid-pod POD is created kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' @@ -359,8 +375,9 @@ runTests() { # Post-condition: valid-pod POD doesn't exist kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' - ### Create POD redis-master from JSON + ### Create POD valid-pod from JSON # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}" @@ -375,8 +392,9 @@ runTests() { # Post-condition: valid-pod POD doesn't exist kube::test::get_object_assert "pods -l'name in (valid-pod)'" '{{range.items}}{{$id_field}}:{{end}}' '' - ### Create POD valid-pod from JSON + ### Create POD valid-pod from YAML # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}" @@ -409,6 +427,7 @@ runTests() { ### Create two PODs # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}" @@ -426,6 +445,7 @@ runTests() { ### Create valid-pod POD # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}" @@ -450,6 +470,7 @@ runTests() { ### Create valid-pod POD # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f docs/admin/limitrange/valid-pod.yaml "${kube_flags[@]}" @@ -586,6 +607,7 @@ __EOF__ ### Create two PODs from 1 yaml file # Pre-condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command kubectl create -f docs/user-guide/multi-pod.yaml "${kube_flags[@]}" @@ -603,6 +625,7 @@ __EOF__ ## kubectl apply should update configuration annotations only if apply is already called ## 1. kubectl create doesn't set the annotation # Pre-Condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command: create a pod "test-pod" kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}" @@ -643,6 +666,7 @@ __EOF__ ## Configuration annotations should be set when --save-config is enabled ## 1. kubectl create --save-config should generate configuration annotation # Pre-Condition: no POD exists + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' # Command: create a pod "test-pod" kubectl create -f hack/testdata/pod.yaml --save-config "${kube_flags[@]}" @@ -652,6 +676,7 @@ __EOF__ kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}" ## 2. kubectl edit --save-config should generate configuration annotation # Pre-Condition: no POD exists, then create pod "test-pod", which shouldn't have configuration annotation + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}" ! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]] @@ -666,6 +691,7 @@ __EOF__ kubectl delete -f hack/testdata/pod.yaml "${kube_flags[@]}" ## 3. kubectl replace --save-config should generate configuration annotation # Pre-Condition: no POD exists, then create pod "test-pod", which shouldn't have configuration annotation + create_and_use_new_namespace kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' kubectl create -f hack/testdata/pod.yaml "${kube_flags[@]}" ! [[ "$(kubectl get pods test-pod -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]] @@ -684,7 +710,7 @@ __EOF__ [[ "$(kubectl get rc nginx -o yaml "${kube_flags[@]}" | grep kubectl.kubernetes.io/last-applied-configuration)" ]] ## 5. kubectl expose --save-config should generate configuration annotation # Pre-Condition: no service exists - kube::test::get_object_assert svc "{{range.items}}{{$id_field}}:{{end}}" 'kubernetes:' + kube::test::get_object_assert svc "{{range.items}}{{$id_field}}:{{end}}" '' # Command: expose the rc "nginx" kubectl expose rc nginx --save-config --port=80 --target-port=8000 "${kube_flags[@]}" # Post-Condition: service "nginx" has configuration annotation @@ -739,7 +765,8 @@ __EOF__ ### Create a new namespace # Pre-condition: only the "default" namespace exists - kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:' + # The Pre-condition doesn't hold anymore after we create and switch namespaces before creating pods with same name in the test. + # kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:' # Command kubectl create namespace my-namespace # Post-condition: namespace 'my-namespace' is created. @@ -879,7 +906,8 @@ __EOF__ ############ # Services # ############ - + # switch back to the default namespace + kubectl config set-context "${CONTEXT}" --namespace="" kube::log::status "Testing kubectl(${version}:services)" ### Create redis-master service from JSON @@ -1571,7 +1599,7 @@ __EOF__ ############################ # Pre-condition: the "default" namespace exists - kube::test::get_object_assert namespaces "{{range.items}}{{$id_field}}:{{end}}" 'default:' + kube::test::get_object_assert namespaces "{{range.items}}{{if eq $id_field \\\"default\\\"}}{{$id_field}}:{{end}}{{end}}" 'default:' ### Create POD # Pre-condition: no POD exists