Skip to content

Commit

Permalink
Increase coverage
Browse files Browse the repository at this point in the history
Signed-off-by: Pavol Loffay <[email protected]>
  • Loading branch information
pavolloffay committed Nov 30, 2018
1 parent 46028da commit 8c795fd
Show file tree
Hide file tree
Showing 9 changed files with 86 additions and 13 deletions.
4 changes: 3 additions & 1 deletion deploy/examples/simple-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ kind: Jaeger
metadata:
name: simple-prod
spec:
strategy: production
strategy: allInOne
storage:
type: elasticsearch
options:
es:
server-urls: http://elasticsearch:9200
username: elastic
password: changeme
sparkDependencies:
enabled: true
10 changes: 10 additions & 0 deletions deploy/examples/simplest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,13 @@ apiVersion: io.jaegertracing/v1alpha1
kind: Jaeger
metadata:
name: simplest
strategy: allInOne
storage:
type: elasticsearch
options:
es:
server-urls: http://elasticsearch:9200
username: elastic
password: changeme
sparkDependencies:
enabled: true
12 changes: 6 additions & 6 deletions pkg/cronjob/spark_dependencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,12 @@ import (

var supportedStorageTypes = map[string]bool{"elasticsearch": true, "cassandra": true}

func Create(jaeger *v1alpha1.Jaeger) *batchv1beta1.CronJob {
if ok := supportedStorageTypes[jaeger.Spec.Storage.Type]; !ok {
return nil
}
func SupportedStorage(storage string) bool {
return supportedStorageTypes[storage]
}

func Create(jaeger *v1alpha1.Jaeger) *batchv1beta1.CronJob {
applyDefaults(jaeger)
trueVar := true
name := fmt.Sprintf("%s-spark-dependencies", jaeger.Name)

envVars := []v1.EnvVar{
{Name: "STORAGE", Value: jaeger.Spec.Storage.Type},
Expand All @@ -30,6 +28,8 @@ func Create(jaeger *v1alpha1.Jaeger) *batchv1beta1.CronJob {
}
envVars = append(envVars, getStorageEnvs(jaeger.Spec.Storage, jaeger.Spec.SparkDependencies)...)

trueVar := true
name := fmt.Sprintf("%s-spark-dependencies", jaeger.Name)
return &batchv1beta1.CronJob{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Expand Down
2 changes: 0 additions & 2 deletions pkg/cronjob/spark_dependencies_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,5 @@ func TestStorageEnvs(t *testing.T) {
}

func TestCreate(t *testing.T) {
assert.Nil(t, Create(&v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{Storage: v1alpha1.JaegerStorageSpec{Type: "foo"}}}))
assert.NotNil(t, Create(&v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{Storage: v1alpha1.JaegerStorageSpec{Type: "elasticsearch"}}}))
assert.NotNil(t, Create(&v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{Storage: v1alpha1.JaegerStorageSpec{Type: "cassandra"}}}))
}
2 changes: 1 addition & 1 deletion pkg/strategy/all-in-one.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func (c *allInOneStrategy) Create() []runtime.Object {
}
}

if c.jaeger.Spec.SparkDependencies.Enabled {
if c.jaeger.Spec.SparkDependencies.Enabled && cronjob.SupportedStorage(c.jaeger.Spec.Storage.Type) {
os = append(os, cronjob.Create(c.jaeger))
}

Expand Down
41 changes: 41 additions & 0 deletions pkg/strategy/all-in-one_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package strategy
import (
"context"
"fmt"
"reflect"
"testing"

"github.com/spf13/viper"
Expand All @@ -11,6 +12,7 @@ import (

"github.com/jaegertracing/jaeger-operator/pkg/apis/io/v1alpha1"
"github.com/jaegertracing/jaeger-operator/pkg/storage"
batchv1beta1 "k8s.io/api/batch/v1beta1"
)

func init() {
Expand Down Expand Up @@ -131,3 +133,42 @@ func assertDeploymentsAndServicesForAllInOne(t *testing.T, name string, objs []r
}
assertHasAllObjects(t, name, objs, deployments, daemonsets, services, ingresses, routes, serviceAccounts, configMaps)
}

func TestSparkDependenciesAllInOne(t *testing.T) {
testSparkDependencies(t, func(jaeger *v1alpha1.Jaeger) S {
return &allInOneStrategy{jaeger: jaeger}
})
}

func testSparkDependencies(t *testing.T, fce func(jaeger *v1alpha1.Jaeger) S) {
tests := []struct {
jaeger *v1alpha1.Jaeger
sparkCronJobEnabled bool
}{
{jaeger: &v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{
Storage: v1alpha1.JaegerStorageSpec{Type: "elasticsearch"},
SparkDependencies: v1alpha1.JaegerSparkDependenciesSpec{Enabled: true},
}}, sparkCronJobEnabled: true},
{jaeger: &v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{
Storage: v1alpha1.JaegerStorageSpec{Type: "cassandra"},
SparkDependencies: v1alpha1.JaegerSparkDependenciesSpec{Enabled: true},
}}, sparkCronJobEnabled: true},
{jaeger: &v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{
Storage: v1alpha1.JaegerStorageSpec{Type: "kafka"},
SparkDependencies: v1alpha1.JaegerSparkDependenciesSpec{Enabled: true},
}}, sparkCronJobEnabled: false},
{jaeger: &v1alpha1.Jaeger{Spec: v1alpha1.JaegerSpec{
Storage: v1alpha1.JaegerStorageSpec{Type: "elasticsearch"},
}}, sparkCronJobEnabled: false},
}
for _, test := range tests {
s := fce(test.jaeger)
objs := s.Create()
cronJobs := getTypesOf(objs, reflect.TypeOf(&batchv1beta1.CronJob{}))
if test.sparkCronJobEnabled {
assert.Equal(t, 1, len(cronJobs))
} else {
assert.Equal(t, 0, len(cronJobs))
}
}
}
20 changes: 18 additions & 2 deletions pkg/strategy/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@ package strategy

