Skip to content

Commit

Permalink
refactoring for running unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
piontec committed Jun 16, 2018
1 parent 64b8bf6 commit 436c7c1
Show file tree
Hide file tree
Showing 8 changed files with 510 additions and 350 deletions.
7 changes: 5 additions & 2 deletions cmd/netperf-operator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@ import (
"context"
"runtime"

"github.com/piontec/netperf-operator/pkg/netperf-operator"

sdk "github.com/operator-framework/operator-sdk/pkg/sdk"
k8sutil "github.com/operator-framework/operator-sdk/pkg/util/k8sutil"
sdkVersion "github.com/operator-framework/operator-sdk/version"
"github.com/piontec/netperf-operator/pkg/apis/app/realkube"
stub "github.com/piontec/netperf-operator/pkg/stub"

"github.com/sirupsen/logrus"
)

const version = "0.1.2-dev"
const version = "0.1.3-dev"

func printVersion() {
logrus.Infof("Go Version: %s", runtime.Version())
Expand All @@ -35,6 +38,6 @@ func main() {
logrus.Infof("Watching %s, %s, %s, %d", resource, kind, namespace, resyncPeriod)
sdk.Watch(resource, kind, namespace, resyncPeriod)
sdk.Watch("v1", "Pod", namespace, resyncPeriod)
sdk.Handle(stub.NewHandler())
sdk.Handle(stub.NewHandler(operator.NewNetperf(realkube.NewRealProvider())))
sdk.Run(context.TODO())
}
34 changes: 34 additions & 0 deletions pkg/apis/app/fakekube/fake-provider.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package fakekube

import (
"github.com/piontec/netperf-operator/pkg/apis/app/kube"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
)

type FakeProvider struct {
}

func NewFakeProvider() kube.Provider {
return &FakeProvider{}
}

func (r *FakeProvider) Create(object runtime.Object) error {
return nil
}

func (r *FakeProvider) Update(object runtime.Object) error {
return nil
}

func (r *FakeProvider) Get(object runtime.Object) error {
return nil
}

func (r *FakeProvider) Delete(object runtime.Object) error {
return nil
}

func (r *FakeProvider) GetKubeClient() kubernetes.Interface {
return nil
}
12 changes: 12 additions & 0 deletions pkg/apis/app/kube/provider.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package kube

import "k8s.io/client-go/kubernetes"
import "k8s.io/apimachinery/pkg/runtime"

type Provider interface {
Create(object runtime.Object) error
Update(object runtime.Object) error
Get(object runtime.Object) error
Delete(object runtime.Object) error
GetKubeClient() kubernetes.Interface
}
36 changes: 36 additions & 0 deletions pkg/apis/app/realkube/real-provider.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package realkube

import (
"github.com/operator-framework/operator-sdk/pkg/k8sclient"
"github.com/operator-framework/operator-sdk/pkg/sdk"
"github.com/piontec/netperf-operator/pkg/apis/app/kube"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes"
)

type RealProvider struct {
}

func NewRealProvider() kube.Provider {
return &RealProvider{}
}

func (r *RealProvider) Create(object runtime.Object) error {
return sdk.Create(object)
}

func (r *RealProvider) Update(object runtime.Object) error {
return sdk.Update(object)
}

func (r *RealProvider) Get(object runtime.Object) error {
return sdk.Get(object)
}

func (r *RealProvider) Delete(object runtime.Object) error {
return sdk.Delete(object)
}

func (r *RealProvider) GetKubeClient() kubernetes.Interface {
return k8sclient.GetKubeClient()
}
Loading

0 comments on commit 436c7c1

Please sign in to comment.