Skip to content

Commit

Permalink
refactor(init_client): merge InitClient and NewClient functions
Browse files Browse the repository at this point in the history
Signed-off-by: Idriss Neumann <[email protected]>
  • Loading branch information
idrissneumann committed Jan 24, 2024
1 parent b9ebfb6 commit 3ef51f3
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 84 deletions.
73 changes: 40 additions & 33 deletions main.go

Large diffs are not rendered by default.

9 changes: 2 additions & 7 deletions outputs/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,7 @@ type Client struct {
}

// InitClient returns a new output.Client for accessing the different API.
func InitClient(outputType string, defaultEndpointURL string, mutualTLSEnabled bool, checkCert bool, params types.InitClientArgs) (*Client, error) {
return NewClient(outputType, defaultEndpointURL, mutualTLSEnabled, checkCert, params.Config, params.Stats, params.PromStats, params.StatsdClient, params.DogstatsdClient)
}

// NewClient returns a new output.Client for accessing the different API.
func NewClient(outputType string, defaultEndpointURL string, mutualTLSEnabled bool, checkCert bool, config *types.Configuration, stats *types.Statistics, promStats *types.PromStatistics, statsdClient, dogstatsdClient *statsd.Client) (*Client, error) {
func NewClient(outputType string, defaultEndpointURL string, mutualTLSEnabled bool, checkCert bool, params types.InitClientArgs) (*Client, error) {
reg := regexp.MustCompile(`(http|nats)(s?)://.*`)
if !reg.MatchString(defaultEndpointURL) {
log.Printf("[ERROR] : %v - %v\n", outputType, "Bad Endpoint")
Expand All @@ -164,7 +159,7 @@ func NewClient(outputType string, defaultEndpointURL string, mutualTLSEnabled bo
log.Printf("[ERROR] : %v - %v\n", outputType, err.Error())
return nil, ErrClientCreation
}
return &Client{OutputType: outputType, EndpointURL: endpointURL, MutualTLSEnabled: mutualTLSEnabled, CheckCert: checkCert, HeaderList: []Header{}, ContentType: DefaultContentType, Config: config, Stats: stats, PromStats: promStats, StatsdClient: statsdClient, DogstatsdClient: dogstatsdClient}, nil
return &Client{OutputType: outputType, EndpointURL: endpointURL, MutualTLSEnabled: mutualTLSEnabled, CheckCert: checkCert, HeaderList: []Header{}, ContentType: DefaultContentType, Config: params.Config, Stats: params.Stats, PromStats: params.PromStats, StatsdClient: params.StatsdClient, DogstatsdClient: params.DogstatsdClient}, nil
}

// Post sends event (payload) to Output with POST http method.
Expand Down
45 changes: 38 additions & 7 deletions outputs/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,17 @@ func TestNewClient(t *testing.T) {
stats := &types.Statistics{}
promStats := &types.PromStatistics{}

initClientArgs := &types.InitClientArgs{
Config: config,
Stats: stats,
PromStats: promStats,
}

testClientOutput := Client{OutputType: "test", EndpointURL: u, MutualTLSEnabled: false, CheckCert: true, HeaderList: []Header{}, ContentType: "application/json; charset=utf-8", Config: config, Stats: stats, PromStats: promStats}
_, err := NewClient("test", "localhost/%*$¨^!/:;", false, true, config, stats, promStats, nil, nil)
_, err := NewClient("test", "localhost/%*$¨^!/:;", false, true, *initClientArgs)
require.NotNil(t, err)

nc, err := NewClient("test", "http://localhost", false, true, config, stats, promStats, nil, nil)
nc, err := NewClient("test", "http://localhost", false, true, *initClientArgs)
require.Nil(t, err)
require.Equal(t, &testClientOutput, nc)
}
Expand Down Expand Up @@ -93,7 +99,12 @@ func TestPost(t *testing.T) {
"/429": ErrTooManyRequest,
"/502": ErrBadGateway,
} {
nc, err := NewClient("", ts.URL+i, false, true, &types.Configuration{}, &types.Statistics{}, &types.PromStatistics{}, nil, nil)
initClientArgs := &types.InitClientArgs{
Config: &types.Configuration{},
Stats: &types.Statistics{},
PromStats: &types.PromStatistics{},
}
nc, err := NewClient("", ts.URL+i, false, true, *initClientArgs)
require.Nil(t, err)
require.NotEmpty(t, nc)

Expand All @@ -108,7 +119,12 @@ func TestAddHeader(t *testing.T) {
passedVal := r.Header.Get(headerKey)
require.Equal(t, passedVal, headerVal)
}))
nc, err := NewClient("", ts.URL, false, true, &types.Configuration{}, &types.Statistics{}, &types.PromStatistics{}, nil, nil)
initClientArgs := &types.InitClientArgs{
Config: &types.Configuration{},
Stats: &types.Statistics{},
PromStats: &types.PromStatistics{},
}
nc, err := NewClient("", ts.URL, false, true, *initClientArgs)
require.Nil(t, err)
require.NotEmpty(t, nc)

Expand Down Expand Up @@ -159,7 +175,12 @@ func TestAddBasicAuth(t *testing.T) {
// and that should be the provided value.
require.Equal(t, digest, "dXNlcjpwYXNz")
}))
nc, err := NewClient("", ts.URL, false, true, &types.Configuration{}, &types.Statistics{}, &types.PromStatistics{}, nil, nil)
initClientArgs := &types.InitClientArgs{
Config: &types.Configuration{},
Stats: &types.Statistics{},
PromStats: &types.PromStatistics{},
}
nc, err := NewClient("", ts.URL, false, true, *initClientArgs)
require.Nil(t, err)
require.NotEmpty(t, nc)

