Skip to content

Commit

Permalink
Merge pull request #33 from Clever/infrang-5151-wag-v9
Browse files Browse the repository at this point in the history
Remove --wagv9 flag since all clients should be v9 now and updated client creation to match new strategy
  • Loading branch information
Nikhil Bhatia authored Feb 22, 2023
2 parents 1e7bb92 + 79c5efb commit 17c2753
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 50 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ $(eval $(call golang-version-check,1.13))
fixtures: build
rm -f fixtures/*.expected
./bin/launch-gen -p packagename -skip-dependency dependency-to-skip fixtures/launch1.yml > fixtures/launch1.expected
./bin/launch-gen --wagv9 -p packagename -skip-dependency dependency-to-skip -d dapple:dapple/gen-go/client/v5 fixtures/launch2.yml > fixtures/launch2.expected
./bin/launch-gen -p packagename -skip-dependency dependency-to-skip -d dapple:dapple/gen-go/client/v5 fixtures/launch2.yml > fixtures/launch2.expected

test: build $(PKGS)
diff <(./bin/launch-gen -p packagename -skip-dependency dependency-to-skip fixtures/launch1.yml) fixtures/launch1.expected
diff <(./bin/launch-gen --wagv9 -p packagename -skip-dependency dependency-to-skip -d dapple:dapple/gen-go/client/v5 fixtures/launch2.yml) fixtures/launch2.expected
diff <(./bin/launch-gen -p packagename -skip-dependency dependency-to-skip -d dapple:dapple/gen-go/client/v5 fixtures/launch2.yml) fixtures/launch2.expected

build:
$(call golang-build,$(PKG),$(EXECUTABLE))
Expand Down
15 changes: 12 additions & 3 deletions fixtures/launch1.expected
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ package packagename

import (
client1 "github.com/Clever/dapple/gen-go/client"
v9 "github.com/Clever/wag/clientconfig/v9"
client "github.com/Clever/workflow-manager/gen-go/client"
trace "go.opentelemetry.io/otel/sdk/trace"
tracetest "go.opentelemetry.io/otel/sdk/trace/tracetest"
"log"
"os"
)
Expand Down Expand Up @@ -37,12 +40,18 @@ type AwsResources struct {
}

// InitLaunchConfig creates a LaunchConfig
func InitLaunchConfig() LaunchConfig {
workflowManager, err := client.NewFromDiscovery()
func InitLaunchConfig(exp *trace.SpanExporter) LaunchConfig {
var exporter trace.SpanExporter
if exp == nil {
exporter = tracetest.NewNoopExporter()
} else {
exporter = *exp
}
workflowManager, err := client.NewFromDiscovery(v9.WithTracing("workflow-manager", exporter))
if err != nil {
log.Fatalf("discovery error: %s", err)
}
dapple, err := client1.NewFromDiscovery()
dapple, err := client1.NewFromDiscovery(v9.WithTracing("dapple", exporter))
if err != nil {
log.Fatalf("discovery error: %s", err)
}
Expand Down
7 changes: 3 additions & 4 deletions fixtures/launch2.expected
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ package packagename

import (
v5 "github.com/Clever/dapple/gen-go/client/v5"
logger "github.com/Clever/kayvee-go/v7/logger"
tracing "github.com/Clever/wag/tracing"
v9 "github.com/Clever/wag/clientconfig/v9"
client "github.com/Clever/workflow-manager/gen-go/client"
trace "go.opentelemetry.io/otel/sdk/trace"
tracetest "go.opentelemetry.io/otel/sdk/trace/tracetest"
Expand Down Expand Up @@ -48,11 +47,11 @@ func InitLaunchConfig(exp *trace.SpanExporter) LaunchConfig {
} else {
exporter = *exp
}
workflowManager, err := client.NewFromDiscovery(client.WithLogger(logger.NewConcreteLogger("workflow-manager-wagclient")), client.WithExporter(exporter), client.WithInstrumentor(tracing.InstrumentedTransport))
workflowManager, err := client.NewFromDiscovery(v9.WithTracing("workflow-manager", exporter))
if err != nil {
log.Fatalf("discovery error: %s", err)
}
dapple, err := v5.NewFromDiscovery(v5.WithLogger(logger.NewConcreteLogger("dapple-wagclient")), v5.WithExporter(exporter), v5.WithInstrumentor(tracing.InstrumentedTransport))
dapple, err := v5.NewFromDiscovery(v9.WithTracing("dapple", exporter))
if err != nil {
log.Fatalf("discovery error: %s", err)
}
Expand Down
67 changes: 26 additions & 41 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@ func main() {
t := LaunchYML{}
packageName := flag.String("p", "main", "optional package name")
outputFile := flag.String("o", "", "optional output to file. Default is stdout")
needWagV9Clients := flag.Bool("wagv9", false, "optional param to create all wag clients as wag v9 clients")
var skipDependencies flagsSet = map[string]bool{}
flag.Var(&skipDependencies, "skip-dependency", "Dependency to skip generating wag clients. Can be added mulitple times e.g. -skip-dependency a -skip-dependency b")
overrideDependenciesString := flag.String("d", "", "Dependency name to override. You can provide multiple dependencies in the format dep1:replacementDep1,dep2:replacementDep2,...")
Expand Down Expand Up @@ -152,15 +151,15 @@ func main() {
continue
}

importPackage, ok := overrideDependenciesMap[d]
if !ok {
importPackage = d
}

// Wag V9 clients have the version after 'client', so the '/gen-go/client' must be part of the override already
// with wagv9 onwards the following string is after the service name in the path
depPathSuffix := "/gen-go/client"
if ok && *needWagV9Clients {

importPackage, hasOverride := overrideDependenciesMap[d]
if hasOverride {
// Clients have the version after '/client', so the '/gen-go/client' must be part of the path override already
depPathSuffix = ""
} else {
importPackage = d
}

depsStruct = append(depsStruct, Id(strings.Title(toPublicVar(d))).Qual(fmt.Sprintf("github.com/Clever/%s%s", importPackage, depPathSuffix), "Client"))
Expand Down Expand Up @@ -220,7 +219,7 @@ func main() {
}
}
lines := []Code{}
if atLeastOneDep && *needWagV9Clients {
if atLeastOneDep {
lines = append(lines, []Code{
Id("var exporter ").Qual("go.opentelemetry.io/otel/sdk/trace", "SpanExporter"),
If(Id("exp").Op("==").Nil().Block(
Expand All @@ -236,37 +235,25 @@ func main() {
continue
}

// with wagv9 onwards the following string is after the service name in the path
depPathSuffix := "/gen-go/client"

// checking to see if the dependency name has to be overwritten
replacementString, ok := overrideDependenciesMap[d]
if !ok {
replacementString = d
depName, hasOverride := overrideDependenciesMap[d]
if hasOverride {
// Clients have the version after '/client', so the '/gen-go/client' must be part of the path override already
depPathSuffix = ""
} else {
depName = d
}

var c []Code
if *needWagV9Clients {
// Wag V9 clients have the version after 'client', so the '/gen-go/client' must be part of the override already
depPathSuffix := "/gen-go/client"
if ok && *needWagV9Clients {
depPathSuffix = ""
}
c = []Code{
List(Id(toPrivateVar(d)), Err()).Op(":=").
Qual(fmt.Sprintf("github.com/Clever/%s%s", replacementString, depPathSuffix), "NewFromDiscovery").
Call(Qual(fmt.Sprintf("github.com/Clever/%s%s", replacementString, depPathSuffix), "WithLogger").Call(Qual("github.com/Clever/kayvee-go/v7/logger", "NewConcreteLogger").Call(Lit(fmt.Sprintf("%s-wagclient", d)))),
Qual(fmt.Sprintf("github.com/Clever/%s%s", replacementString, depPathSuffix), "WithExporter").Call(Id("exporter")),
Qual(fmt.Sprintf("github.com/Clever/%s%s", replacementString, depPathSuffix), "WithInstrumentor").Call(Qual("github.com/Clever/wag/tracing", "InstrumentedTransport")),
),
If(Err().Op("!=").Nil()).Block(
Qual("log", "Fatalf").Call(List(Lit("discovery error: %s"), Err())),
),
}
} else {
c = []Code{
List(Id(toPrivateVar(d)), Err()).Op(":=").Qual(fmt.Sprintf("github.com/Clever/%s/gen-go/client", replacementString), "NewFromDiscovery").Call(),
If(Err().Op("!=").Nil()).Block(
Qual("log", "Fatalf").Call(List(Lit("discovery error: %s"), Err())),
),
}
c := []Code{
List(Id(toPrivateVar(d)), Err()).Op(":=").
Qual(fmt.Sprintf("github.com/Clever/%s%s", depName, depPathSuffix), "NewFromDiscovery").
Call(Qual("github.com/Clever/wag/clientconfig/v9", "WithTracing").Call(Lit(d), Id("exporter"))),
If(Err().Op("!=").Nil()).Block(
Qual("log", "Fatalf").Call(List(Lit("discovery error: %s"), Err())),
),
}

lines = append(lines, c...)
Expand All @@ -282,10 +269,8 @@ func main() {
lines = append(lines, ret)

f.Comment("InitLaunchConfig creates a LaunchConfig")
initLaunchConfigParams := []Code{}
if *needWagV9Clients {
initLaunchConfigParams = append(initLaunchConfigParams, Id("exp *").Qual("go.opentelemetry.io/otel/sdk/trace", "SpanExporter"))
}
initLaunchConfigParams := []Code{Id("exp *").Qual("go.opentelemetry.io/otel/sdk/trace", "SpanExporter")}

f.Func().Id("InitLaunchConfig").Params(initLaunchConfigParams...).Id("LaunchConfig").Block(lines...)

f.Comment(`requireEnvVar exits the program immediately if an env var is not set`)
Expand Down

0 comments on commit 17c2753

Please sign in to comment.