Skip to content

Commit

Permalink
[MESH-2199] - Reformatting code
Browse files Browse the repository at this point in the history
Signed-off-by: vgonuguntla <vinay_gonuguntla@intuit.com>
  • Loading branch information
vinaygonuguntla committed Sep 20, 2022
1 parent b826e36 commit 8e54dda
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 45 deletions.
40 changes: 30 additions & 10 deletions admiral/pkg/clusters/envoyfilter.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,11 @@ const pluginKey = "plugin: "

func createOrUpdateEnvoyFilter(ctx context.Context, rc *RemoteController, routingPolicy *v1.RoutingPolicy, eventType admiral.EventType, workloadIdentityKey string, admiralCache *AdmiralCache, workloadSelectorMap map[string]string) (*networking.EnvoyFilter, error) {

envoyfilterSpec := constructEnvoyFilterStruct(routingPolicy, workloadSelectorMap)
envoyfilterSpec, err := constructEnvoyFilterStruct(routingPolicy, workloadSelectorMap)
if err != nil {
log.Error("error occurred while constructing envoy filter struct")
return nil, err
}

selectorLabelsSha, err := getSha1(workloadIdentityKey + common.GetRoutingPolicyEnv(routingPolicy))
if err != nil {
Expand Down Expand Up @@ -75,7 +79,7 @@ func createOrUpdateEnvoyFilter(ctx context.Context, rc *RemoteController, routin
return filter, err
}

func constructEnvoyFilterStruct(routingPolicy *v1.RoutingPolicy, workloadSelectorLabels map[string]string) *v1alpha3.EnvoyFilter {
func constructEnvoyFilterStruct(routingPolicy *v1.RoutingPolicy, workloadSelectorLabels map[string]string) (*v1alpha3.EnvoyFilter, error) {
var envoyFilterStringConfig string
var wasmPath string
for key, val := range routingPolicy.Spec.Config {
Expand All @@ -88,8 +92,16 @@ func constructEnvoyFilterStruct(routingPolicy *v1.RoutingPolicy, workloadSelecto
if len(common.GetEnvoyFilterAdditionalConfig()) != 0 {
envoyFilterStringConfig += common.GetEnvoyFilterAdditionalConfig() + "\n"
}
envoyFilterStringConfig += getHosts(routingPolicy) + "\n"
envoyFilterStringConfig += getPlugin(routingPolicy)
hosts, err := getHosts(routingPolicy)
if err != nil {
return nil, err
}
envoyFilterStringConfig += hosts + "\n"
plugin, err := getPlugin(routingPolicy)
if err != nil {
return nil, err
}
envoyFilterStringConfig += plugin

configuration := structpb.Struct{
Fields: map[string]*structpb.Value{
Expand Down Expand Up @@ -133,7 +145,7 @@ func constructEnvoyFilterStruct(routingPolicy *v1.RoutingPolicy, workloadSelecto
}

envoyfilterSpec := getEnvoyFilterSpec(workloadSelectorLabels, typedConfig)
return envoyfilterSpec
return envoyfilterSpec, nil
}

func getEnvoyFilterSpec(workloadSelectorLabels map[string]string, typedConfig *structpb.Struct) *v1alpha3.EnvoyFilter {
Expand Down Expand Up @@ -178,16 +190,24 @@ func getEnvoyFilterSpec(workloadSelectorLabels map[string]string, typedConfig *s
}
}

func getHosts(routingPolicy *v1.RoutingPolicy) string {
func getHosts(routingPolicy *v1.RoutingPolicy) (string, error) {
hosts := ""
for _, host := range routingPolicy.Spec.Hosts {
hosts += host + ","
}
if len(hosts) == 0 {
log.Error("routing policy hosts cannot be empty")
return "", errors.New("routing policy hosts cannot be empty")
}
hosts = strings.TrimSuffix(hosts, ",")
return hostsKey + hosts
return hostsKey + hosts, nil
}

func getPlugin(routingPolicy *v1.RoutingPolicy) string {
func getPlugin(routingPolicy *v1.RoutingPolicy) (string, error) {
plugin := routingPolicy.Spec.Plugin
return pluginKey + plugin
}
if len(plugin) == 0 {
log.Error("routing policy plugin cannot be empty")
return "", errors.New("routing policy plugin cannot be empty")
}
return pluginKey + plugin, nil
}
32 changes: 19 additions & 13 deletions admiral/pkg/clusters/envoyfilter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,32 +141,38 @@ func TestGetHosts(t *testing.T) {
Status: v1.RoutingPolicyStatus{},
}

hosts := getHosts(routingPolicyFoo)
hosts, err := getHosts(routingPolicyFoo)
if err != nil {
assert.Fail(t, err.Error())
}
assert.Equal(t, "hosts: e2e.testservice.mesh,e2e2.testservice.mesh", hosts)
}

func TestGetPlugin(t *testing.T) {
routingPolicyFoo := &v1.RoutingPolicy{
TypeMeta: time2.TypeMeta{},
TypeMeta: time2.TypeMeta{},
ObjectMeta: time2.ObjectMeta{
Labels: map[string]string{
"identity": "foo",
"identity": "foo",
"admiral.io/env": "stage",
},
},
Spec: model.RoutingPolicy{
Plugin: "test",
Hosts: []string{"e2e.testservice.mesh,e2e2.testservice.mesh"},
Spec: model.RoutingPolicy{
Plugin: "test",
Hosts: []string{"e2e.testservice.mesh,e2e2.testservice.mesh"},
Config: map[string]string{
"cachePrefix": "cache-v1",
"cachettlSec": "86400",
"cachePrefix": "cache-v1",
"cachettlSec": "86400",
"routingServiceUrl": "e2e.test.routing.service.mesh",
"pathPrefix": "/sayhello,/v1/company/{id}/",
"pathPrefix": "/sayhello,/v1/company/{id}/",
},
},
Status: v1.RoutingPolicyStatus{},
Status: v1.RoutingPolicyStatus{},
}

plugin := getPlugin(routingPolicyFoo)
assert.Equal(t, "plugin: test",plugin)
}
plugin, err := getPlugin(routingPolicyFoo)
if err != nil {
assert.Fail(t, err.Error())
}
assert.Equal(t, "plugin: test", plugin)
}
40 changes: 18 additions & 22 deletions admiral/pkg/clusters/types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@ import (
"testing"
"time"

"github.com/istio-ecosystem/admiral/admiral/pkg/apis/admiral/model"
istiofake "istio.io/client-go/pkg/clientset/versioned/fake"
"os"
argo "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/istio-ecosystem/admiral/admiral/pkg/apis/admiral/model"
v1 "github.com/istio-ecosystem/admiral/admiral/pkg/apis/admiral/v1"
admiralFake "github.com/istio-ecosystem/admiral/admiral/pkg/client/clientset/versioned/fake"
"github.com/istio-ecosystem/admiral/admiral/pkg/controller/admiral"
"github.com/istio-ecosystem/admiral/admiral/pkg/controller/common"
log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
istiofake "istio.io/client-go/pkg/clientset/versioned/fake"
v12 "k8s.io/api/apps/v1"
v13 "k8s.io/api/core/v1"
time2 "k8s.io/apimachinery/pkg/apis/meta/v1"
"os"
)

var ignoreUnexported = cmpopts.IgnoreUnexported(v1.GlobalTrafficPolicy{}.Status)
Expand Down Expand Up @@ -481,24 +481,20 @@ func TestRoutingPolicyReadOnly(t *testing.T) {

testcases := []struct {
name string
rp *v1.RoutingPolicy
readOnly bool
rp *v1.RoutingPolicy
readOnly bool
doesError bool
}{
{
name: "Readonly test - Routing Policy",
rp: &v1.RoutingPolicy{

},
readOnly: true,
name: "Readonly test for DR scenario - Routing Policy",
rp: &v1.RoutingPolicy{},
readOnly: true,
doesError: true,
},
{
name: "Readonly false test - Routing Policy",
rp: &v1.RoutingPolicy{

},
readOnly: false,
name: "Readonly false test for DR scenario - Routing Policy",
rp: &v1.RoutingPolicy{},
readOnly: false,
doesError: false,
},
}
Expand All @@ -509,7 +505,7 @@ func TestRoutingPolicyReadOnly(t *testing.T) {
t.Run(c.name, func(t *testing.T) {
if c.readOnly {
CurrentAdmiralState.ReadOnly = true
}else{
} else {
CurrentAdmiralState.ReadOnly = false
}
var buf bytes.Buffer
Expand All @@ -520,20 +516,20 @@ func TestRoutingPolicyReadOnly(t *testing.T) {
// Add routing policy test
handler.Added(ctx, c.rp)
t.Log(buf.String())
val := strings.Contains(buf.String(),"skipping read-only mode")
assert.Equal(t, c.doesError,val)
val := strings.Contains(buf.String(), "skipping read-only mode")
assert.Equal(t, c.doesError, val)

// Update routing policy test
handler.Updated(ctx, c.rp)
t.Log(buf.String())
val = strings.Contains(buf.String(),"skipping read-only mode")
assert.Equal(t, c.doesError,val)
val = strings.Contains(buf.String(), "skipping read-only mode")
assert.Equal(t, c.doesError, val)

// Delete routing policy test
handler.Deleted(ctx, c.rp)
t.Log(buf.String())
val = strings.Contains(buf.String(),"skipping read-only mode")
assert.Equal(t, c.doesError,val)
val = strings.Contains(buf.String(), "skipping read-only mode")
assert.Equal(t, c.doesError, val)
})
}
}

0 comments on commit 8e54dda

Please sign in to comment.