Expand All @@ -175,7 +196,12 @@ func TestHeadersResetAfterReq(t *testing.T) {
require.Equal(t, 1, len(passedList), "Expected %v to have 1 element", passedList)
}))

nc, err := NewClient("", ts.URL, false, true, &types.Configuration{}, &types.Statistics{}, &types.PromStatistics{}, nil, nil)
initClientArgs := &types.InitClientArgs{
Config: &types.Configuration{},
Stats: &types.Statistics{},
PromStats: &types.PromStatistics{},
}
nc, err := NewClient("", ts.URL, false, true, *initClientArgs)
require.Nil(t, err)
require.NotEmpty(t, nc)

Expand Down Expand Up @@ -221,7 +247,12 @@ func TestMutualTlsPost(t *testing.T) {
server.StartTLS()
defer server.Close()

nc, err := NewClient("", server.URL+"/200", true, true, config, &types.Statistics{}, &types.PromStatistics{}, nil, nil)
initClientArgs := &types.InitClientArgs{
Config: config,
Stats: &types.Statistics{},
PromStats: &types.PromStatistics{},
}
nc, err := NewClient("", server.URL+"/200", true, true, *initClientArgs)
require.Nil(t, err)
require.NotEmpty(t, nc)

Expand Down
25 changes: 12 additions & 13 deletions outputs/fission.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package outputs
import (
"context"
"encoding/json"
"fmt"
"log"
"strconv"

Expand Down Expand Up @@ -58,19 +59,17 @@ func NewFissionClient(config *types.Configuration, stats *types.Statistics, prom
KubernetesClient: clientset,
}, nil
}
return NewClient(
Fission,
"http://"+config.Fission.RouterService+"."+config.Fission.RouterNamespace+
".svc.cluster.local:"+strconv.Itoa(config.Fission.RouterPort)+
"/fission-function/"+config.Fission.Function,
config.Fission.MutualTLS,
config.Fission.CheckCert,
config,
stats,
promStats,
statsdClient,
dogstatsdClient,
)

endpointUrl := fmt.Sprintf("http://%s.%s.svc.cluster.local:%d/fission-function/%s", config.Fission.RouterService, config.Fission.RouterNamespace, config.Fission.RouterPort, config.Fission.Function)
initClientArgs := &types.InitClientArgs{
Config: config,
Stats: stats,
DogstatsdClient: dogstatsdClient,
PromStats: promStats,
StatsdClient: statsdClient,
}

return NewClient(Fission, endpointUrl, config.Fission.MutualTLS, config.Fission.CheckCert, *initClientArgs)
}

