Skip to content

Commit

Permalink
Use CheckAPIVersion()
Browse files Browse the repository at this point in the history
  • Loading branch information
tamalsaha committed Aug 20, 2017
1 parent b7e9742 commit b2fe194
Show file tree
Hide file tree
Showing 29 changed files with 90 additions and 253 deletions.
4 changes: 2 additions & 2 deletions glide.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 3 additions & 16 deletions pkg/controller/statefulsets.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"
"reflect"

"github.com/appscode/go-version"
acrt "github.com/appscode/go/runtime"
"github.com/appscode/kutil"
"github.com/appscode/log"
Expand All @@ -23,21 +22,9 @@ import (
// Blocks caller. Intended to be called as a Go routine.
func (c *Controller) WatchStatefulSets() {
// Skip v
if info, err := c.kubeClient.Discovery().ServerVersion(); err == nil {
v1_6, err := version.NewConstraint("<= 1.6")
if err != nil {
log.Warningf("Skipping watching StatefulSet for, Reason: %v", err)
return
}
v, err := version.NewVersion(info.Major + "." + info.Minor)
if err != nil {
log.Warningf("Skipping watching StatefulSet for, Reason: %v", err)
return
}
if v1_6.Check(v) {
log.Warningf("Skipping watching StatefulSet for Kubernetes version: %s.%s.%s[%s]", info.Major, info.Minor, info.String())
return
}
if matches, err := kutil.CheckAPIVersion(c.kubeClient, "<= 1.6"); err != nil || matches {
log.Warningf("Skipping watching StatefulSet for, Reason: %v", err)
return
}
if !util.IsPreferredAPIResource(c.kubeClient, apps.SchemeGroupVersion.String(), "StatefulSet") {
log.Warningf("Skipping watching non-preferred GroupVersion:%s Kind:%s", apps.SchemeGroupVersion.String(), "StatefulSet")
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/daemonset_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package e2e_test

import (
"github.com/appscode/kutil"
sapi "github.com/appscode/stash/api"
"github.com/appscode/stash/pkg/util"
"github.com/appscode/stash/test/e2e/framework"
Expand Down Expand Up @@ -132,11 +133,10 @@ var _ = Describe("DaemonSet", func() {
}, BeNumerically(">=", 1)))

By("Removing labels of DaemonSet " + daemon.Name)
err = f.UpdateDaemonSet(daemon.ObjectMeta, func(in extensions.DaemonSet) extensions.DaemonSet {
_, err = kutil.PatchDaemonSet(f.KubeClient, &daemon, func(in *extensions.DaemonSet) {
in.Labels = map[string]string{
"app": "unmatched",
}
return in
})
Expect(err).NotTo(HaveOccurred())

Expand Down
4 changes: 2 additions & 2 deletions test/e2e/deployment_app_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package e2e_test

import (
"github.com/appscode/kutil"
sapi "github.com/appscode/stash/api"
"github.com/appscode/stash/pkg/util"
"github.com/appscode/stash/test/e2e/framework"
Expand Down Expand Up @@ -132,11 +133,10 @@ var _ = Describe("DeploymentApp", func() {
}, BeNumerically(">=", 1)))

By("Removing labels of DeploymentApp " + deployment.Name)
err = f.UpdateDeploymentApp(deployment.ObjectMeta, func(in apps.Deployment) apps.Deployment {
_, err = kutil.PatchDeploymentApp(f.KubeClient, &deployment, func(in *apps.Deployment) {
in.Labels = map[string]string{
"app": "unmatched",
}
return in
})
Expect(err).NotTo(HaveOccurred())

Expand Down
4 changes: 2 additions & 2 deletions test/e2e/deployment_extension_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package e2e_test

import (
"github.com/appscode/kutil"
sapi "github.com/appscode/stash/api"
"github.com/appscode/stash/pkg/util"
"github.com/appscode/stash/test/e2e/framework"
Expand Down Expand Up @@ -132,11 +133,10 @@ var _ = Describe("DeploymentExtension", func() {
}, BeNumerically(">=", 1)))

By("Removing labels of DeploymentExtension " + deployment.Name)
err = f.UpdateDeploymentExtension(deployment.ObjectMeta, func(in extensions.Deployment) extensions.Deployment {
_, err = kutil.PatchDeploymentExtension(f.KubeClient, &deployment, func(in *extensions.Deployment) {
in.Labels = map[string]string{
"app": "unmatched",
}
return in
})
Expect(err).NotTo(HaveOccurred())

Expand Down
32 changes: 4 additions & 28 deletions test/e2e/framework/daemonset.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
package framework

import (
"fmt"
"time"

"github.com/appscode/go/crypto/rand"
"github.com/appscode/log"
. "github.com/onsi/gomega"
kerr "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1"
)
Expand All @@ -25,7 +20,7 @@ func (fi *Invocation) DaemonSet() extensions.DaemonSet {
Template: fi.PodTemplate(),
},
}
if nodes, err := fi.kubeClient.CoreV1().Nodes().List(metav1.ListOptions{}); err == nil {
if nodes, err := fi.KubeClient.CoreV1().Nodes().List(metav1.ListOptions{}); err == nil {
if len(nodes.Items) > 0 {
daemon.Spec.Template.Spec.NodeSelector = map[string]string{
"kubernetes.io/hostname": nodes.Items[0].Labels["kubernetes.io/hostname"],
Expand All @@ -36,36 +31,17 @@ func (fi *Invocation) DaemonSet() extensions.DaemonSet {
}

func (f *Framework) CreateDaemonSet(obj extensions.DaemonSet) error {
_, err := f.kubeClient.ExtensionsV1beta1().DaemonSets(obj.Namespace).Create(&obj)
_, err := f.KubeClient.ExtensionsV1beta1().DaemonSets(obj.Namespace).Create(&obj)
return err
}

func (f *Framework) DeleteDaemonSet(meta metav1.ObjectMeta) error {
return f.kubeClient.ExtensionsV1beta1().DaemonSets(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) UpdateDaemonSet(meta metav1.ObjectMeta, transformer func(extensions.DaemonSet) extensions.DaemonSet) error {
attempt := 0
for ; attempt < maxAttempts; attempt = attempt + 1 {
cur, err := f.kubeClient.ExtensionsV1beta1().DaemonSets(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
if kerr.IsNotFound(err) {
return nil
} else if err == nil {
modified := transformer(*cur)
_, err = f.kubeClient.ExtensionsV1beta1().DaemonSets(cur.Namespace).Update(&modified)
if err == nil {
return nil
}
}
log.Errorf("Attempt %d failed to update DaemonSet %s@%s due to %s.", attempt, cur.Name, cur.Namespace, err)
time.Sleep(updateRetryInterval)
}
return fmt.Errorf("Failed to update DaemonSet %s@%s after %d attempts.", meta.Name, meta.Namespace, attempt)
return f.KubeClient.ExtensionsV1beta1().DaemonSets(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) EventuallyDaemonSet(meta metav1.ObjectMeta) GomegaAsyncAssertion {
return Eventually(func() *extensions.DaemonSet {
obj, err := f.kubeClient.ExtensionsV1beta1().DaemonSets(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
obj, err := f.KubeClient.ExtensionsV1beta1().DaemonSets(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
return obj
})
Expand Down
30 changes: 3 additions & 27 deletions test/e2e/framework/deployment_app.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
package framework

import (
"fmt"
"time"

"github.com/appscode/go/crypto/rand"
"github.com/appscode/go/types"
"github.com/appscode/log"
. "github.com/onsi/gomega"
kerr "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
apps "k8s.io/client-go/pkg/apis/apps/v1beta1"
)
Expand All @@ -30,36 +25,17 @@ func (fi *Invocation) DeploymentApp() apps.Deployment {
}

func (f *Framework) CreateDeploymentApp(obj apps.Deployment) error {
_, err := f.kubeClient.AppsV1beta1().Deployments(obj.Namespace).Create(&obj)
_, err := f.KubeClient.AppsV1beta1().Deployments(obj.Namespace).Create(&obj)
return err
}

func (f *Framework) DeleteDeploymentApp(meta metav1.ObjectMeta) error {
return f.kubeClient.AppsV1beta1().Deployments(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) UpdateDeploymentApp(meta metav1.ObjectMeta, transformer func(apps.Deployment) apps.Deployment) error {
attempt := 0
for ; attempt < maxAttempts; attempt = attempt + 1 {
cur, err := f.kubeClient.AppsV1beta1().Deployments(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
if kerr.IsNotFound(err) {
return nil
} else if err == nil {
modified := transformer(*cur)
_, err = f.kubeClient.AppsV1beta1().Deployments(cur.Namespace).Update(&modified)
if err == nil {
return nil
}
}
log.Errorf("Attempt %d failed to update Deployment %s@%s due to %s.", attempt, cur.Name, cur.Namespace, err)
time.Sleep(updateRetryInterval)
}
return fmt.Errorf("Failed to update Deployment %s@%s after %d attempts.", meta.Name, meta.Namespace, attempt)
return f.KubeClient.AppsV1beta1().Deployments(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) EventuallyDeploymentApp(meta metav1.ObjectMeta) GomegaAsyncAssertion {
return Eventually(func() *apps.Deployment {
obj, err := f.kubeClient.AppsV1beta1().Deployments(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
obj, err := f.KubeClient.AppsV1beta1().Deployments(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
return obj
})
Expand Down
30 changes: 3 additions & 27 deletions test/e2e/framework/deployment_extension.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
package framework

import (
"fmt"
"time"

"github.com/appscode/go/crypto/rand"
"github.com/appscode/go/types"
"github.com/appscode/log"
. "github.com/onsi/gomega"
kerr "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1"
)
Expand All @@ -30,36 +25,17 @@ func (fi *Invocation) DeploymentExtension() extensions.Deployment {
}

func (f *Framework) CreateDeploymentExtension(obj extensions.Deployment) error {
_, err := f.kubeClient.ExtensionsV1beta1().Deployments(obj.Namespace).Create(&obj)
_, err := f.KubeClient.ExtensionsV1beta1().Deployments(obj.Namespace).Create(&obj)
return err
}

func (f *Framework) DeleteDeploymentExtension(meta metav1.ObjectMeta) error {
return f.kubeClient.ExtensionsV1beta1().Deployments(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) UpdateDeploymentExtension(meta metav1.ObjectMeta, transformer func(extensions.Deployment) extensions.Deployment) error {
attempt := 0
for ; attempt < maxAttempts; attempt = attempt + 1 {
cur, err := f.kubeClient.ExtensionsV1beta1().Deployments(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
if kerr.IsNotFound(err) {
return nil
} else if err == nil {
modified := transformer(*cur)
_, err = f.kubeClient.ExtensionsV1beta1().Deployments(cur.Namespace).Update(&modified)
if err == nil {
return nil
}
}
log.Errorf("Attempt %d failed to update Deployment %s@%s due to %s.", attempt, cur.Name, cur.Namespace, err)
time.Sleep(updateRetryInterval)
}
return fmt.Errorf("Failed to update Deployment %s@%s after %d attempts.", meta.Name, meta.Namespace, attempt)
return f.KubeClient.ExtensionsV1beta1().Deployments(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) EventuallyDeploymentExtension(meta metav1.ObjectMeta) GomegaAsyncAssertion {
return Eventually(func() *extensions.Deployment {
obj, err := f.kubeClient.ExtensionsV1beta1().Deployments(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
obj, err := f.KubeClient.ExtensionsV1beta1().Deployments(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
return obj
})
Expand Down
8 changes: 4 additions & 4 deletions test/e2e/framework/framework.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ import (
)

type Framework struct {
kubeClient clientset.Interface
stashClient scs.ExtensionInterface
KubeClient clientset.Interface
StashClient scs.ExtensionInterface
namespace string
}

func New(kubeClient clientset.Interface, extClient scs.ExtensionInterface) *Framework {
return &Framework{
kubeClient: kubeClient,
stashClient: extClient,
KubeClient: kubeClient,
StashClient: extClient,
namespace: rand.WithUniqSuffix("test-stash"),
}
}
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/framework/namespace.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ func (f *Framework) CreateNamespace() error {
Name: f.namespace,
},
}
_, err := f.kubeClient.CoreV1().Namespaces().Create(&obj)
_, err := f.KubeClient.CoreV1().Namespaces().Create(&obj)
return err
}

func (f *Framework) DeleteNamespace() error {
return f.kubeClient.CoreV1().Namespaces().Delete(f.namespace, deleteInBackground())
return f.KubeClient.CoreV1().Namespaces().Delete(f.namespace, deleteInBackground())
}
30 changes: 3 additions & 27 deletions test/e2e/framework/replicaset.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
package framework

import (
"fmt"
"time"

"github.com/appscode/go/crypto/rand"
"github.com/appscode/go/types"
"github.com/appscode/log"
. "github.com/onsi/gomega"
kerr "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
extensions "k8s.io/client-go/pkg/apis/extensions/v1beta1"
)
Expand All @@ -30,36 +25,17 @@ func (fi *Invocation) ReplicaSet() extensions.ReplicaSet {
}

func (f *Framework) CreateReplicaSet(obj extensions.ReplicaSet) error {
_, err := f.kubeClient.ExtensionsV1beta1().ReplicaSets(obj.Namespace).Create(&obj)
_, err := f.KubeClient.ExtensionsV1beta1().ReplicaSets(obj.Namespace).Create(&obj)
return err
}

func (f *Framework) DeleteReplicaSet(meta metav1.ObjectMeta) error {
return f.kubeClient.ExtensionsV1beta1().ReplicaSets(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) UpdateReplicaSet(meta metav1.ObjectMeta, transformer func(extensions.ReplicaSet) extensions.ReplicaSet) error {
attempt := 0
for ; attempt < maxAttempts; attempt = attempt + 1 {
cur, err := f.kubeClient.ExtensionsV1beta1().ReplicaSets(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
if kerr.IsNotFound(err) {
return nil
} else if err == nil {
modified := transformer(*cur)
_, err = f.kubeClient.ExtensionsV1beta1().ReplicaSets(cur.Namespace).Update(&modified)
if err == nil {
return nil
}
}
log.Errorf("Attempt %d failed to update ReplicaSet %s@%s due to %s.", attempt, cur.Name, cur.Namespace, err)
time.Sleep(updateRetryInterval)
}
return fmt.Errorf("Failed to update ReplicaSet %s@%s after %d attempts.", meta.Name, meta.Namespace, attempt)
return f.KubeClient.ExtensionsV1beta1().ReplicaSets(meta.Namespace).Delete(meta.Name, deleteInForeground())
}

func (f *Framework) EventuallyReplicaSet(meta metav1.ObjectMeta) GomegaAsyncAssertion {
return Eventually(func() *extensions.ReplicaSet {
obj, err := f.kubeClient.ExtensionsV1beta1().ReplicaSets(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
obj, err := f.KubeClient.ExtensionsV1beta1().ReplicaSets(meta.Namespace).Get(meta.Name, metav1.GetOptions{})
Expect(err).NotTo(HaveOccurred())
return obj
})
Expand Down
Loading

0 comments on commit b2fe194

Please sign in to comment.