Skip to content

Commit

Permalink
Merge pull request #77 from hellofresh/patch/to-grpc-map
Browse files Browse the repository at this point in the history
EES-4643 Convert from Load Test to gRPC enum using map
  • Loading branch information
vgarvardt authored Nov 30, 2020
2 parents d361a2d + d4a7c00 commit 7d81181
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 23 deletions.
8 changes: 4 additions & 4 deletions pkg/proxy/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ func RunAPIServer(ctx context.Context, cfg Config, rr APIRunner) error {
return fmt.Errorf("could not create API TCP listener: %w", err)
}

rr.Logger.Info("Running gRPC API server...", zap.String("addr", grpcAddress))
rr.Logger.Info("Running gRPC server...", zap.String("addr", grpcAddress))
if err := serverAPI.Serve(tcpListener); err != nil {
return fmt.Errorf("could not serve gRPC API: %w", err)
return fmt.Errorf("could not serve gRPC: %w", err)
}

return nil
Expand All @@ -89,9 +89,9 @@ func RunAPIServer(ctx context.Context, cfg Config, rr APIRunner) error {
return fmt.Errorf("could not register service Ping: %w", err)
}

rr.Logger.Info("Running gRPC REST server...", zap.String("addr", restAddress))
rr.Logger.Info("Running gRPC REST gateway...", zap.String("addr", restAddress))
if err := http.ListenAndServe(restAddress, mux); err != nil {
return fmt.Errorf("could not serve REST API: %w", err)
return fmt.Errorf("could not serve REST gateway: %w", err)
}

return nil
Expand Down
56 changes: 37 additions & 19 deletions pkg/proxy/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,35 +61,53 @@ func (s *implLoadTestServiceServer) Get(ctx context.Context, in *grpcProxyV2.Get

// List searches and returns load tests by given filters
func (s *implLoadTestServiceServer) List(context.Context, *grpcProxyV2.ListRequest) (*grpcProxyV2.ListResponse, error) {
return new(grpcProxyV2.ListResponse), nil
return nil, status.Error(codes.Unimplemented, "")
}

func phaseToGRPC(p apisLoadTestV1.LoadTestPhase) grpcProxyV2.LoadTestPhase {
switch p {
case apisLoadTestV1.LoadTestCreating:
return grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_CREATING
case apisLoadTestV1.LoadTestStarting:
return grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_STARTING
case apisLoadTestV1.LoadTestRunning:
return grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_RUNNING
case apisLoadTestV1.LoadTestFinished:
return grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_FINISHED
case apisLoadTestV1.LoadTestErrored:
return grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_ERRORED
if grpcVal, found := phaseToGRPCMap[p]; found {
return grpcVal
}

return grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_UNSPECIFIED
}

func typeToGRPC(t apisLoadTestV1.LoadTestType) grpcProxyV2.LoadTestType {
switch t {
case apisLoadTestV1.LoadTestTypeJMeter:
return grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_JMETER
case apisLoadTestV1.LoadTestTypeFake:
return grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_FAKE
case apisLoadTestV1.LoadTestTypeLocust:
return grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_LOCUST
if grpcVal, found := typeToGRPCMap[t]; found {
return grpcVal
}

return grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_UNSPECIFIED
}

var (
phaseToGRPCMap = map[apisLoadTestV1.LoadTestPhase]grpcProxyV2.LoadTestPhase{
"": grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_UNSPECIFIED,
apisLoadTestV1.LoadTestCreating: grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_CREATING,
apisLoadTestV1.LoadTestStarting: grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_STARTING,
apisLoadTestV1.LoadTestRunning: grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_RUNNING,
apisLoadTestV1.LoadTestFinished: grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_FINISHED,
apisLoadTestV1.LoadTestErrored: grpcProxyV2.LoadTestPhase_LOAD_TEST_PHASE_ERRORED,
}
// get populated in init() by inverting map above
grpcToPhaseMap = map[grpcProxyV2.LoadTestPhase]apisLoadTestV1.LoadTestPhase{}

typeToGRPCMap = map[apisLoadTestV1.LoadTestType]grpcProxyV2.LoadTestType{
"": grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_UNSPECIFIED,
apisLoadTestV1.LoadTestTypeJMeter: grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_JMETER,
apisLoadTestV1.LoadTestTypeFake: grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_FAKE,
apisLoadTestV1.LoadTestTypeLocust: grpcProxyV2.LoadTestType_LOAD_TEST_TYPE_LOCUST,
}
// get populated in init() by inverting map above
grpcToTypeMap = map[grpcProxyV2.LoadTestType]apisLoadTestV1.LoadTestType{}
)

func init() {
for k, v := range phaseToGRPCMap {
grpcToPhaseMap[v] = k
}

for k, v := range typeToGRPCMap {
grpcToTypeMap[v] = k
}
}

0 comments on commit 7d81181

Please sign in to comment.