fix broken startup on disabled servers
This commit is contained in:
parent
5c26accc34
commit
4f0c5fe665
@ -44,13 +44,11 @@ func (a *App) MustRun() {
|
|||||||
// Prepare GRPC first. The GRPC server may update its opts
|
// Prepare GRPC first. The GRPC server may update its opts
|
||||||
// with a prepared GRPC-Gateway runtime.ServeMux if any of its services
|
// with a prepared GRPC-Gateway runtime.ServeMux if any of its services
|
||||||
// have added GRPC-Gateway handlers. If present, serve under api path
|
// have added GRPC-Gateway handlers. If present, serve under api path
|
||||||
if a.cfg.GRPCEnabled() {
|
a.runGRPC(ctx)
|
||||||
a.runGRPC(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
if a.cfg.HTTPEnabled() {
|
// Second, prepare and run HTTP server, embedding grpc-gateway
|
||||||
a.runHTTP(ctx)
|
// runtime.ServeMux if set by runGRPC()
|
||||||
}
|
a.runHTTP(ctx)
|
||||||
|
|
||||||
// Monitor app lifecycle
|
// Monitor app lifecycle
|
||||||
go a.monitor()
|
go a.monitor()
|
||||||
|
@ -3,14 +3,26 @@ package app
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/codes"
|
"go.opentelemetry.io/otel/codes"
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
|
|
||||||
"gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/http/opts"
|
optsgrpc "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/grpc/opts"
|
||||||
|
optshttp "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/http/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *App) runGRPC(ctx context.Context) {
|
func (a *App) runGRPC(ctx context.Context) {
|
||||||
|
if a.GRPC == nil {
|
||||||
|
a.GRPC = &optsgrpc.AppGRPC{
|
||||||
|
GRPCDone: make(chan error),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !a.cfg.GRPCEnabled() {
|
||||||
|
zerolog.Ctx(ctx).Info().Msg("skipping disabled GRPC server")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
span := trace.SpanFromContext(ctx)
|
span := trace.SpanFromContext(ctx)
|
||||||
if err := a.initGRPC(ctx); err != nil {
|
if err := a.initGRPC(ctx); err != nil {
|
||||||
span.RecordError(err)
|
span.RecordError(err)
|
||||||
@ -21,10 +33,10 @@ func (a *App) runGRPC(ctx context.Context) {
|
|||||||
|
|
||||||
if a.GRPC.GetGatewayMux() != nil {
|
if a.GRPC.GetGatewayMux() != nil {
|
||||||
if a.HTTP.Handlers == nil {
|
if a.HTTP.Handlers == nil {
|
||||||
a.HTTP.Handlers = make([]opts.HTTPHandler, 0, 1)
|
a.HTTP.Handlers = make([]optshttp.HTTPHandler, 0, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
a.HTTP.Handlers = append(a.HTTP.Handlers, opts.HTTPHandler{
|
a.HTTP.Handlers = append(a.HTTP.Handlers, optshttp.HTTPHandler{
|
||||||
Prefix: a.cfg.GRPC.GRPCGatewayPath,
|
Prefix: a.cfg.GRPC.GRPCGatewayPath,
|
||||||
StripPrefix: true,
|
StripPrefix: true,
|
||||||
Handler: a.GRPC.GetGatewayMux(),
|
Handler: a.GRPC.GetGatewayMux(),
|
||||||
|
@ -3,12 +3,26 @@ package app
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
|
"github.com/rs/zerolog"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/codes"
|
"go.opentelemetry.io/otel/codes"
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
|
|
||||||
|
optshttp "gitea.libretechconsulting.com/rmcguire/go-app/pkg/srv/http/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *App) runHTTP(ctx context.Context) {
|
func (a *App) runHTTP(ctx context.Context) {
|
||||||
|
if a.HTTP == nil {
|
||||||
|
a.HTTP = &optshttp.AppHTTP{
|
||||||
|
HTTPDone: make(chan any),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !a.cfg.HTTPEnabled() {
|
||||||
|
zerolog.Ctx(ctx).Info().Msg("skipping disabled HTTP Server")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
span := trace.SpanFromContext(ctx)
|
span := trace.SpanFromContext(ctx)
|
||||||
if err := a.initHTTP(ctx); err != nil {
|
if err := a.initHTTP(ctx); err != nil {
|
||||||
span.RecordError(err)
|
span.RecordError(err)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user