mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	unify alias of api errors under test
This commit is contained in:
		@@ -28,7 +28,7 @@ import (
 | 
				
			|||||||
	appsv1 "k8s.io/api/apps/v1"
 | 
						appsv1 "k8s.io/api/apps/v1"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
						"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
				
			||||||
	unstructuredv1 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
						unstructuredv1 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
				
			||||||
@@ -367,7 +367,7 @@ func TestSampleAPIServer(f *framework.Framework, aggrclient *aggregatorclient.Cl
 | 
				
			|||||||
		request.SetHeader("Accept", "application/json")
 | 
							request.SetHeader("Accept", "application/json")
 | 
				
			||||||
		_, err := request.DoRaw()
 | 
							_, err := request.DoRaw()
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			status, ok := err.(*apierrs.StatusError)
 | 
								status, ok := err.(*apierrors.StatusError)
 | 
				
			||||||
			if !ok {
 | 
								if !ok {
 | 
				
			||||||
				return false, err
 | 
									return false, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	policyv1beta1 "k8s.io/api/policy/v1beta1"
 | 
						policyv1beta1 "k8s.io/api/policy/v1beta1"
 | 
				
			||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/authentication/serviceaccount"
 | 
						"k8s.io/apiserver/pkg/authentication/serviceaccount"
 | 
				
			||||||
@@ -122,7 +122,7 @@ var _ = SIGDescribe("PodSecurityPolicy", func() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func expectForbidden(err error) {
 | 
					func expectForbidden(err error) {
 | 
				
			||||||
	framework.ExpectError(err, "should be forbidden")
 | 
						framework.ExpectError(err, "should be forbidden")
 | 
				
			||||||
	framework.ExpectEqual(apierrs.IsForbidden(err), true, "should be forbidden error")
 | 
						framework.ExpectEqual(apierrors.IsForbidden(err), true, "should be forbidden error")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func testPrivilegedPods(tester func(pod *v1.Pod)) {
 | 
					func testPrivilegedPods(tester func(pod *v1.Pod)) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,7 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
@@ -67,7 +67,7 @@ var _ = SIGDescribe("[Feature:CloudProvider][Disruptive] Nodes", func() {
 | 
				
			|||||||
		_, err = c.CoreV1().Nodes().Get(nodeToDelete.Name, metav1.GetOptions{})
 | 
							_, err = c.CoreV1().Nodes().Get(nodeToDelete.Name, metav1.GetOptions{})
 | 
				
			||||||
		if err == nil {
 | 
							if err == nil {
 | 
				
			||||||
			framework.Failf("node %q still exists when it should be deleted", nodeToDelete.Name)
 | 
								framework.Failf("node %q still exists when it should be deleted", nodeToDelete.Name)
 | 
				
			||||||
		} else if !apierrs.IsNotFound(err) {
 | 
							} else if !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.Failf("failed to get node %q err: %q", nodeToDelete.Name, err)
 | 
								framework.Failf("failed to get node %q err: %q", nodeToDelete.Name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/api/errors"
 | 
						"k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/fields"
 | 
						"k8s.io/apimachinery/pkg/fields"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
@@ -124,7 +124,7 @@ func expectPodRejection(f *framework.Framework, pod *v1.Pod) {
 | 
				
			|||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		_, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod)
 | 
							_, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod)
 | 
				
			||||||
		framework.ExpectError(err, "should be forbidden")
 | 
							framework.ExpectError(err, "should be forbidden")
 | 
				
			||||||
		framework.ExpectEqual(apierrs.IsForbidden(err), true, "should be forbidden error")
 | 
							framework.ExpectEqual(apierrors.IsForbidden(err), true, "should be forbidden error")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,7 +41,7 @@ import (
 | 
				
			|||||||
	appsv1 "k8s.io/api/apps/v1"
 | 
						appsv1 "k8s.io/api/apps/v1"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	networkingv1beta1 "k8s.io/api/networking/v1beta1"
 | 
						networkingv1beta1 "k8s.io/api/networking/v1beta1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	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/util/intstr"
 | 
						"k8s.io/apimachinery/pkg/util/intstr"
 | 
				
			||||||
@@ -522,7 +522,7 @@ func (j *TestJig) Update(update func(ing *networkingv1beta1.Ingress)) {
 | 
				
			|||||||
			framework.DescribeIng(j.Ingress.Namespace)
 | 
								framework.DescribeIng(j.Ingress.Namespace)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !apierrs.IsConflict(err) && !apierrs.IsServerTimeout(err) {
 | 
							if !apierrors.IsConflict(err) && !apierrors.IsServerTimeout(err) {
 | 
				
			||||||
			framework.Failf("failed to update ingress %s/%s: %v", ns, name, err)
 | 
								framework.Failf("failed to update ingress %s/%s: %v", ns, name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/client-go/kubernetes/fake"
 | 
						"k8s.io/client-go/kubernetes/fake"
 | 
				
			||||||
@@ -157,7 +157,7 @@ func TestCheckReadyForTests(t *testing.T) {
 | 
				
			|||||||
			expectedErr: "Forced error",
 | 
								expectedErr: "Forced error",
 | 
				
			||||||
		}, {
 | 
							}, {
 | 
				
			||||||
			desc:        "Retryable errors from node list are reported but still return false",
 | 
								desc:        "Retryable errors from node list are reported but still return false",
 | 
				
			||||||
			nodeListErr: apierrs.NewTimeoutError("Retryable error", 10),
 | 
								nodeListErr: apierrors.NewTimeoutError("Retryable error", 10),
 | 
				
			||||||
			expected:    false,
 | 
								expected:    false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ import (
 | 
				
			|||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	e2elog "k8s.io/kubernetes/test/e2e/framework/log"
 | 
						e2elog "k8s.io/kubernetes/test/e2e/framework/log"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -55,7 +55,7 @@ func DeletePodWithWaitByName(c clientset.Interface, podName, podNamespace string
 | 
				
			|||||||
	e2elog.Logf("Deleting pod %q in namespace %q", podName, podNamespace)
 | 
						e2elog.Logf("Deleting pod %q in namespace %q", podName, podNamespace)
 | 
				
			||||||
	err := c.CoreV1().Pods(podNamespace).Delete(podName, nil)
 | 
						err := c.CoreV1().Pods(podNamespace).Delete(podName, nil)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return nil // assume pod was already deleted
 | 
								return nil // assume pod was already deleted
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return fmt.Errorf("pod Delete API error: %v", err)
 | 
							return fmt.Errorf("pod Delete API error: %v", err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,7 +27,7 @@ import (
 | 
				
			|||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	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/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
@@ -213,7 +213,7 @@ func WaitForPodCondition(c clientset.Interface, ns, podName, desc string, timeou
 | 
				
			|||||||
	for start := time.Now(); time.Since(start) < timeout; time.Sleep(poll) {
 | 
						for start := time.Now(); time.Since(start) < timeout; time.Sleep(poll) {
 | 
				
			||||||
		pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{})
 | 
							pod, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if apierrs.IsNotFound(err) {
 | 
								if apierrors.IsNotFound(err) {
 | 
				
			||||||
				e2elog.Logf("Pod %q in namespace %q not found. Error: %v", podName, ns, err)
 | 
									e2elog.Logf("Pod %q in namespace %q not found. Error: %v", podName, ns, err)
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -387,7 +387,7 @@ func WaitForPodSuccessInNamespaceSlow(c clientset.Interface, podName string, nam
 | 
				
			|||||||
func WaitForPodNotFoundInNamespace(c clientset.Interface, podName, ns string, timeout time.Duration) error {
 | 
					func WaitForPodNotFoundInNamespace(c clientset.Interface, podName, ns string, timeout time.Duration) error {
 | 
				
			||||||
	return wait.PollImmediate(poll, timeout, func() (bool, error) {
 | 
						return wait.PollImmediate(poll, timeout, func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{})
 | 
							_, err := c.CoreV1().Pods(ns).Get(podName, metav1.GetOptions{})
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return true, nil // done
 | 
								return true, nil // done
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ import (
 | 
				
			|||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	policyv1beta1 "k8s.io/api/policy/v1beta1"
 | 
						policyv1beta1 "k8s.io/api/policy/v1beta1"
 | 
				
			||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/authentication/serviceaccount"
 | 
						"k8s.io/apiserver/pkg/authentication/serviceaccount"
 | 
				
			||||||
@@ -111,7 +111,7 @@ func CreatePrivilegedPSPBinding(kubeClient clientset.Interface, namespace string
 | 
				
			|||||||
	privilegedPSPOnce.Do(func() {
 | 
						privilegedPSPOnce.Do(func() {
 | 
				
			||||||
		_, err := kubeClient.PolicyV1beta1().PodSecurityPolicies().Get(
 | 
							_, err := kubeClient.PolicyV1beta1().PodSecurityPolicies().Get(
 | 
				
			||||||
			podSecurityPolicyPrivileged, metav1.GetOptions{})
 | 
								podSecurityPolicyPrivileged, metav1.GetOptions{})
 | 
				
			||||||
		if !apierrs.IsNotFound(err) {
 | 
							if !apierrors.IsNotFound(err) {
 | 
				
			||||||
			// Privileged PSP was already created.
 | 
								// Privileged PSP was already created.
 | 
				
			||||||
			ExpectNoError(err, "Failed to get PodSecurityPolicy %s", podSecurityPolicyPrivileged)
 | 
								ExpectNoError(err, "Failed to get PodSecurityPolicy %s", podSecurityPolicyPrivileged)
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
@@ -119,7 +119,7 @@ func CreatePrivilegedPSPBinding(kubeClient clientset.Interface, namespace string
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		psp := privilegedPSP(podSecurityPolicyPrivileged)
 | 
							psp := privilegedPSP(podSecurityPolicyPrivileged)
 | 
				
			||||||
		_, err = kubeClient.PolicyV1beta1().PodSecurityPolicies().Create(psp)
 | 
							_, err = kubeClient.PolicyV1beta1().PodSecurityPolicies().Create(psp)
 | 
				
			||||||
		if !apierrs.IsAlreadyExists(err) {
 | 
							if !apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			ExpectNoError(err, "Failed to create PSP %s", podSecurityPolicyPrivileged)
 | 
								ExpectNoError(err, "Failed to create PSP %s", podSecurityPolicyPrivileged)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -134,7 +134,7 @@ func CreatePrivilegedPSPBinding(kubeClient clientset.Interface, namespace string
 | 
				
			|||||||
					Verbs:         []string{"use"},
 | 
										Verbs:         []string{"use"},
 | 
				
			||||||
				}},
 | 
									}},
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
			if !apierrs.IsAlreadyExists(err) {
 | 
								if !apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
				ExpectNoError(err, "Failed to create PSP role")
 | 
									ExpectNoError(err, "Failed to create PSP role")
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	"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"
 | 
				
			||||||
@@ -186,7 +186,7 @@ func DeletePersistentVolume(c clientset.Interface, pvName string) error {
 | 
				
			|||||||
	if c != nil && len(pvName) > 0 {
 | 
						if c != nil && len(pvName) > 0 {
 | 
				
			||||||
		framework.Logf("Deleting PersistentVolume %q", pvName)
 | 
							framework.Logf("Deleting PersistentVolume %q", pvName)
 | 
				
			||||||
		err := c.CoreV1().PersistentVolumes().Delete(pvName, nil)
 | 
							err := c.CoreV1().PersistentVolumes().Delete(pvName, nil)
 | 
				
			||||||
		if err != nil && !apierrs.IsNotFound(err) {
 | 
							if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
			return fmt.Errorf("PV Delete API error: %v", err)
 | 
								return fmt.Errorf("PV Delete API error: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -198,7 +198,7 @@ func DeletePersistentVolumeClaim(c clientset.Interface, pvcName string, ns strin
 | 
				
			|||||||
	if c != nil && len(pvcName) > 0 {
 | 
						if c != nil && len(pvcName) > 0 {
 | 
				
			||||||
		framework.Logf("Deleting PersistentVolumeClaim %q", pvcName)
 | 
							framework.Logf("Deleting PersistentVolumeClaim %q", pvcName)
 | 
				
			||||||
		err := c.CoreV1().PersistentVolumeClaims(ns).Delete(pvcName, nil)
 | 
							err := c.CoreV1().PersistentVolumeClaims(ns).Delete(pvcName, nil)
 | 
				
			||||||
		if err != nil && !apierrs.IsNotFound(err) {
 | 
							if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
			return fmt.Errorf("PVC Delete API error: %v", err)
 | 
								return fmt.Errorf("PVC Delete API error: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -275,10 +275,10 @@ func DeletePVCandValidatePVGroup(c clientset.Interface, ns string, pvols PVMap,
 | 
				
			|||||||
				if err = DeletePVCandValidatePV(c, ns, pvc, pv, expectPVPhase); err != nil {
 | 
									if err = DeletePVCandValidatePV(c, ns, pvc, pv, expectPVPhase); err != nil {
 | 
				
			||||||
					return err
 | 
										return err
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} else if !apierrs.IsNotFound(err) {
 | 
								} else if !apierrors.IsNotFound(err) {
 | 
				
			||||||
				return fmt.Errorf("PVC Get API error: %v", err)
 | 
									return fmt.Errorf("PVC Get API error: %v", err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// delete pvckey from map even if apierrs.IsNotFound above is true and thus the
 | 
								// delete pvckey from map even if apierrors.IsNotFound above is true and thus the
 | 
				
			||||||
			// claim was not actually deleted here
 | 
								// claim was not actually deleted here
 | 
				
			||||||
			delete(claims, pvcKey)
 | 
								delete(claims, pvcKey)
 | 
				
			||||||
			deletedPVCs++
 | 
								deletedPVCs++
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,7 @@ package framework
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	utilversion "k8s.io/apimachinery/pkg/util/version"
 | 
						utilversion "k8s.io/apimachinery/pkg/util/version"
 | 
				
			||||||
@@ -65,7 +65,7 @@ func SkipIfMissingResource(dynamicClient dynamic.Interface, gvr schema.GroupVers
 | 
				
			|||||||
	_, err := resourceClient.List(metav1.ListOptions{})
 | 
						_, err := resourceClient.List(metav1.ListOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		// not all resources support list, so we ignore those
 | 
							// not all resources support list, so we ignore those
 | 
				
			||||||
		if apierrs.IsMethodNotSupported(err) || apierrs.IsNotFound(err) || apierrs.IsForbidden(err) {
 | 
							if apierrors.IsMethodNotSupported(err) || apierrors.IsNotFound(err) || apierrors.IsForbidden(err) {
 | 
				
			||||||
			skipInternalf(1, "Could not find %s resource, skipping test: %#v", gvr, err)
 | 
								skipInternalf(1, "Could not find %s resource, skipping test: %#v", gvr, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		Failf("Unexpected error getting %v: %v", gvr, err)
 | 
							Failf("Unexpected error getting %v: %v", gvr, err)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	appsv1 "k8s.io/api/apps/v1"
 | 
						appsv1 "k8s.io/api/apps/v1"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	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/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
@@ -256,7 +256,7 @@ func update(c clientset.Interface, ns, name string, update func(ss *appsv1.State
 | 
				
			|||||||
		if err == nil {
 | 
							if err == nil {
 | 
				
			||||||
			return ss
 | 
								return ss
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !apierrs.IsConflict(err) && !apierrs.IsServerTimeout(err) {
 | 
							if !apierrors.IsConflict(err) && !apierrors.IsServerTimeout(err) {
 | 
				
			||||||
			e2efwk.Failf("failed to update statefulset %q: %v", name, err)
 | 
								e2efwk.Failf("failed to update statefulset %q: %v", name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	appsv1 "k8s.io/api/apps/v1"
 | 
						appsv1 "k8s.io/api/apps/v1"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/fields"
 | 
						"k8s.io/apimachinery/pkg/fields"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/labels"
 | 
						"k8s.io/apimachinery/pkg/labels"
 | 
				
			||||||
@@ -346,7 +346,7 @@ func WaitForPersistentVolumeDeleted(c clientset.Interface, pvName string, Poll,
 | 
				
			|||||||
			Logf("PersistentVolume %s found and phase=%s (%v)", pvName, pv.Status.Phase, time.Since(start))
 | 
								Logf("PersistentVolume %s found and phase=%s (%v)", pvName, pv.Status.Phase, time.Since(start))
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			Logf("PersistentVolume %s was removed", pvName)
 | 
								Logf("PersistentVolume %s was removed", pvName)
 | 
				
			||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -365,7 +365,7 @@ func findAvailableNamespaceName(baseName string, c clientset.Interface) (string,
 | 
				
			|||||||
			// Already taken
 | 
								// Already taken
 | 
				
			||||||
			return false, nil
 | 
								return false, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		Logf("Unexpected error while getting namespace: %v", err)
 | 
							Logf("Unexpected error while getting namespace: %v", err)
 | 
				
			||||||
@@ -470,7 +470,7 @@ func WaitForService(c clientset.Interface, namespace, name string, exist bool, i
 | 
				
			|||||||
		case err == nil:
 | 
							case err == nil:
 | 
				
			||||||
			Logf("Service %s in namespace %s found.", name, namespace)
 | 
								Logf("Service %s in namespace %s found.", name, namespace)
 | 
				
			||||||
			return exist, nil
 | 
								return exist, nil
 | 
				
			||||||
		case apierrs.IsNotFound(err):
 | 
							case apierrors.IsNotFound(err):
 | 
				
			||||||
			Logf("Service %s in namespace %s disappeared.", name, namespace)
 | 
								Logf("Service %s in namespace %s disappeared.", name, namespace)
 | 
				
			||||||
			return !exist, nil
 | 
								return !exist, nil
 | 
				
			||||||
		case !testutils.IsRetryableAPIError(err):
 | 
							case !testutils.IsRetryableAPIError(err):
 | 
				
			||||||
@@ -1190,7 +1190,7 @@ func DeleteResourceAndWaitForGC(c clientset.Interface, kind schema.GroupKind, ns
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	rtObject, err := e2eresource.GetRuntimeObjectForKind(c, kind, ns, name)
 | 
						rtObject, err := e2eresource.GetRuntimeObjectForKind(c, kind, ns, name)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			Logf("%v %s not found: %v", kind, name, err)
 | 
								Logf("%v %s not found: %v", kind, name, err)
 | 
				
			||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	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"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
@@ -372,7 +372,7 @@ func StartVolumeServer(client clientset.Interface, config TestConfig) *v1.Pod {
 | 
				
			|||||||
	serverPod, err := podClient.Create(serverPod)
 | 
						serverPod, err := podClient.Create(serverPod)
 | 
				
			||||||
	// ok if the server pod already exists. TODO: make this controllable by callers
 | 
						// ok if the server pod already exists. TODO: make this controllable by callers
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		if apierrs.IsAlreadyExists(err) {
 | 
							if apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			framework.Logf("Ignore \"already-exists\" error, re-get pod...")
 | 
								framework.Logf("Ignore \"already-exists\" error, re-get pod...")
 | 
				
			||||||
			ginkgo.By(fmt.Sprintf("re-getting the %q server pod", serverPodName))
 | 
								ginkgo.By(fmt.Sprintf("re-getting the %q server pod", serverPodName))
 | 
				
			||||||
			serverPod, err = podClient.Get(serverPodName, metav1.GetOptions{})
 | 
								serverPod, err = podClient.Get(serverPodName, metav1.GetOptions{})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,7 +45,7 @@ import (
 | 
				
			|||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
 | 
						apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/api/meta"
 | 
						"k8s.io/apimachinery/pkg/api/meta"
 | 
				
			||||||
	"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"
 | 
				
			||||||
@@ -1325,9 +1325,9 @@ metadata:
 | 
				
			|||||||
						framework.Logf("Get endpoints failed (interval %v): %v", framework.Poll, err)
 | 
											framework.Logf("Get endpoints failed (interval %v): %v", framework.Poll, err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
						// if the error is API not found or could not find default credentials or TLS handshake timeout, try again
 | 
											// if the error is API not found or could not find default credentials or TLS handshake timeout, try again
 | 
				
			||||||
						if apierrs.IsNotFound(err) ||
 | 
											if apierrors.IsNotFound(err) ||
 | 
				
			||||||
							apierrs.IsUnauthorized(err) ||
 | 
												apierrors.IsUnauthorized(err) ||
 | 
				
			||||||
							apierrs.IsServerTimeout(err) {
 | 
												apierrors.IsServerTimeout(err) {
 | 
				
			||||||
							err = nil
 | 
												err = nil
 | 
				
			||||||
						}
 | 
											}
 | 
				
			||||||
						return false, err
 | 
											return false, err
 | 
				
			||||||
@@ -1969,7 +1969,7 @@ metadata:
 | 
				
			|||||||
			ginkgo.By("verifying the job " + jobName + " was deleted")
 | 
								ginkgo.By("verifying the job " + jobName + " was deleted")
 | 
				
			||||||
			_, err = c.BatchV1().Jobs(ns).Get(jobName, metav1.GetOptions{})
 | 
								_, err = c.BatchV1().Jobs(ns).Get(jobName, metav1.GetOptions{})
 | 
				
			||||||
			framework.ExpectError(err)
 | 
								framework.ExpectError(err)
 | 
				
			||||||
			framework.ExpectEqual(apierrs.IsNotFound(err), true)
 | 
								framework.ExpectEqual(apierrors.IsNotFound(err), true)
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,8 +22,8 @@ import (
 | 
				
			|||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						"k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
@@ -139,7 +139,7 @@ func WaitForBootstrapTokenSecretToDisappear(c clientset.Interface, tokenID strin
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return wait.Poll(framework.Poll, 1*time.Minute, func() (bool, error) {
 | 
						return wait.Poll(framework.Poll, 1*time.Minute, func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().Secrets(metav1.NamespaceSystem).Get(bootstrapapi.BootstrapTokenSecretPrefix+tokenID, metav1.GetOptions{})
 | 
							_, err := c.CoreV1().Secrets(metav1.NamespaceSystem).Get(bootstrapapi.BootstrapTokenSecretPrefix+tokenID, metav1.GetOptions{})
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return false, nil
 | 
							return false, nil
 | 
				
			||||||
@@ -150,7 +150,7 @@ func WaitForBootstrapTokenSecretToDisappear(c clientset.Interface, tokenID strin
 | 
				
			|||||||
func WaitForBootstrapTokenSecretNotDisappear(c clientset.Interface, tokenID string, t time.Duration) error {
 | 
					func WaitForBootstrapTokenSecretNotDisappear(c clientset.Interface, tokenID string, t time.Duration) error {
 | 
				
			||||||
	err := wait.Poll(framework.Poll, t, func() (bool, error) {
 | 
						err := wait.Poll(framework.Poll, t, func() (bool, error) {
 | 
				
			||||||
		secret, err := c.CoreV1().Secrets(metav1.NamespaceSystem).Get(bootstrapapi.BootstrapTokenSecretPrefix+tokenID, metav1.GetOptions{})
 | 
							secret, err := c.CoreV1().Secrets(metav1.NamespaceSystem).Get(bootstrapapi.BootstrapTokenSecretPrefix+tokenID, metav1.GetOptions{})
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return true, errors.New("secret not exists")
 | 
								return true, errors.New("secret not exists")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if secret != nil {
 | 
							if secret != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	nodev1beta1 "k8s.io/api/node/v1beta1"
 | 
						nodev1beta1 "k8s.io/api/node/v1beta1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	runtimeclasstest "k8s.io/kubernetes/pkg/kubelet/runtimeclass/testing"
 | 
						runtimeclasstest "k8s.io/kubernetes/pkg/kubelet/runtimeclass/testing"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
@@ -55,7 +55,7 @@ var _ = ginkgo.Describe("[sig-node] RuntimeClass", func() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		_, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod)
 | 
							_, err = f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(pod)
 | 
				
			||||||
		framework.ExpectError(err, "should be forbidden")
 | 
							framework.ExpectError(err, "should be forbidden")
 | 
				
			||||||
		framework.ExpectEqual(apierrs.IsForbidden(err), true, "should be forbidden error")
 | 
							framework.ExpectEqual(apierrors.IsForbidden(err), true, "should be forbidden error")
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ginkgo.It("should run a Pod requesting a RuntimeClass with scheduling [NodeFeature:RuntimeHandler] [Disruptive] ", func() {
 | 
						ginkgo.It("should run a Pod requesting a RuntimeClass with scheduling [NodeFeature:RuntimeHandler] [Disruptive] ", func() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,7 @@ import (
 | 
				
			|||||||
	_ "github.com/stretchr/testify/assert"
 | 
						_ "github.com/stretchr/testify/assert"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	"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/util/uuid"
 | 
						"k8s.io/apimachinery/pkg/util/uuid"
 | 
				
			||||||
@@ -84,7 +84,7 @@ func addOrUpdateAvoidPodOnNode(c clientset.Interface, nodeName string, avoidPods
 | 
				
			|||||||
		node.Annotations[v1.PreferAvoidPodsAnnotationKey] = string(taintsData)
 | 
							node.Annotations[v1.PreferAvoidPodsAnnotationKey] = string(taintsData)
 | 
				
			||||||
		_, err = c.CoreV1().Nodes().Update(node)
 | 
							_, err = c.CoreV1().Nodes().Update(node)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if !apierrs.IsConflict(err) {
 | 
								if !apierrors.IsConflict(err) {
 | 
				
			||||||
				framework.ExpectNoError(err)
 | 
									framework.ExpectNoError(err)
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				framework.Logf("Conflict when trying to add/update avoidPods %v to %v with error %v", avoidPods, nodeName, err)
 | 
									framework.Logf("Conflict when trying to add/update avoidPods %v to %v with error %v", avoidPods, nodeName, err)
 | 
				
			||||||
@@ -113,7 +113,7 @@ func removeAvoidPodsOffNode(c clientset.Interface, nodeName string) {
 | 
				
			|||||||
		delete(node.Annotations, v1.PreferAvoidPodsAnnotationKey)
 | 
							delete(node.Annotations, v1.PreferAvoidPodsAnnotationKey)
 | 
				
			||||||
		_, err = c.CoreV1().Nodes().Update(node)
 | 
							_, err = c.CoreV1().Nodes().Update(node)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if !apierrs.IsConflict(err) {
 | 
								if !apierrors.IsConflict(err) {
 | 
				
			||||||
				framework.ExpectNoError(err)
 | 
									framework.ExpectNoError(err)
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				framework.Logf("Conflict when trying to remove avoidPods to %v", nodeName)
 | 
									framework.Logf("Conflict when trying to remove avoidPods to %v", nodeName)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
	e2enode "k8s.io/kubernetes/test/e2e/framework/node"
 | 
						e2enode "k8s.io/kubernetes/test/e2e/framework/node"
 | 
				
			||||||
@@ -193,7 +193,7 @@ var _ = utils.SIGDescribe("Flexvolumes", func() {
 | 
				
			|||||||
		testFlexVolume(driverInstallAs, config, f)
 | 
							testFlexVolume(driverInstallAs, config, f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ginkgo.By("waiting for flex client pod to terminate")
 | 
							ginkgo.By("waiting for flex client pod to terminate")
 | 
				
			||||||
		if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrs.IsNotFound(err) {
 | 
							if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.ExpectNoError(err, "Failed to wait client pod terminated: %v", err)
 | 
								framework.ExpectNoError(err, "Failed to wait client pod terminated: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -213,7 +213,7 @@ var _ = utils.SIGDescribe("Flexvolumes", func() {
 | 
				
			|||||||
		testFlexVolume(driverInstallAs, config, f)
 | 
							testFlexVolume(driverInstallAs, config, f)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ginkgo.By("waiting for flex client pod to terminate")
 | 
							ginkgo.By("waiting for flex client pod to terminate")
 | 
				
			||||||
		if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrs.IsNotFound(err) {
 | 
							if err := f.WaitForPodTerminated(config.Prefix+"-client", ""); !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.ExpectNoError(err, "Failed to wait client pod terminated: %v", err)
 | 
								framework.ExpectNoError(err, "Failed to wait client pod terminated: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,8 +22,8 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						"k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/slice"
 | 
						"k8s.io/kubernetes/pkg/util/slice"
 | 
				
			||||||
@@ -41,7 +41,7 @@ func waitForPersistentVolumeClaimDeleted(c clientset.Interface, ns string, pvcNa
 | 
				
			|||||||
	for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) {
 | 
						for start := time.Now(); time.Since(start) < timeout; time.Sleep(Poll) {
 | 
				
			||||||
		_, err := c.CoreV1().PersistentVolumeClaims(ns).Get(pvcName, metav1.GetOptions{})
 | 
							_, err := c.CoreV1().PersistentVolumeClaims(ns).Get(pvcName, metav1.GetOptions{})
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if apierrs.IsNotFound(err) {
 | 
								if apierrors.IsNotFound(err) {
 | 
				
			||||||
				framework.Logf("Claim %q in namespace %q doesn't exist in the system", pvcName, ns)
 | 
									framework.Logf("Claim %q in namespace %q doesn't exist in the system", pvcName, ns)
 | 
				
			||||||
				return nil
 | 
									return nil
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,11 +30,10 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	storagev1 "k8s.io/api/storage/v1"
 | 
						storagev1 "k8s.io/api/storage/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	"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/apis/meta/v1/unstructured"
 | 
						"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
				
			||||||
	apierrors "k8s.io/apimachinery/pkg/util/errors"
 | 
					 | 
				
			||||||
	utilerrors "k8s.io/apimachinery/pkg/util/errors"
 | 
						utilerrors "k8s.io/apimachinery/pkg/util/errors"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
@@ -317,7 +316,7 @@ func (r *VolumeResource) CleanupResource() error {
 | 
				
			|||||||
			cleanUpErrs = append(cleanUpErrs, errors.Wrap(err, "Failed to delete Volume"))
 | 
								cleanUpErrs = append(cleanUpErrs, errors.Wrap(err, "Failed to delete Volume"))
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return apierrors.NewAggregate(cleanUpErrs)
 | 
						return utilerrors.NewAggregate(cleanUpErrs)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func createPVCPV(
 | 
					func createPVCPV(
 | 
				
			||||||
@@ -409,7 +408,7 @@ func isDelayedBinding(sc *storagev1.StorageClass) bool {
 | 
				
			|||||||
// deleteStorageClass deletes the passed in StorageClass and catches errors other than "Not Found"
 | 
					// deleteStorageClass deletes the passed in StorageClass and catches errors other than "Not Found"
 | 
				
			||||||
func deleteStorageClass(cs clientset.Interface, className string) error {
 | 
					func deleteStorageClass(cs clientset.Interface, className string) error {
 | 
				
			||||||
	err := cs.StorageV1().StorageClasses().Delete(className, nil)
 | 
						err := cs.StorageV1().StorageClasses().Delete(className, nil)
 | 
				
			||||||
	if err != nil && !apierrs.IsNotFound(err) {
 | 
						if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	storagev1 "k8s.io/api/storage/v1"
 | 
						storagev1 "k8s.io/api/storage/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	"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/apis/meta/v1/unstructured"
 | 
						"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 | 
				
			||||||
@@ -247,7 +247,7 @@ func (t StorageClassTest) TestDynamicProvisioning() *v1.PersistentVolume {
 | 
				
			|||||||
		_, err = client.StorageV1().StorageClasses().Create(class)
 | 
							_, err = client.StorageV1().StorageClasses().Create(class)
 | 
				
			||||||
		// The "should provision storage with snapshot data source" test already has created the class.
 | 
							// The "should provision storage with snapshot data source" test already has created the class.
 | 
				
			||||||
		// TODO: make class creation optional and remove the IsAlreadyExists exception
 | 
							// TODO: make class creation optional and remove the IsAlreadyExists exception
 | 
				
			||||||
		framework.ExpectEqual(err == nil || apierrs.IsAlreadyExists(err), true)
 | 
							framework.ExpectEqual(err == nil || apierrors.IsAlreadyExists(err), true)
 | 
				
			||||||
		class, err = client.StorageV1().StorageClasses().Get(class.Name, metav1.GetOptions{})
 | 
							class, err = client.StorageV1().StorageClasses().Get(class.Name, metav1.GetOptions{})
 | 
				
			||||||
		framework.ExpectNoError(err)
 | 
							framework.ExpectNoError(err)
 | 
				
			||||||
		defer func() {
 | 
							defer func() {
 | 
				
			||||||
@@ -263,7 +263,7 @@ func (t StorageClassTest) TestDynamicProvisioning() *v1.PersistentVolume {
 | 
				
			|||||||
		framework.Logf("deleting claim %q/%q", claim.Namespace, claim.Name)
 | 
							framework.Logf("deleting claim %q/%q", claim.Namespace, claim.Name)
 | 
				
			||||||
		// typically this claim has already been deleted
 | 
							// typically this claim has already been deleted
 | 
				
			||||||
		err = client.CoreV1().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, nil)
 | 
							err = client.CoreV1().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, nil)
 | 
				
			||||||
		if err != nil && !apierrs.IsNotFound(err) {
 | 
							if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.Failf("Error deleting claim %q. Error: %v", claim.Name, err)
 | 
								framework.Failf("Error deleting claim %q. Error: %v", claim.Name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
@@ -670,13 +670,13 @@ func prepareSnapshotDataSourceForProvisioning(
 | 
				
			|||||||
	cleanupFunc := func() {
 | 
						cleanupFunc := func() {
 | 
				
			||||||
		framework.Logf("deleting snapshot %q/%q", snapshot.GetNamespace(), snapshot.GetName())
 | 
							framework.Logf("deleting snapshot %q/%q", snapshot.GetNamespace(), snapshot.GetName())
 | 
				
			||||||
		err = dynamicClient.Resource(snapshotGVR).Namespace(updatedClaim.Namespace).Delete(snapshot.GetName(), nil)
 | 
							err = dynamicClient.Resource(snapshotGVR).Namespace(updatedClaim.Namespace).Delete(snapshot.GetName(), nil)
 | 
				
			||||||
		if err != nil && !apierrs.IsNotFound(err) {
 | 
							if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.Failf("Error deleting snapshot %q. Error: %v", snapshot.GetName(), err)
 | 
								framework.Failf("Error deleting snapshot %q. Error: %v", snapshot.GetName(), err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		framework.Logf("deleting initClaim %q/%q", updatedClaim.Namespace, updatedClaim.Name)
 | 
							framework.Logf("deleting initClaim %q/%q", updatedClaim.Namespace, updatedClaim.Name)
 | 
				
			||||||
		err = client.CoreV1().PersistentVolumeClaims(updatedClaim.Namespace).Delete(updatedClaim.Name, nil)
 | 
							err = client.CoreV1().PersistentVolumeClaims(updatedClaim.Namespace).Delete(updatedClaim.Name, nil)
 | 
				
			||||||
		if err != nil && !apierrs.IsNotFound(err) {
 | 
							if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.Failf("Error deleting initClaim %q. Error: %v", updatedClaim.Name, err)
 | 
								framework.Failf("Error deleting initClaim %q. Error: %v", updatedClaim.Name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -718,7 +718,7 @@ func preparePVCDataSourceForProvisioning(
 | 
				
			|||||||
	cleanupFunc := func() {
 | 
						cleanupFunc := func() {
 | 
				
			||||||
		framework.Logf("deleting source PVC %q/%q", sourcePVC.Namespace, sourcePVC.Name)
 | 
							framework.Logf("deleting source PVC %q/%q", sourcePVC.Namespace, sourcePVC.Name)
 | 
				
			||||||
		err = client.CoreV1().PersistentVolumeClaims(sourcePVC.Namespace).Delete(sourcePVC.Name, nil)
 | 
							err = client.CoreV1().PersistentVolumeClaims(sourcePVC.Namespace).Delete(sourcePVC.Name, nil)
 | 
				
			||||||
		if err != nil && !apierrs.IsNotFound(err) {
 | 
							if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
			framework.Failf("Error deleting source PVC %q. Error: %v", sourcePVC.Name, err)
 | 
								framework.Failf("Error deleting source PVC %q. Error: %v", sourcePVC.Name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,7 +23,7 @@ import (
 | 
				
			|||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	"k8s.io/client-go/dynamic"
 | 
						"k8s.io/client-go/dynamic"
 | 
				
			||||||
@@ -143,7 +143,7 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt
 | 
				
			|||||||
			framework.Logf("deleting claim %q/%q", pvc.Namespace, pvc.Name)
 | 
								framework.Logf("deleting claim %q/%q", pvc.Namespace, pvc.Name)
 | 
				
			||||||
			// typically this claim has already been deleted
 | 
								// typically this claim has already been deleted
 | 
				
			||||||
			err = cs.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(pvc.Name, nil)
 | 
								err = cs.CoreV1().PersistentVolumeClaims(pvc.Namespace).Delete(pvc.Name, nil)
 | 
				
			||||||
			if err != nil && !apierrs.IsNotFound(err) {
 | 
								if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
				framework.Failf("Error deleting claim %q. Error: %v", pvc.Name, err)
 | 
									framework.Failf("Error deleting claim %q. Error: %v", pvc.Name, err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}()
 | 
							}()
 | 
				
			||||||
@@ -182,7 +182,7 @@ func (s *snapshottableTestSuite) DefineTests(driver TestDriver, pattern testpatt
 | 
				
			|||||||
			framework.Logf("deleting snapshot %q/%q", snapshot.GetNamespace(), snapshot.GetName())
 | 
								framework.Logf("deleting snapshot %q/%q", snapshot.GetNamespace(), snapshot.GetName())
 | 
				
			||||||
			// typically this snapshot has already been deleted
 | 
								// typically this snapshot has already been deleted
 | 
				
			||||||
			err = dc.Resource(snapshotGVR).Namespace(snapshot.GetNamespace()).Delete(snapshot.GetName(), nil)
 | 
								err = dc.Resource(snapshotGVR).Namespace(snapshot.GetNamespace()).Delete(snapshot.GetName(), nil)
 | 
				
			||||||
			if err != nil && !apierrs.IsNotFound(err) {
 | 
								if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
				framework.Failf("Error deleting snapshot %q. Error: %v", pvc.Name, err)
 | 
									framework.Failf("Error deleting snapshot %q. Error: %v", pvc.Name, err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}()
 | 
							}()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,7 +29,7 @@ import (
 | 
				
			|||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	storagev1 "k8s.io/api/storage/v1"
 | 
						storagev1 "k8s.io/api/storage/v1"
 | 
				
			||||||
	storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
						storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
@@ -155,7 +155,7 @@ func CreateItems(f *framework.Framework, items ...interface{}) (func(), error) {
 | 
				
			|||||||
		// command line flags, because they would also start to apply
 | 
							// command line flags, because they would also start to apply
 | 
				
			||||||
		// to non-namespaced items.
 | 
							// to non-namespaced items.
 | 
				
			||||||
		for _, destructor := range destructors {
 | 
							for _, destructor := range destructors {
 | 
				
			||||||
			if err := destructor(); err != nil && !apierrs.IsNotFound(err) {
 | 
								if err := destructor(); err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
				framework.Logf("deleting failed: %s", err)
 | 
									framework.Logf("deleting failed: %s", err)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
@@ -581,7 +581,7 @@ func PrivilegedTestPSPClusterRoleBinding(client clientset.Interface,
 | 
				
			|||||||
		roleBindingClient.Delete(binding.GetName(), &metav1.DeleteOptions{})
 | 
							roleBindingClient.Delete(binding.GetName(), &metav1.DeleteOptions{})
 | 
				
			||||||
		err := wait.Poll(2*time.Second, 2*time.Minute, func() (bool, error) {
 | 
							err := wait.Poll(2*time.Second, 2*time.Minute, func() (bool, error) {
 | 
				
			||||||
			_, err := roleBindingClient.Get(binding.GetName(), metav1.GetOptions{})
 | 
								_, err := roleBindingClient.Get(binding.GetName(), metav1.GetOptions{})
 | 
				
			||||||
			return apierrs.IsNotFound(err), nil
 | 
								return apierrors.IsNotFound(err), nil
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
		framework.ExpectNoError(err, "Timed out waiting for deletion: %v", err)
 | 
							framework.ExpectNoError(err, "Timed out waiting for deletion: %v", err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,7 +33,7 @@ import (
 | 
				
			|||||||
	rbacv1 "k8s.io/api/rbac/v1"
 | 
						rbacv1 "k8s.io/api/rbac/v1"
 | 
				
			||||||
	storagev1 "k8s.io/api/storage/v1"
 | 
						storagev1 "k8s.io/api/storage/v1"
 | 
				
			||||||
	storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
						storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/types"
 | 
						"k8s.io/apimachinery/pkg/types"
 | 
				
			||||||
@@ -810,7 +810,7 @@ var _ = utils.SIGDescribe("Dynamic Provisioning", func() {
 | 
				
			|||||||
			defer func() {
 | 
								defer func() {
 | 
				
			||||||
				framework.Logf("deleting claim %q/%q", claim.Namespace, claim.Name)
 | 
									framework.Logf("deleting claim %q/%q", claim.Namespace, claim.Name)
 | 
				
			||||||
				err = c.CoreV1().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, nil)
 | 
									err = c.CoreV1().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, nil)
 | 
				
			||||||
				if err != nil && !apierrs.IsNotFound(err) {
 | 
									if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
					framework.Failf("Error deleting claim %q. Error: %v", claim.Name, err)
 | 
										framework.Failf("Error deleting claim %q. Error: %v", claim.Name, err)
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}()
 | 
								}()
 | 
				
			||||||
@@ -1039,7 +1039,7 @@ func waitForProvisionedVolumesDeleted(c clientset.Interface, scName string) ([]*
 | 
				
			|||||||
// deleteStorageClass deletes the passed in StorageClass and catches errors other than "Not Found"
 | 
					// deleteStorageClass deletes the passed in StorageClass and catches errors other than "Not Found"
 | 
				
			||||||
func deleteStorageClass(c clientset.Interface, className string) {
 | 
					func deleteStorageClass(c clientset.Interface, className string) {
 | 
				
			||||||
	err := c.StorageV1().StorageClasses().Delete(className, nil)
 | 
						err := c.StorageV1().StorageClasses().Delete(className, nil)
 | 
				
			||||||
	if err != nil && !apierrs.IsNotFound(err) {
 | 
						if err != nil && !apierrors.IsNotFound(err) {
 | 
				
			||||||
		framework.ExpectNoError(err)
 | 
							framework.ExpectNoError(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
@@ -246,7 +246,7 @@ func deletePVCAfterBind(c clientset.Interface, ns string, pvc *v1.PersistentVolu
 | 
				
			|||||||
	ginkgo.By("delete pvc")
 | 
						ginkgo.By("delete pvc")
 | 
				
			||||||
	framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name)
 | 
						framework.ExpectNoError(e2epv.DeletePersistentVolumeClaim(c, pvc.Name, ns), "Failed to delete PVC ", pvc.Name)
 | 
				
			||||||
	_, err = c.CoreV1().PersistentVolumeClaims(ns).Get(pvc.Name, metav1.GetOptions{})
 | 
						_, err = c.CoreV1().PersistentVolumeClaims(ns).Get(pvc.Name, metav1.GetOptions{})
 | 
				
			||||||
	if !apierrs.IsNotFound(err) {
 | 
						if !apierrors.IsNotFound(err) {
 | 
				
			||||||
		framework.ExpectNoError(err)
 | 
							framework.ExpectNoError(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/onsi/ginkgo"
 | 
						"github.com/onsi/ginkgo"
 | 
				
			||||||
	"github.com/onsi/gomega"
 | 
						"github.com/onsi/gomega"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
						"k8s.io/kubernetes/test/e2e/framework"
 | 
				
			||||||
@@ -112,7 +112,7 @@ var _ = utils.SIGDescribe("vsphere statefulset", func() {
 | 
				
			|||||||
		for _, sspod := range ssPodsBeforeScaleDown.Items {
 | 
							for _, sspod := range ssPodsBeforeScaleDown.Items {
 | 
				
			||||||
			_, err := client.CoreV1().Pods(namespace).Get(sspod.Name, metav1.GetOptions{})
 | 
								_, err := client.CoreV1().Pods(namespace).Get(sspod.Name, metav1.GetOptions{})
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				framework.ExpectEqual(apierrs.IsNotFound(err), true)
 | 
									framework.ExpectEqual(apierrors.IsNotFound(err), true)
 | 
				
			||||||
				for _, volumespec := range sspod.Spec.Volumes {
 | 
									for _, volumespec := range sspod.Spec.Volumes {
 | 
				
			||||||
					if volumespec.PersistentVolumeClaim != nil {
 | 
										if volumespec.PersistentVolumeClaim != nil {
 | 
				
			||||||
						vSpherediskPath := getvSphereVolumePathFromClaim(client, statefulset.Namespace, volumespec.PersistentVolumeClaim.ClaimName)
 | 
											vSpherediskPath := getvSphereVolumePathFromClaim(client, statefulset.Namespace, volumespec.PersistentVolumeClaim.ClaimName)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ import (
 | 
				
			|||||||
	apps "k8s.io/api/apps/v1"
 | 
						apps "k8s.io/api/apps/v1"
 | 
				
			||||||
	batch "k8s.io/api/batch/v1"
 | 
						batch "k8s.io/api/batch/v1"
 | 
				
			||||||
	"k8s.io/api/core/v1"
 | 
						"k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	utilnet "k8s.io/apimachinery/pkg/util/net"
 | 
						utilnet "k8s.io/apimachinery/pkg/util/net"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
@@ -52,12 +52,12 @@ func RetryWithExponentialBackOff(fn wait.ConditionFunc) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func IsRetryableAPIError(err error) bool {
 | 
					func IsRetryableAPIError(err error) bool {
 | 
				
			||||||
	// These errors may indicate a transient error that we can retry in tests.
 | 
						// These errors may indicate a transient error that we can retry in tests.
 | 
				
			||||||
	if apierrs.IsInternalError(err) || apierrs.IsTimeout(err) || apierrs.IsServerTimeout(err) ||
 | 
						if apierrors.IsInternalError(err) || apierrors.IsTimeout(err) || apierrors.IsServerTimeout(err) ||
 | 
				
			||||||
		apierrs.IsTooManyRequests(err) || utilnet.IsProbableEOF(err) || utilnet.IsConnectionReset(err) {
 | 
							apierrors.IsTooManyRequests(err) || utilnet.IsProbableEOF(err) || utilnet.IsConnectionReset(err) {
 | 
				
			||||||
		return true
 | 
							return true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// If the error sends the Retry-After header, we respect it as an explicit confirmation we should retry.
 | 
						// If the error sends the Retry-After header, we respect it as an explicit confirmation we should retry.
 | 
				
			||||||
	if _, shouldRetry := apierrs.SuggestsClientDelay(err); shouldRetry {
 | 
						if _, shouldRetry := apierrors.SuggestsClientDelay(err); shouldRetry {
 | 
				
			||||||
		return true
 | 
							return true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return false
 | 
						return false
 | 
				
			||||||
@@ -69,7 +69,7 @@ func CreatePodWithRetries(c clientset.Interface, namespace string, obj *v1.Pod)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().Pods(namespace).Create(obj)
 | 
							_, err := c.CoreV1().Pods(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -86,7 +86,7 @@ func CreateRCWithRetries(c clientset.Interface, namespace string, obj *v1.Replic
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().ReplicationControllers(namespace).Create(obj)
 | 
							_, err := c.CoreV1().ReplicationControllers(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -103,7 +103,7 @@ func CreateReplicaSetWithRetries(c clientset.Interface, namespace string, obj *a
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.AppsV1().ReplicaSets(namespace).Create(obj)
 | 
							_, err := c.AppsV1().ReplicaSets(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -120,7 +120,7 @@ func CreateDeploymentWithRetries(c clientset.Interface, namespace string, obj *a
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.AppsV1().Deployments(namespace).Create(obj)
 | 
							_, err := c.AppsV1().Deployments(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -137,7 +137,7 @@ func CreateDaemonSetWithRetries(c clientset.Interface, namespace string, obj *ap
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.AppsV1().DaemonSets(namespace).Create(obj)
 | 
							_, err := c.AppsV1().DaemonSets(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -154,7 +154,7 @@ func CreateJobWithRetries(c clientset.Interface, namespace string, obj *batch.Jo
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.BatchV1().Jobs(namespace).Create(obj)
 | 
							_, err := c.BatchV1().Jobs(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -171,7 +171,7 @@ func CreateSecretWithRetries(c clientset.Interface, namespace string, obj *v1.Se
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().Secrets(namespace).Create(obj)
 | 
							_, err := c.CoreV1().Secrets(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -188,7 +188,7 @@ func CreateConfigMapWithRetries(c clientset.Interface, namespace string, obj *v1
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().ConfigMaps(namespace).Create(obj)
 | 
							_, err := c.CoreV1().ConfigMaps(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -205,7 +205,7 @@ func CreateServiceWithRetries(c clientset.Interface, namespace string, obj *v1.S
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().Services(namespace).Create(obj)
 | 
							_, err := c.CoreV1().Services(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -222,7 +222,7 @@ func CreateResourceQuotaWithRetries(c clientset.Interface, namespace string, obj
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().ResourceQuotas(namespace).Create(obj)
 | 
							_, err := c.CoreV1().ResourceQuotas(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -239,7 +239,7 @@ func CreatePersistentVolumeWithRetries(c clientset.Interface, obj *v1.Persistent
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().PersistentVolumes().Create(obj)
 | 
							_, err := c.CoreV1().PersistentVolumes().Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
@@ -256,7 +256,7 @@ func CreatePersistentVolumeClaimWithRetries(c clientset.Interface, namespace str
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	createFunc := func() (bool, error) {
 | 
						createFunc := func() (bool, error) {
 | 
				
			||||||
		_, err := c.CoreV1().PersistentVolumeClaims(namespace).Create(obj)
 | 
							_, err := c.CoreV1().PersistentVolumeClaims(namespace).Create(obj)
 | 
				
			||||||
		if err == nil || apierrs.IsAlreadyExists(err) {
 | 
							if err == nil || apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ package utils
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
@@ -59,7 +59,7 @@ func deleteResource(c clientset.Interface, kind schema.GroupKind, namespace, nam
 | 
				
			|||||||
func DeleteResourceWithRetries(c clientset.Interface, kind schema.GroupKind, namespace, name string, options *metav1.DeleteOptions) error {
 | 
					func DeleteResourceWithRetries(c clientset.Interface, kind schema.GroupKind, namespace, name string, options *metav1.DeleteOptions) error {
 | 
				
			||||||
	deleteFunc := func() (bool, error) {
 | 
						deleteFunc := func() (bool, error) {
 | 
				
			||||||
		err := deleteResource(c, kind, namespace, name, options)
 | 
							err := deleteResource(c, kind, namespace, name, options)
 | 
				
			||||||
		if err == nil || apierrs.IsNotFound(err) {
 | 
							if err == nil || apierrors.IsNotFound(err) {
 | 
				
			||||||
			return true, nil
 | 
								return true, nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if IsRetryableAPIError(err) {
 | 
							if IsRetryableAPIError(err) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/api/core/v1"
 | 
						"k8s.io/api/core/v1"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/types"
 | 
						"k8s.io/apimachinery/pkg/types"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
@@ -44,7 +44,7 @@ func AddLabelsToNode(c clientset.Interface, nodeName string, labels map[string]s
 | 
				
			|||||||
	for attempt := 0; attempt < retries; attempt++ {
 | 
						for attempt := 0; attempt < retries; attempt++ {
 | 
				
			||||||
		_, err = c.CoreV1().Nodes().Patch(nodeName, types.MergePatchType, []byte(patch))
 | 
							_, err = c.CoreV1().Nodes().Patch(nodeName, types.MergePatchType, []byte(patch))
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if !apierrs.IsConflict(err) {
 | 
								if !apierrors.IsConflict(err) {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
@@ -76,7 +76,7 @@ func RemoveLabelOffNode(c clientset.Interface, nodeName string, labelKeys []stri
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		_, err = c.CoreV1().Nodes().Update(node)
 | 
							_, err = c.CoreV1().Nodes().Update(node)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			if !apierrs.IsConflict(err) {
 | 
								if !apierrors.IsConflict(err) {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				klog.V(2).Infof("Conflict when trying to remove a labels %v from %v", labelKeys, nodeName)
 | 
									klog.V(2).Infof("Conflict when trying to remove a labels %v from %v", labelKeys, nodeName)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@ import (
 | 
				
			|||||||
	v1 "k8s.io/api/core/v1"
 | 
						v1 "k8s.io/api/core/v1"
 | 
				
			||||||
	storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
						storagev1beta1 "k8s.io/api/storage/v1beta1"
 | 
				
			||||||
	apiequality "k8s.io/apimachinery/pkg/api/equality"
 | 
						apiequality "k8s.io/apimachinery/pkg/api/equality"
 | 
				
			||||||
	apierrs "k8s.io/apimachinery/pkg/api/errors"
 | 
						apierrors "k8s.io/apimachinery/pkg/api/errors"
 | 
				
			||||||
	"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/fields"
 | 
						"k8s.io/apimachinery/pkg/fields"
 | 
				
			||||||
@@ -1085,10 +1085,10 @@ func (s *NodeAllocatableStrategy) createCSINode(nodeName string, client clientse
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_, err := client.StorageV1beta1().CSINodes().Create(csiNode)
 | 
						_, err := client.StorageV1beta1().CSINodes().Create(csiNode)
 | 
				
			||||||
	if apierrs.IsAlreadyExists(err) {
 | 
						if apierrors.IsAlreadyExists(err) {
 | 
				
			||||||
		// Something created CSINode instance after we checked it did not exist.
 | 
							// Something created CSINode instance after we checked it did not exist.
 | 
				
			||||||
		// Make the caller to re-try PrepareDependentObjects by returning Conflict error
 | 
							// Make the caller to re-try PrepareDependentObjects by returning Conflict error
 | 
				
			||||||
		err = apierrs.NewConflict(storagev1beta1.Resource("csinodes"), nodeName, err)
 | 
							err = apierrors.NewConflict(storagev1beta1.Resource("csinodes"), nodeName, err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return err
 | 
						return err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1121,7 +1121,7 @@ func (s *NodeAllocatableStrategy) updateCSINode(csiNode *storagev1beta1.CSINode,
 | 
				
			|||||||
func (s *NodeAllocatableStrategy) PrepareDependentObjects(node *v1.Node, client clientset.Interface) error {
 | 
					func (s *NodeAllocatableStrategy) PrepareDependentObjects(node *v1.Node, client clientset.Interface) error {
 | 
				
			||||||
	csiNode, err := client.StorageV1beta1().CSINodes().Get(node.Name, metav1.GetOptions{})
 | 
						csiNode, err := client.StorageV1beta1().CSINodes().Get(node.Name, metav1.GetOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return s.createCSINode(node.Name, client)
 | 
								return s.createCSINode(node.Name, client)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
@@ -1132,7 +1132,7 @@ func (s *NodeAllocatableStrategy) PrepareDependentObjects(node *v1.Node, client
 | 
				
			|||||||
func (s *NodeAllocatableStrategy) CleanupDependentObjects(nodeName string, client clientset.Interface) error {
 | 
					func (s *NodeAllocatableStrategy) CleanupDependentObjects(nodeName string, client clientset.Interface) error {
 | 
				
			||||||
	csiNode, err := client.StorageV1beta1().CSINodes().Get(nodeName, metav1.GetOptions{})
 | 
						csiNode, err := client.StorageV1beta1().CSINodes().Get(nodeName, metav1.GetOptions{})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		if apierrs.IsNotFound(err) {
 | 
							if apierrors.IsNotFound(err) {
 | 
				
			||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
@@ -1158,7 +1158,7 @@ func DoPrepareNode(client clientset.Interface, node *v1.Node, strategy PrepareNo
 | 
				
			|||||||
		if _, err = client.CoreV1().Nodes().Patch(node.Name, types.MergePatchType, []byte(patch)); err == nil {
 | 
							if _, err = client.CoreV1().Nodes().Patch(node.Name, types.MergePatchType, []byte(patch)); err == nil {
 | 
				
			||||||
			break
 | 
								break
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !apierrs.IsConflict(err) {
 | 
							if !apierrors.IsConflict(err) {
 | 
				
			||||||
			return fmt.Errorf("Error while applying patch %v to Node %v: %v", string(patch), node.Name, err)
 | 
								return fmt.Errorf("Error while applying patch %v to Node %v: %v", string(patch), node.Name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		time.Sleep(100 * time.Millisecond)
 | 
							time.Sleep(100 * time.Millisecond)
 | 
				
			||||||
@@ -1171,7 +1171,7 @@ func DoPrepareNode(client clientset.Interface, node *v1.Node, strategy PrepareNo
 | 
				
			|||||||
		if err = strategy.PrepareDependentObjects(node, client); err == nil {
 | 
							if err = strategy.PrepareDependentObjects(node, client); err == nil {
 | 
				
			||||||
			break
 | 
								break
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !apierrs.IsConflict(err) {
 | 
							if !apierrors.IsConflict(err) {
 | 
				
			||||||
			return fmt.Errorf("Error while preparing objects for node %s: %s", node.Name, err)
 | 
								return fmt.Errorf("Error while preparing objects for node %s: %s", node.Name, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		time.Sleep(100 * time.Millisecond)
 | 
							time.Sleep(100 * time.Millisecond)
 | 
				
			||||||
@@ -1196,7 +1196,7 @@ func DoCleanupNode(client clientset.Interface, nodeName string, strategy Prepare
 | 
				
			|||||||
		if _, err = client.CoreV1().Nodes().Update(updatedNode); err == nil {
 | 
							if _, err = client.CoreV1().Nodes().Update(updatedNode); err == nil {
 | 
				
			||||||
			break
 | 
								break
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !apierrs.IsConflict(err) {
 | 
							if !apierrors.IsConflict(err) {
 | 
				
			||||||
			return fmt.Errorf("Error when updating Node %v: %v", nodeName, err)
 | 
								return fmt.Errorf("Error when updating Node %v: %v", nodeName, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		time.Sleep(100 * time.Millisecond)
 | 
							time.Sleep(100 * time.Millisecond)
 | 
				
			||||||
@@ -1210,7 +1210,7 @@ func DoCleanupNode(client clientset.Interface, nodeName string, strategy Prepare
 | 
				
			|||||||
		if err == nil {
 | 
							if err == nil {
 | 
				
			||||||
			break
 | 
								break
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !apierrs.IsConflict(err) {
 | 
							if !apierrors.IsConflict(err) {
 | 
				
			||||||
			return fmt.Errorf("Error when cleaning up Node %v objects: %v", nodeName, err)
 | 
								return fmt.Errorf("Error when cleaning up Node %v objects: %v", nodeName, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		time.Sleep(100 * time.Millisecond)
 | 
							time.Sleep(100 * time.Millisecond)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user