// FissionCall .
Expand Down
23 changes: 12 additions & 11 deletions outputs/kubeless.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package outputs
import (
"context"
"encoding/json"
"fmt"
"log"
"strconv"

Expand Down Expand Up @@ -60,17 +61,17 @@ func NewKubelessClient(config *types.Configuration, stats *types.Statistics, pro
KubernetesClient: clientset,
}, nil
}
return NewClient(
"Kubeless",
"http://"+config.Kubeless.Function+"."+config.Kubeless.Namespace+".svc.cluster.local:"+strconv.Itoa(config.Kubeless.Port),
config.Kubeless.MutualTLS,
config.Kubeless.CheckCert,
config,
stats,
promStats,
statsdClient,
dogstatsdClient,
)

endpointUrl := fmt.Sprintf("http://%s.%s.svc.cluster.local:%d", config.Kubeless.Function, config.Kubeless.Namespace, config.Kubeless.Port)
initClientArgs := &types.InitClientArgs{
Config: config,
Stats: stats,
DogstatsdClient: dogstatsdClient,
PromStats: promStats,
StatsdClient: statsdClient,
}

return NewClient("Kubeless", endpointUrl, config.Kubeless.MutualTLS, config.Kubeless.CheckCert, *initClientArgs)
}

// KubelessCall .
Expand Down
23 changes: 12 additions & 11 deletions outputs/openfaas.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package outputs
import (
"context"
"encoding/json"
"fmt"
"log"
"strconv"

Expand Down Expand Up @@ -52,17 +53,17 @@ func NewOpenfaasClient(config *types.Configuration, stats *types.Statistics, pro
KubernetesClient: clientset,
}, nil
}
return NewClient(
Openfaas,
"http://"+config.Openfaas.GatewayService+"."+config.Openfaas.GatewayNamespace+":"+strconv.Itoa(config.Openfaas.GatewayPort)+"/function/"+config.Openfaas.FunctionName+"."+config.Openfaas.FunctionNamespace,
config.Openfaas.MutualTLS,
config.Openfaas.CheckCert,
config,
stats,
promStats,
statsdClient,
dogstatsdClient,
)

endpointUrl := fmt.Sprintf("http://%s.%s:%d/function/%s.%s", config.Openfaas.GatewayService, config.Openfaas.GatewayNamespace, config.Openfaas.GatewayPort, config.Openfaas.FunctionName, config.Openfaas.FunctionNamespace)
initClientArgs := &types.InitClientArgs{
Config: config,
Stats: stats,
DogstatsdClient: dogstatsdClient,
PromStats: promStats,
StatsdClient: statsdClient,
}

return NewClient(Openfaas, endpointUrl, config.Openfaas.MutualTLS, config.Openfaas.CheckCert, *initClientArgs)
}

// OpenfaasCall .
Expand Down
4 changes: 2 additions & 2 deletions outputs/quickwit.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ func (c *Client) checkQuickwitIndexAlreadyExists(args types.InitClientArgs) bool
config := args.Config.Quickwit

endpointUrl := fmt.Sprintf("%s/%s/indexes/%s/describe", config.HostPort, config.ApiEndpoint, config.Index)
quickwitCheckClient, err := InitClient("QuickwitCheckAlreadyExists", endpointUrl, config.MutualTLS, config.CheckCert, args)
quickwitCheckClient, err := NewClient("QuickwitCheckAlreadyExists", endpointUrl, config.MutualTLS, config.CheckCert, args)
if err != nil {
return false
}
Expand All @@ -83,7 +83,7 @@ func (c *Client) AutoCreateQuickwitIndex(args types.InitClientArgs) error {
}

endpointUrl := fmt.Sprintf("%s/%s/indexes", config.HostPort, config.ApiEndpoint)
quickwitInitClient, err := InitClient("QuickwitInit", endpointUrl, config.MutualTLS, config.CheckCert, args)
quickwitInitClient, err := NewClient("QuickwitInit", endpointUrl, config.MutualTLS, config.CheckCert, args)
if err != nil {
return err
}
Expand Down

0 comments on commit 3ef51f3

Please sign in to comment.