Merge pull request #43897 from kargakis/fix-rs-test

Automatic merge from submit-queue (batch tested with PRs 43897, 43899)

Fix rs release test to poll on 409s

Fixes https://github.com/kubernetes/kubernetes/issues/43895

@caesarxuchao @fgimenez ptal
This commit is contained in:
Kubernetes Submit Queue 2017-03-31 04:07:18 -07:00 committed by GitHub
commit 68d27747bc
2 changed files with 30 additions and 10 deletions

View File

@ -24,7 +24,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
@ -294,14 +293,25 @@ func testRCReleaseControlledNotMatching(f *framework.Framework) {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
p := pods.Items[0] p := pods.Items[0]
podClient := f.ClientSet.Core().Pods(f.Namespace.Name) err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) {
patch := []byte("{\"metadata\":{\"labels\":{\"name\":\"not-matching-name\"}}}") pod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{})
_, err = podClient.Patch(p.Name, types.StrategicMergePatchType, patch) Expect(err).NotTo(HaveOccurred())
pod.Labels = map[string]string{"name": "not-matching-name"}
_, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(pod)
if err != nil && errors.IsConflict(err) {
return false, nil
}
if err != nil {
return false, err
}
return true, nil
})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
By("Then the pod is released") By("Then the pod is released")
err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) {
p2, err := podClient.Get(p.Name, metav1.GetOptions{}) p2, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
for _, owner := range p2.OwnerReferences { for _, owner := range p2.OwnerReferences {
if *owner.Controller && owner.UID == rc.UID { if *owner.Controller && owner.UID == rc.UID {

View File

@ -24,7 +24,6 @@ import (
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/v1"
@ -307,14 +306,25 @@ func testRSReleaseControlledNotMatching(f *framework.Framework) {
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
p := pods.Items[0] p := pods.Items[0]
podClient := f.ClientSet.Core().Pods(f.Namespace.Name) err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) {
patch := []byte("{\"metadata\":{\"labels\":{\"name\":\"not-matching-name\"}}}") pod, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{})
_, err = podClient.Patch(p.Name, types.StrategicMergePatchType, patch) Expect(err).NotTo(HaveOccurred())
pod.Labels = map[string]string{"name": "not-matching-name"}
_, err = f.ClientSet.Core().Pods(f.Namespace.Name).Update(pod)
if err != nil && errors.IsConflict(err) {
return false, nil
}
if err != nil {
return false, err
}
return true, nil
})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
By("Then the pod is released") By("Then the pod is released")
err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) { err = wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) {
p2, err := podClient.Get(p.Name, metav1.GetOptions{}) p2, err := f.ClientSet.Core().Pods(f.Namespace.Name).Get(p.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
for _, owner := range p2.OwnerReferences { for _, owner := range p2.OwnerReferences {
if *owner.Controller && owner.UID == rs.UID { if *owner.Controller && owner.UID == rs.UID {