import (
"context"
"fmt"
"reflect"
"testing"

"github.com/jaegertracing/jaeger-operator/pkg/apis/io/v1alpha1"
osv1 "github.com/openshift/api/route/v1"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert"
appsv1 "k8s.io/api/apps/v1"
"k8s.io/api/core/v1"
"k8s.io/api/extensions/v1beta1"
"k8s.io/apimachinery/pkg/runtime"

"github.com/jaegertracing/jaeger-operator/pkg/apis/io/v1alpha1"
)

func TestNewControllerForAllInOneAsDefault(t *testing.T) {
Expand Down Expand Up @@ -229,3 +230,18 @@ func assertHasAllObjects(t *testing.T, name string, objs []runtime.Object, deplo
assert.True(t, v, "Expected %s to have been returned from the list of config maps", k)
}
}

func getTypesOf(
objs []runtime.Object,
typ reflect.Type,
) []runtime.Object {
var theTypes []runtime.Object
for _, obj := range objs {
if typ == reflect.TypeOf(obj) {
fmt.Println("appending")
fmt.Println(reflect.TypeOf(obj))
theTypes = append(theTypes, obj)
}
}
return theTypes
}
2 changes: 1 addition & 1 deletion pkg/strategy/production.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func (c *productionStrategy) Create() []runtime.Object {
}
}

if c.jaeger.Spec.SparkDependencies.Enabled {
if c.jaeger.Spec.SparkDependencies.Enabled && cronjob.SupportedStorage(c.jaeger.Spec.Storage.Type) {
os = append(os, cronjob.Create(c.jaeger))
}

Expand Down
6 changes: 6 additions & 0 deletions pkg/strategy/production_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,3 +162,9 @@ func assertDeploymentsAndServicesForProduction(t *testing.T, name string, objs [
}
assertHasAllObjects(t, name, objs, deployments, daemonsets, services, ingresses, routes, serviceAccounts, configMaps)
}

func TestSparkDependenciesProduction(t *testing.T) {
testSparkDependencies(t, func(jaeger *v1alpha1.Jaeger) S {
return &productionStrategy{jaeger: jaeger}
})
}

0 comments on commit 8c795fd

Please sign in to comment.