From 5ae3dcbc5790b7c724a062d088ffbfa268cdefe4 Mon Sep 17 00:00:00 2001 From: Sneha Chhabria Date: Tue, 9 Feb 2021 12:37:01 -0800 Subject: [PATCH] chore(pkg/catalog/*) : Add a function to create ingress policy name Creating a function to build the ingress policy name rather than building it in-line Signed-off-by: Sneha Chhabria --- pkg/catalog/ingress.go | 9 +++++++-- pkg/catalog/ingress_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/pkg/catalog/ingress.go b/pkg/catalog/ingress.go index 8c3871c40e..fd0b81f156 100644 --- a/pkg/catalog/ingress.go +++ b/pkg/catalog/ingress.go @@ -71,7 +71,7 @@ func (mc *MeshCatalog) GetIngressPoliciesForService(svc service.MeshService, sa for _, ingress := range ingresses { if ingress.Spec.Backend != nil && ingress.Spec.Backend.ServiceName == svc.Name { - wildcardIngressPolicy := trafficpolicy.NewInboundTrafficPolicy(fmt.Sprintf("%s.%s|%s", ingress.ObjectMeta.Name, ingress.ObjectMeta.Namespace, constants.WildcardHTTPMethod), []string{constants.WildcardHTTPMethod}) + wildcardIngressPolicy := trafficpolicy.NewInboundTrafficPolicy(buildIngressPolicyName(ingress.ObjectMeta.Name, ingress.ObjectMeta.Namespace, constants.WildcardHTTPMethod), []string{constants.WildcardHTTPMethod}) wildcardIngressPolicy.AddRule(*trafficpolicy.NewRouteWeightedCluster(wildCardRouteMatch, ingressWeightedCluster), sa) inboundIngressPolicies = trafficpolicy.MergeInboundPolicies(false, inboundIngressPolicies, wildcardIngressPolicy) } @@ -81,7 +81,7 @@ func (mc *MeshCatalog) GetIngressPoliciesForService(svc service.MeshService, sa if domain == "" { domain = constants.WildcardHTTPMethod } - ingressPolicy := trafficpolicy.NewInboundTrafficPolicy(fmt.Sprintf("%s.%s|%s", ingress.ObjectMeta.Name, ingress.ObjectMeta.Namespace, domain), []string{domain}) + ingressPolicy := trafficpolicy.NewInboundTrafficPolicy(buildIngressPolicyName(ingress.ObjectMeta.Name, ingress.ObjectMeta.Namespace, domain), []string{domain}) for _, ingressPath := range rule.HTTP.Paths { if ingressPath.Backend.ServiceName != svc.Name { @@ -99,3 +99,8 @@ func (mc *MeshCatalog) GetIngressPoliciesForService(svc service.MeshService, sa } return inboundIngressPolicies, nil } + +func buildIngressPolicyName(name, namespace, host string) string { + policyName := fmt.Sprintf("%s.%s|%s", name, namespace, host) + return policyName +} diff --git a/pkg/catalog/ingress_test.go b/pkg/catalog/ingress_test.go index d772c9f471..8ba47ef043 100644 --- a/pkg/catalog/ingress_test.go +++ b/pkg/catalog/ingress_test.go @@ -341,3 +341,33 @@ func TestGetIngressPoliciesForService(t *testing.T) { } } } + +func TestBuildIngressPolicyName(t *testing.T) { + assert := tassert.New(t) + testCases := []struct { + name string + namespace string + host string + expectedName string + }{ + { + name: "bookbuyer", + namespace: "default", + host: "*", + expectedName: "bookbuyer.default|*", + }, + { + name: "bookbuyer", + namespace: "bookbuyer-ns", + host: "foobar.com", + expectedName: "bookbuyer.bookbuyer-ns|foobar.com", + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + actual := buildIngressPolicyName(tc.name, tc.namespace, tc.host) + assert.Equal(tc.expectedName, actual) + }) + } +}