From 8ca1732023621063d1c91205cdf0efa4b03b5a30 Mon Sep 17 00:00:00 2001 From: Marc Sluiter Date: Mon, 29 May 2017 20:39:02 +0200 Subject: [PATCH] Added example for status errors in go client --- .../examples/in-cluster-client-configuration/main.go | 12 ++++++++++++ .../out-of-cluster-client-configuration/main.go | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go index b94ff440a87..1617b38310d 100644 --- a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go +++ b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/main.go @@ -21,6 +21,7 @@ import ( "fmt" "time" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -43,6 +44,17 @@ func main() { panic(err.Error()) } fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) + + // Example for handling status errors + _, err = clientset.CoreV1().Pods("").Get("ExamplePodName", metav1.GetOptions{}) + if statusError, isStatus := err.(*errors.StatusError); isStatus && statusError.Status().Reason == metav1.StatusReasonNotFound { + fmt.Printf("Pod not found\n") + } else if err != nil { + panic(err.Error()) + } else { + fmt.Printf("Found pod\n") + } + time.Sleep(10 * time.Second) } } diff --git a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go index b76278b7e94..484accfee13 100644 --- a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go +++ b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go @@ -24,6 +24,7 @@ import ( "path/filepath" "time" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" @@ -57,6 +58,17 @@ func main() { panic(err.Error()) } fmt.Printf("There are %d pods in the cluster\n", len(pods.Items)) + + // Example for handling status errors + _, err = clientset.CoreV1().Pods("").Get("ExamplePodName", metav1.GetOptions{}) + if statusError, isStatus := err.(*errors.StatusError); isStatus && statusError.Status().Reason == metav1.StatusReasonNotFound { + fmt.Printf("Pod not found\n") + } else if err != nil { + panic(err.Error()) + } else { + fmt.Printf("Found pod\n") + } + time.Sleep(10 * time.Second) } }