From d26e8248f7f50dc8da3fc6c1cba3f9b1e93f5ac3 Mon Sep 17 00:00:00 2001 From: Chet Nichols III Date: Tue, 10 Mar 2026 20:20:11 -0700 Subject: [PATCH 1/2] refactor: Adopt the common.SetupHandler for all handlers Sorry, as part of putting up https://github.com/NVIDIA/bare-metal-manager-rest/pull/220, I started digging around to see if there was anything else I could contribute instead of just doing a drive by. I noticed there's this `common.SetupHandler` that exists, and that it *looks* like the idea is to adopt it everywhere, so this does that. It shaves down a bunch of code, and ensures handler setup is standardized. The nice thing was, everything already *was* standardized (just the same lines of setup for each one), so it was an easy migration into this handler. There MAY be a reason nothing was using this yet, but figured I'd toss this up! If it's not the right direction for things, totally feel free to throw it back at me. Signed-off-by: Chet Nichols III --- api/pkg/api/handler/allocation.go | 118 +------- api/pkg/api/handler/allocationconstraint.go | 24 +- api/pkg/api/handler/audit_entry.go | 47 +-- api/pkg/api/handler/expectedmachine.go | 14 +- api/pkg/api/handler/fabric.go | 47 +-- api/pkg/api/handler/infinibandpartition.go | 116 +------- api/pkg/api/handler/infrastructureprovider.go | 95 +----- api/pkg/api/handler/instance.go | 137 +-------- api/pkg/api/handler/instancetype.go | 116 +------- api/pkg/api/handler/interface.go | 24 +- api/pkg/api/handler/ipblock.go | 139 +-------- api/pkg/api/handler/machine.go | 113 +------ api/pkg/api/handler/machinecapability.go | 25 +- api/pkg/api/handler/machineinstancetype.go | 70 +---- api/pkg/api/handler/machinevalidation.go | 276 +++--------------- api/pkg/api/handler/networksecuritygroup.go | 116 +------- api/pkg/api/handler/nvlinkinterface.go | 24 +- api/pkg/api/handler/nvlinklogicalpartition.go | 116 +------- api/pkg/api/handler/operatingsystem.go | 116 +------- api/pkg/api/handler/serviceaccount.go | 25 +- api/pkg/api/handler/site.go | 135 +-------- api/pkg/api/handler/sshkey.go | 116 +------- api/pkg/api/handler/sshkeygroup.go | 116 +------- api/pkg/api/handler/subnet.go | 116 +------- api/pkg/api/handler/tenant.go | 94 +----- api/pkg/api/handler/tenantaccount.go | 116 +------- api/pkg/api/handler/user.go | 26 +- api/pkg/api/handler/vpc.go | 137 +-------- api/pkg/api/handler/vpcprefix.go | 119 +------- 29 files changed, 250 insertions(+), 2483 deletions(-) diff --git a/api/pkg/api/handler/allocation.go b/api/pkg/api/handler/allocation.go index 8f96bc1d..77c1bf62 100644 --- a/api/pkg/api/handler/allocation.go +++ b/api/pkg/api/handler/allocation.go @@ -29,7 +29,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -86,30 +85,11 @@ func NewCreateAllocationHandler(dbSession *cdb.Session, tc temporalClient.Client // @Success 201 {object} model.APIAllocation // @Router /v2/org/{org}/carbide/allocation [post] func (cah CreateAllocationHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Allocation").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cah.tracerSpan.CreateChildInContext(ctx, "CreateAllocationHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Allocation", "Create", c, cah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -538,30 +518,11 @@ func NewGetAllAllocationHandler(dbSession *cdb.Session, tc temporalClient.Client // @Success 200 {object} []model.APIAllocation // @Router /v2/org/{org}/carbide/allocation [get] func (gaah GetAllAllocationHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Allocation").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaah.tracerSpan.CreateChildInContext(ctx, "GetAllAllocationHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Allocation", "GetAll", c, gaah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -906,30 +867,11 @@ func NewGetAllocationHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 200 {object} model.APIAllocation // @Router /v2/org/{org}/carbide/allocation/{id} [get] func (gah GetAllocationHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Allocation").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gah.tracerSpan.CreateChildInContext(ctx, "GetAllocationHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Allocation", "Get", c, gah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1123,30 +1065,11 @@ func NewUpdateAllocationHandler(dbSession *cdb.Session, tc temporalClient.Client // @Success 200 {object} model.APIAllocation // @Router /v2/org/{org}/carbide/allocation/{id} [patch] func (uah UpdateAllocationHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Allocation").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uah.tracerSpan.CreateChildInContext(ctx, "UpdateAllocationHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Allocation", "Update", c, uah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1346,32 +1269,11 @@ func NewDeleteAllocationHandler(dbSession *cdb.Session, tc temporalClient.Client // @Success 202 // @Router /v2/org/{org}/carbide/allocation/{id} [delete] func (dah DeleteAllocationHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Allocation").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child spanner and set the attribute - newctx, handlerSpan := dah.tracerSpan.CreateChildInContext(ctx, "DeleteAllocationHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Allocation", "Delete", c, dah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - // dah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) - dah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) - } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/allocationconstraint.go b/api/pkg/api/handler/allocationconstraint.go index 2d9d5248..eb27d2fc 100644 --- a/api/pkg/api/handler/allocationconstraint.go +++ b/api/pkg/api/handler/allocationconstraint.go @@ -27,7 +27,6 @@ import ( temporalClient "go.temporal.io/sdk/client" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -77,30 +76,11 @@ func NewUpdateAllocationConstraintHandler(dbSession *cdb.Session, tc temporalCli // @Success 200 {object} model.APIAllocationConstraint // @Router /v2/org/{org}/carbide/allocation/{allocation_id}/constraint/{id} [patch] func (uach UpdateAllocationConstraintHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "AllocationConstraint").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uach.tracerSpan.CreateChildInContext(ctx, "UpdateAllocationConstraintHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("AllocationConstraint", "Update", c, uach.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uach.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uach.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/audit_entry.go b/api/pkg/api/handler/audit_entry.go index 279fb6f0..a1e60e39 100644 --- a/api/pkg/api/handler/audit_entry.go +++ b/api/pkg/api/handler/audit_entry.go @@ -35,7 +35,6 @@ import ( cdb "github.com/nvidia/bare-metal-manager-rest/db/pkg/db" cdbm "github.com/nvidia/bare-metal-manager-rest/db/pkg/db/model" "github.com/nvidia/bare-metal-manager-rest/db/pkg/db/paginator" - "github.com/rs/zerolog/log" "go.opentelemetry.io/otel/attribute" ) @@ -63,30 +62,11 @@ func NewGetAllAuditEntryHandler(dbSession *cdb.Session) GetAllAuditEntryHandler // @Success 200 {array} []model.APIAuditEntry // @Router /v2/org/{org}/carbide/audit [get] func (gaaeh GetAllAuditEntryHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - orgName := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "AuditEntry").Str("Handler", "GetAll").Str("Org", orgName).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaaeh.tracerSpan.CreateChildInContext(ctx, "GetAllAuditEntryHandler", logger) + orgName, dbUser, ctx, logger, handlerSpan := common.SetupHandler("AuditEntry", "GetAll", c, gaaeh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaaeh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", orgName), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaaeh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -218,30 +198,11 @@ func NewGetAuditEntryHandler(dbSession *cdb.Session) GetAuditEntryHandler { // @Success 200 {object} model.APIAuditEntry // @Router /v2/org/{org}/carbide/audit/{id} [get] func (gaeh GetAuditEntryHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - orgName := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "AuditEntry").Str("Handler", "GetAll").Str("Org", orgName).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaeh.tracerSpan.CreateChildInContext(ctx, "GetAuditEntryHandler", logger) + orgName, dbUser, ctx, logger, handlerSpan := common.SetupHandler("AuditEntry", "GetAll", c, gaeh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaeh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", orgName), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaeh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/expectedmachine.go b/api/pkg/api/handler/expectedmachine.go index 1bb2c973..03bf5f19 100644 --- a/api/pkg/api/handler/expectedmachine.go +++ b/api/pkg/api/handler/expectedmachine.go @@ -127,7 +127,7 @@ func NewCreateExpectedMachineHandler(dbSession *cdb.Session, tc tclient.Client, // @Success 201 {object} model.APIExpectedMachine // @Router /v2/org/{org}/carbide/expected-machine [post] func (cemh CreateExpectedMachineHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Create", "ExpectedMachine", c, cemh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "Create", c, cemh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } @@ -352,7 +352,7 @@ func NewGetAllExpectedMachineHandler(dbSession *cdb.Session, tc tclient.Client, // @Success 200 {object} []model.APIExpectedMachine // @Router /v2/org/{org}/carbide/expected-machine [get] func (gaemh GetAllExpectedMachineHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("GetAll", "ExpectedMachine", c, gaemh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "GetAll", c, gaemh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } @@ -511,7 +511,7 @@ func NewGetExpectedMachineHandler(dbSession *cdb.Session, tc tclient.Client, cfg // @Success 200 {object} model.APIExpectedMachine // @Router /v2/org/{org}/carbide/expected-machine/{id} [get] func (gemh GetExpectedMachineHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Get", "ExpectedMachine", c, gemh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "Get", c, gemh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } @@ -617,7 +617,7 @@ func NewUpdateExpectedMachineHandler(dbSession *cdb.Session, tc tclient.Client, // @Success 200 {object} model.APIExpectedMachine // @Router /v2/org/{org}/carbide/expected-machine/{id} [patch] func (uemh UpdateExpectedMachineHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Update", "ExpectedMachine", c, uemh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "Update", c, uemh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } @@ -837,7 +837,7 @@ func NewDeleteExpectedMachineHandler(dbSession *cdb.Session, tc tclient.Client, // @Success 204 // @Router /v2/org/{org}/carbide/expected-machine/{id} [delete] func (demh DeleteExpectedMachineHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Delete", "ExpectedMachine", c, demh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "Delete", c, demh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } @@ -982,7 +982,7 @@ func NewCreateExpectedMachinesHandler(dbSession *cdb.Session, tc tclient.Client, // @Success 201 {object} model.APIExpectedMachineBatchResponse // @Router /v2/org/{org}/carbide/expected-machine/batch [post] func (cemh CreateExpectedMachinesHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("CreateMultiple", "ExpectedMachine", c, cemh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "CreateMultiple", c, cemh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } @@ -1321,7 +1321,7 @@ func NewUpdateExpectedMachinesHandler(dbSession *cdb.Session, tc tclient.Client, // @Success 200 {object} model.APIExpectedMachineBatchResponse // @Router /v2/org/{org}/carbide/expected-machine/batch [patch] func (uemh UpdateExpectedMachinesHandler) Handle(c echo.Context) error { - org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("UpdateMultiple", "ExpectedMachine", c, uemh.tracerSpan) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ExpectedMachine", "UpdateMultiple", c, uemh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() } diff --git a/api/pkg/api/handler/fabric.go b/api/pkg/api/handler/fabric.go index 479a8aa9..3441ed18 100644 --- a/api/pkg/api/handler/fabric.go +++ b/api/pkg/api/handler/fabric.go @@ -26,7 +26,6 @@ import ( temporalClient "go.temporal.io/sdk/client" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -75,30 +74,11 @@ func NewGetAllFabricHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 200 {object} []model.APIFabric // @Router /v2/org/{org}/carbide/site/{siteId}/fabric [get] func (gafh GetAllFabricHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Fabric").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gafh.tracerSpan.CreateChildInContext(ctx, "GetAllFabricHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Fabric", "GetAll", c, gafh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gafh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gafh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -271,30 +251,11 @@ func NewGetFabricHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg * // @Success 200 {object} model.APIFabric // @Router /v2/org/{org}/carbide/site/{siteId}/fabric/{id} [get] func (gfh GetFabricHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Fabric").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gfh.tracerSpan.CreateChildInContext(ctx, "GetFabricHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Fabric", "Get", c, gfh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gfh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gfh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/infinibandpartition.go b/api/pkg/api/handler/infinibandpartition.go index 9fc29c73..93ded7af 100644 --- a/api/pkg/api/handler/infinibandpartition.go +++ b/api/pkg/api/handler/infinibandpartition.go @@ -32,7 +32,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" "github.com/labstack/echo/v4" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -84,30 +83,11 @@ func NewCreateInfiniBandPartitionHandler(dbSession *cdb.Session, tc temporalClie // @Success 201 {object} model.APIInfiniBandPartition // @Router /v2/org/{org}/carbide/infiniband-partition [post] func (cibph CreateInfiniBandPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfiniBandPartition").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cibph.tracerSpan.CreateChildInContext(ctx, "CreateInfiniBandPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfiniBandPartition", "Create", c, cibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -420,30 +400,11 @@ func NewGetAllInfiniBandPartitionHandler(dbSession *cdb.Session, tc temporalClie // @Success 200 {object} []model.APIInfiniBandPartition // @Router /v2/org/{org}/carbide/infiniband-partition [get] func (gaibph GetAllInfiniBandPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfiniBandPartition").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaibph.tracerSpan.CreateChildInContext(ctx, "GetAllInfiniBandPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfiniBandPartition", "GetAll", c, gaibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -641,30 +602,11 @@ func NewGetInfiniBandPartitionHandler(dbSession *cdb.Session, tc temporalClient. // @Success 200 {object} model.APIInfiniBandPartition // @Router /v2/org/{org}/carbide/infiniband-partition/{id} [get] func (gibph GetInfiniBandPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfiniBandPartition").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gibph.tracerSpan.CreateChildInContext(ctx, "GetInfiniBandPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfiniBandPartition", "Get", c, gibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -780,30 +722,11 @@ func NewUpdateInfiniBandPartitionHandler(dbSession *cdb.Session, tc temporalClie // @Success 200 {object} model.APIInfiniBandPartition // @Router /v2/org/{org}/carbide/infiniband-partition/{id} [patch] func (uibph UpdateInfiniBandPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfiniBandPartition").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uibph.tracerSpan.CreateChildInContext(ctx, "UpdateInfiniBandPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfiniBandPartition", "Update", c, uibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -998,30 +921,11 @@ func NewDeleteInfiniBandPartitionHandler(dbSession *cdb.Session, tc temporalClie // @Success 202 // @Router /v2/org/{org}/carbide/infiniband-partition/{id} [delete] func (dibph DeleteInfiniBandPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfiniBandPartition").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dibph.tracerSpan.CreateChildInContext(ctx, "DeleteInfiniBandPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfiniBandPartition", "Delete", c, dibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/infrastructureprovider.go b/api/pkg/api/handler/infrastructureprovider.go index 85ef6f2e..d184b1fc 100644 --- a/api/pkg/api/handler/infrastructureprovider.go +++ b/api/pkg/api/handler/infrastructureprovider.go @@ -21,11 +21,8 @@ import ( "fmt" "net/http" - "go.opentelemetry.io/otel/attribute" temporalClient "go.temporal.io/sdk/client" - "github.com/rs/zerolog/log" - "github.com/labstack/echo/v4" cdb "github.com/nvidia/bare-metal-manager-rest/db/pkg/db" @@ -70,30 +67,11 @@ func NewCreateInfrastructureProviderHandler(dbSession *cdb.Session, tc temporalC // @Success 201 {object} model.APIInfrastructureProvider // @Router /v2/org/{org}/carbide/infrastructure-provider [post] func (ciph CreateInfrastructureProviderHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfrastructureProvider").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ciph.tracerSpan.CreateChildInContext(ctx, "CreateInfrastructureProviderHandler", logger) + org, dbUser, _, logger, handlerSpan := common.SetupHandler("InfrastructureProvider", "Create", c, ciph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ciph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ciph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -149,30 +127,11 @@ func NewGetCurrentInfrastructureProviderHandler(dbSession *cdb.Session, tc tempo // @Success 200 {object} model.APIInfrastructureProvider // @Router /v2/org/{org}/carbide/infrastructure-provider/current [get] func (gciph GetCurrentInfrastructureProviderHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfrastructureProvider").Str("Handler", "GetCurrent").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gciph.tracerSpan.CreateChildInContext(ctx, "GetCurrentInfrastructureProviderHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfrastructureProvider", "GetCurrent", c, gciph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gciph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gciph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -264,30 +223,11 @@ func NewGetCurrentInfrastructureProviderStatsHandler(dbSession *cdb.Session, tc // @Success 200 {object} model.APIInfrastructureProviderStats // @Router /v2/org/{org}/carbide/infrastructure-provider/current/stats [get] func (gcipsh GetCurrentInfrastructureProviderStatsHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfrastructureProvider").Str("Handler", "GetCurrentStats").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gcipsh.tracerSpan.CreateChildInContext(ctx, "GetCurrentInfrastructureProviderStatsHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InfrastructureProvider", "GetCurrentStats", c, gcipsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gcipsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gcipsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -386,30 +326,11 @@ func NewUpdateCurrentInfrastructureProviderHandler(dbSession *cdb.Session, tc te // @Success 200 {object} model.APIInfrastructureProvider // @Router /v2/org/{org}/carbide/infrastructure-provider/current [patch] func (uciph UpdateCurrentInfrastructureProviderHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InfrastructureProvider").Str("Handler", "UpdateCurrent").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uciph.tracerSpan.CreateChildInContext(ctx, "UpdateCurrentInfrastructureProviderHandler", logger) + org, dbUser, _, logger, handlerSpan := common.SetupHandler("InfrastructureProvider", "UpdateCurrent", c, uciph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uciph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uciph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/instance.go b/api/pkg/api/handler/instance.go index ba95c1e7..870b8e55 100644 --- a/api/pkg/api/handler/instance.go +++ b/api/pkg/api/handler/instance.go @@ -37,7 +37,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" "github.com/rs/zerolog" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" common "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -270,30 +269,11 @@ func (cih CreateInstanceHandler) Handle(c echo.Context) error { // ==================== Step 1: Authentication & Authorization ==================== - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Instance").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cih.tracerSpan.CreateChildInContext(ctx, "CreateInstanceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Instance", "Create", c, cih.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cih.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cih.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1954,30 +1934,11 @@ func (uih UpdateInstanceHandler) buildInstanceUpdateRequestOsConfig(c echo.Conte // @Success 200 {object} model.APIInstance // @Router /v2/org/{org}/carbide/instance/{id} [patch] func (uih UpdateInstanceHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Instance").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uih.tracerSpan.CreateChildInContext(ctx, "UpdateInstanceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Instance", "Update", c, uih.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uih.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uih.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -3310,30 +3271,11 @@ func NewGetInstanceHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg // @Success 200 {object} model.APIInstance // @Router /v2/org/{org}/carbide/instance/{id} [get] func (gih GetInstanceHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Instance").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gih.tracerSpan.CreateChildInContext(ctx, "GetInstanceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Instance", "Get", c, gih.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gih.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gih.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -3573,30 +3515,11 @@ func NewGetAllInstanceHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 200 {array} []model.APIInstance // @Router /v2/org/{org}/carbide/instance [get] func (gaih GetAllInstanceHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Instance").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaih.tracerSpan.CreateChildInContext(ctx, "GetAllInstanceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Instance", "GetAll", c, gaih.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaih.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaih.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -4160,30 +4083,11 @@ func NewDeleteInstanceHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 202 // @Router /v2/org/{org}/carbide/instance/{id} [delete] func (dih DeleteInstanceHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Instance").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dih.tracerSpan.CreateChildInContext(ctx, "DeleteInstanceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Instance", "Delete", c, dih.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dih.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dih.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -4437,28 +4341,11 @@ func NewGetInstanceStatusDetailsHandler(dbSession *cdb.Session) GetInstanceStatu // @Success 200 {object} []model.APIStatusDetail // @Router /v2/org/{org}/carbide/instance/{id}/status-history [get] func (gisdh GetInstanceStatusDetailsHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Instance").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gisdh.tracerSpan.CreateChildInContext(ctx, "GetInstanceStatusDetailsHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Instance", "Get", c, gisdh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx defer handlerSpan.End() - gisdh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gisdh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/instancetype.go b/api/pkg/api/handler/instancetype.go index 9a6e85cf..3488fadd 100644 --- a/api/pkg/api/handler/instancetype.go +++ b/api/pkg/api/handler/instancetype.go @@ -32,7 +32,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -91,30 +90,11 @@ func NewCreateInstanceTypeHandler(dbSession *cdb.Session, tc temporalClient.Clie // @Success 201 {object} model.APIInstanceType // @Router /v2/org/{org}/carbide/instance/type [post] func (cith CreateInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InstanceType").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cith.tracerSpan.CreateChildInContext(ctx, "CreateInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InstanceType", "Create", c, cith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -527,30 +507,11 @@ func NewGetAllInstanceTypeHandler(dbSession *cdb.Session, tc temporalClient.Clie // @Success 200 {object} []model.APIInstanceType // @Router /v2/org/{org}/carbide/instance/type [get] func (gaith GetAllInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InstanceType").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaith.tracerSpan.CreateChildInContext(ctx, "GetAllInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InstanceType", "GetAll", c, gaith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -880,30 +841,11 @@ func NewGetInstanceTypeHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 200 {object} []model.APIInstanceType // @Router /v2/org/{org}/carbide/instance/type/{id} [get] func (gith GetInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InstanceType").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gith.tracerSpan.CreateChildInContext(ctx, "GetInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InstanceType", "Get", c, gith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1087,30 +1029,11 @@ func NewUpdateInstanceTypeHandler(dbSession *cdb.Session, tc temporalClient.Clie // @Success 200 {object} model.APIInstanceType // @Router /v2/org/{org}/carbide/instance/type/{id} [patch] func (uith UpdateInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InstanceType").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uith.tracerSpan.CreateChildInContext(ctx, "UpdateInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InstanceType", "Update", c, uith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1595,30 +1518,11 @@ func NewDeleteInstanceTypeHandler(dbSession *cdb.Session, tc temporalClient.Clie // @Success 204 // @Router /v2/org/{org}/carbide/instance/type/{id} [delete] func (dith DeleteInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "InstanceType").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dith.tracerSpan.CreateChildInContext(ctx, "DeleteInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("InstanceType", "Delete", c, dith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/interface.go b/api/pkg/api/handler/interface.go index 60c760f3..60f4b6e8 100644 --- a/api/pkg/api/handler/interface.go +++ b/api/pkg/api/handler/interface.go @@ -26,7 +26,6 @@ import ( temporalClient "go.temporal.io/sdk/client" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -79,30 +78,11 @@ func NewGetAllInterfaceHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 200 {object} model.APIInterface // @Router /v2/org/{org}/carbide/instance/{instance_id}/interface [get] func (gaish GetAllInterfaceHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Interface").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaish.tracerSpan.CreateChildInContext(ctx, "GetAllInterfaceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Interface", "GetAll", c, gaish.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaish.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaish.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/ipblock.go b/api/pkg/api/handler/ipblock.go index 264aa0ab..2ec86299 100644 --- a/api/pkg/api/handler/ipblock.go +++ b/api/pkg/api/handler/ipblock.go @@ -31,7 +31,6 @@ import ( mapset "github.com/deckarep/golang-set/v2" validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -81,30 +80,11 @@ func NewCreateIPBlockHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 201 {object} model.APIIPBlock // @Router /v2/org/{org}/carbide/ipblock [post] func (cipbh CreateIPBlockHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "IPBlock").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cipbh.tracerSpan.CreateChildInContext(ctx, "CreateIPBlockHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("IPBlock", "Create", c, cipbh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cipbh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cipbh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -324,30 +304,11 @@ func NewGetAllIPBlockHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 200 {object} []model.APIIPBlock // @Router /v2/org/{org}/carbide/ipblock [get] func (gaipbh GetAllIPBlockHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "IPBlock").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaipbh.tracerSpan.CreateChildInContext(ctx, "GetAllIPBlockHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("IPBlock", "GetAll", c, gaipbh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaipbh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaipbh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -602,30 +563,11 @@ func NewGetAllDerivedIPBlockHandler(dbSession *cdb.Session, tc temporalClient.Cl // @Success 200 {object} model.APIIPBlock // @Router /v2/org/{org}/carbide/ipblock/{id}/derived [get] func (gadipbh GetAllDerivedIPBlockHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "IPBlock").Str("Handler", "GetAllDerived").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gadipbh.tracerSpan.CreateChildInContext(ctx, "GetAllDerivedIPBlockHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("IPBlock", "GetAllDerived", c, gadipbh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gadipbh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gadipbh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -851,30 +793,11 @@ func NewGetIPBlockHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg // @Success 200 {object} model.APIIPBlock // @Router /v2/org/{org}/carbide/ipblock/{id} [get] func (gipbh GetIPBlockHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "IPBlock").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gipbh.tracerSpan.CreateChildInContext(ctx, "GetIPBlockHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("IPBlock", "Get", c, gipbh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gipbh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gipbh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1014,30 +937,11 @@ func NewUpdateIPBlockHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 200 {object} model.APIIPBlock // @Router /v2/org/{org}/carbide/ipblock/{id} [patch] func (uipbh UpdateIPBlockHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "IPBlock").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uipbh.tracerSpan.CreateChildInContext(ctx, "UpdateIPBlockHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("IPBlock", "Update", c, uipbh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uipbh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uipbh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1220,30 +1124,11 @@ func NewDeleteIPBlockHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 202 // @Router /v2/org/{org}/carbide/ipblock/{id} [delete] func (dipbh DeleteIPBlockHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "IPBlock").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dipbh.tracerSpan.CreateChildInContext(ctx, "DeleteIPBlockHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("IPBlock", "Delete", c, dipbh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dipbh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dipbh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/machine.go b/api/pkg/api/handler/machine.go index cac7ab9c..4178c719 100644 --- a/api/pkg/api/handler/machine.go +++ b/api/pkg/api/handler/machine.go @@ -240,30 +240,11 @@ func NewGetAllMachineHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 200 {object} []model.APIMachine // @Router /v2/org/{org}/carbide/machine [get] func (gamh GetAllMachineHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Machine").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gamh.tracerSpan.CreateChildInContext(ctx, "GetAllMachineHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Machine", "GetAll", c, gamh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gamh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gamh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -598,30 +579,11 @@ func NewGetMachineHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg // @Success 200 {object} model.APIMachine // @Router /v2/org/{org}/carbide/machine/{id} [get] func (gmh GetMachineHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Machine").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gmh.tracerSpan.CreateChildInContext(ctx, "GetMachineHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Machine", "Get", c, gmh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gmh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gmh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -774,30 +736,11 @@ func NewUpdateMachineHandler(dbSession *cdb.Session, tc temporalClient.Client, s // @Success 200 {object} model.APIMachine // @Router /v2/org/{org}/carbide/machine/{id} [patch] func (umh UpdateMachineHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Machine").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := umh.tracerSpan.CreateChildInContext(ctx, "UpdateMachineHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Machine", "Update", c, umh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - umh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, umh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1480,28 +1423,11 @@ func NewGetMachineStatusDetailsHandler(dbSession *cdb.Session) GetMachineStatusD // @Success 200 {object} []model.APIStatusDetail // @Router /v2/org/{org}/carbide/machine/{id}/status-history [get] func (gmsdh GetMachineStatusDetailsHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Machine").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gmsdh.tracerSpan.CreateChildInContext(ctx, "GetMachineStatusDetailsHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Machine", "Get", c, gmsdh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx defer handlerSpan.End() - gmsdh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gmsdh.tracerSpan, handlerSpan) - if err != nil || dbUser == nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1626,30 +1552,11 @@ func NewDeleteMachineHandler(dbSession *cdb.Session, tc temporalClient.Client, c // @Success 202 {object} // @Router /v2/org/{org}/carbide/machine/{id} [delete] func (umh DeleteMachineHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Machine").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := umh.tracerSpan.CreateChildInContext(ctx, "DeleteMachineHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Machine", "Delete", c, umh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - umh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, umh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/machinecapability.go b/api/pkg/api/handler/machinecapability.go index 4332acec..732a3c54 100644 --- a/api/pkg/api/handler/machinecapability.go +++ b/api/pkg/api/handler/machinecapability.go @@ -25,8 +25,6 @@ import ( "github.com/google/uuid" "github.com/labstack/echo/v4" - "github.com/rs/zerolog/log" - "go.opentelemetry.io/otel/attribute" cdb "github.com/nvidia/bare-metal-manager-rest/db/pkg/db" cdbm "github.com/nvidia/bare-metal-manager-rest/db/pkg/db/model" @@ -65,30 +63,11 @@ func NewGetAllMachineCapabilityHandler(dbSession *cdb.Session) GetAllMachineCapa // @Success 200 {object} model.APIUser // @Router /v2/org/{org}/carbide/machine-capability [get] func (gamch GetAllMachineCapabilityHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "MachineCapability").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gamch.tracerSpan.CreateChildInContext(ctx, "GetAllMachineCapabilityHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineCapability", "GetAll", c, gamch.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gamch.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gamch.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/machineinstancetype.go b/api/pkg/api/handler/machineinstancetype.go index ff85e052..75dddd18 100644 --- a/api/pkg/api/handler/machineinstancetype.go +++ b/api/pkg/api/handler/machineinstancetype.go @@ -30,7 +30,6 @@ import ( tp "go.temporal.io/sdk/temporal" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -85,30 +84,11 @@ func NewCreateMachineInstanceTypeHandler(dbSession *cdb.Session, tc temporalClie // @Success 201 {object} model.APIMachineInstanceType // @Router /v2/org/{org}/carbide/instance/type/{instance_type_id}/machine [post] func (cmith CreateMachineInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "MachineInstanceType").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cmith.tracerSpan.CreateChildInContext(ctx, "CreateMachineInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineInstanceType", "Create", c, cmith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cmith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cmith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -379,30 +359,11 @@ func NewGetAllMachineInstanceTypeHandler(dbSession *cdb.Session, tc temporalClie // @Success 200 {object} []model.APIMachineInstanceType // @Router /v2/org/{org}/carbide/instance/type/{instance_type_id}/machine [get] func (gamith GetAllMachineInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "MachineInstanceType").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gamith.tracerSpan.CreateChildInContext(ctx, "GetAllMachineInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineInstanceType", "GetAll", c, gamith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gamith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gamith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -548,30 +509,11 @@ func NewDeleteMachineInstanceTypeHandler(dbSession *cdb.Session, tc temporalClie // @Success 204 // @Router /v2/org/{org}/carbide/instance/type/{instance_type_id}/machine/{id} [delete] func (dmith DeleteMachineInstanceTypeHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "MachineInstanceType").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dmith.tracerSpan.CreateChildInContext(ctx, "DeleteMachineInstanceTypeHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineInstanceType", "Delete", c, dmith.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dmith.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dmith.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/machinevalidation.go b/api/pkg/api/handler/machinevalidation.go index 34af0a29..1299fbf9 100644 --- a/api/pkg/api/handler/machinevalidation.go +++ b/api/pkg/api/handler/machinevalidation.go @@ -34,7 +34,6 @@ import ( cwssaws "github.com/nvidia/bare-metal-manager-rest/workflow-schema/schema/site-agent/workflows/v1" "github.com/nvidia/bare-metal-manager-rest/workflow/pkg/queue" "github.com/rs/zerolog" - "github.com/rs/zerolog/log" "go.opentelemetry.io/otel/attribute" tclient "go.temporal.io/sdk/client" tp "go.temporal.io/sdk/temporal" @@ -74,33 +73,14 @@ func NewCreateMachineValidationTestHandler(dbSession *cdb.Session, tc tclient.Cl // @Success 201 {object} model.APIMachineValidationTest // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/test [post] func (handler CreateMachineValidationTestHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationTest").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "CreateMachineValidationTestHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationTest", "Create", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -243,33 +223,14 @@ func NewUpdateMachineValidationTestHandler(dbSession *cdb.Session, tc tclient.Cl // @Success 201 {object} model.APIMachineValidationTest // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/test/{id}/version/{version} [patch] func (handler UpdateMachineValidationTestHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationTest").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "UpdateMachineValidationTestHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationTest", "Update", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -457,33 +418,14 @@ func NewGetAllMachineValidationTestHandler(dbSession *cdb.Session, tc tclient.Cl // @Success 200 {object} []model.APIMachineValidationTest // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/test [get] func (handler GetAllMachineValidationTestHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationTest").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "GetAllMachineValidationTestHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationTest", "GetAll", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -612,33 +554,14 @@ func NewGetMachineValidationTestHandler(dbSession *cdb.Session, tc tclient.Clien // @Success 200 {object} model.APIMachineValidationTest // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/test [get] func (handler GetMachineValidationTestHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationTest").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "GetMachineValidationTestHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationTest", "Get", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -773,33 +696,14 @@ func NewGetMachineValidationResultsHandler(dbSession *cdb.Session, tc tclient.Cl // @Success 200 {object} []model.APIMachineValidationResult // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/results/machine/{id} [get] func (handler GetMachineValidationResultsHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationResult").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "GetMachineValidationResultsHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationResult", "Get", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -928,33 +832,14 @@ func NewGetAllMachineValidationRunHandler(dbSession *cdb.Session, tc tclient.Cli // @Success 200 {object} []model.APIMachineValidationRun // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/runs/machine/{id} [get] func (handler GetAllMachineValidationRunHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationRun").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "GetAllMachineValidationRunHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationRun", "GetAll", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -1083,33 +968,14 @@ func NewGetAllMachineValidationExternalConfigHandler(dbSession *cdb.Session, tc // @Success 200 {object} []model.APIMachineValidationExternalConfig // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/external-config [get] func (handler GetAllMachineValidationExternalConfigHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationExternalConfig").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "GetAllMachineValidationExternalConfigHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationExternalConfig", "GetAll", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -1231,33 +1097,14 @@ func NewGetMachineValidationExternalConfigHandler(dbSession *cdb.Session, tc tcl // @Success 200 {object} model.APIMachineValidationExternalConfig // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/external-config/{name} [get] func (handler GetMachineValidationExternalConfigHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationExternalConfig").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "GetMachineValidationExternalConfigHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationExternalConfig", "Get", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -1390,33 +1237,14 @@ func NewCreateMachineValidationExternalConfigHandler(dbSession *cdb.Session, tc // @Success 201 {object} model.APIMachineValidationExternalConfig // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/external-config [post] func (handler CreateMachineValidationExternalConfigHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationExternalConfig").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "CreateMachineValidationExternalConfigHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationExternalConfig", "Create", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -1557,33 +1385,14 @@ func NewUpdateMachineValidationExternalConfigHandler(dbSession *cdb.Session, tc // @Success 200 {object} model.APIMachineValidationExternalConfig // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/external-config/{name} [patch] func (handler UpdateMachineValidationExternalConfigHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationExternalConfig").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "UpdateMachineValidationExternalConfigHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationExternalConfig", "Update", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) @@ -1784,33 +1593,14 @@ func NewDeleteMachineValidationExternalConfigHandler(dbSession *cdb.Session, tc // @Success 202 // @Router /v2/org/{org}/carbide/site/{site}/machine-validation/external-config/{name} [delete] func (handler DeleteMachineValidationExternalConfigHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - siteID := c.Param("siteID") - - // Initialize logger - logger := log.With().Str("Model", "MachineValidationExternalConfig").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := handler.tracerSpan.CreateChildInContext(ctx, "DeleteMachineValidationExternalConfigHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("MachineValidationExternalConfig", "Delete", c, handler.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - handler.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, handler.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } + siteID := c.Param("siteID") // Validate org ok, err := auth.ValidateOrgMembership(dbUser, org) diff --git a/api/pkg/api/handler/networksecuritygroup.go b/api/pkg/api/handler/networksecuritygroup.go index 9b6670a8..1a1a2390 100644 --- a/api/pkg/api/handler/networksecuritygroup.go +++ b/api/pkg/api/handler/networksecuritygroup.go @@ -43,7 +43,6 @@ import ( swe "github.com/nvidia/bare-metal-manager-rest/site-workflow/pkg/error" cwssaws "github.com/nvidia/bare-metal-manager-rest/workflow-schema/schema/site-agent/workflows/v1" "github.com/nvidia/bare-metal-manager-rest/workflow/pkg/queue" - "github.com/rs/zerolog/log" "go.opentelemetry.io/otel/attribute" temporalClient "go.temporal.io/sdk/client" tp "go.temporal.io/sdk/temporal" @@ -83,30 +82,11 @@ func NewCreateNetworkSecurityGroupHandler(dbSession *cdb.Session, tc temporalCli // @Success 201 {object} model.APINetworkSecurityGroup // @Router /v2/org/{org}/carbide/network-security-group [post] func (cnsgh CreateNetworkSecurityGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NetworkSecurityGroup").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cnsgh.tracerSpan.CreateChildInContext(ctx, "CreateNetworkSecurityGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NetworkSecurityGroup", "Create", c, cnsgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cnsgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cnsgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -433,30 +413,11 @@ func NewGetAllNetworkSecurityGroupHandler(dbSession *cdb.Session, tc temporalCli // @Success 200 {object} []model.APINetworkSecurityGroup // @Router /v2/org/{org}/carbide/network-security-group [get] func (gansgh GetAllNetworkSecurityGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NetworkSecurityGroup").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gansgh.tracerSpan.CreateChildInContext(ctx, "GetAllNetworkSecurityGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NetworkSecurityGroup", "GetAll", c, gansgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gansgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gansgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -723,30 +684,11 @@ func NewGetNetworkSecurityGroupHandler(dbSession *cdb.Session, tc temporalClient // @Success 200 {object} []model.APINetworkSecurityGroup // @Router /v2/org/{org}/carbide/network-security-group [get] func (gansgh GetNetworkSecurityGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NetworkSecurityGroup").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gansgh.tracerSpan.CreateChildInContext(ctx, "GetNetworkSecurityGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NetworkSecurityGroup", "Get", c, gansgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gansgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gansgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -902,30 +844,11 @@ func NewDeleteNetworkSecurityGroupHandler(dbSession *cdb.Session, tc temporalCli // @Success 202 {object} model.APINetworkSecurityGroup // @Router /v2/org/{org}/carbide/network-security-group [post] func (dnsgh DeleteNetworkSecurityGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NetworkSecurityGroup").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dnsgh.tracerSpan.CreateChildInContext(ctx, "DeleteNetworkSecurityGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NetworkSecurityGroup", "Delete", c, dnsgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dnsgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dnsgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1153,30 +1076,11 @@ func NewUpdateNetworkSecurityGroupHandler(dbSession *cdb.Session, tc temporalCli // @Success 200 {object} model.APINetworkSecurityGroup // @Router /v2/org/{org}/carbide/network-security-group [post] func (dnsgh UpdateNetworkSecurityGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NetworkSecurityGroup").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dnsgh.tracerSpan.CreateChildInContext(ctx, "UpdateNetworkSecurityGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NetworkSecurityGroup", "Update", c, dnsgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dnsgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dnsgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/nvlinkinterface.go b/api/pkg/api/handler/nvlinkinterface.go index 4f573190..3f09372b 100644 --- a/api/pkg/api/handler/nvlinkinterface.go +++ b/api/pkg/api/handler/nvlinkinterface.go @@ -26,7 +26,6 @@ import ( temporalClient "go.temporal.io/sdk/client" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -82,30 +81,11 @@ func NewGetAllNVLinkInterfaceHandler(dbSession *cdb.Session, tc temporalClient.C // @Success 200 {object} model.APINVLinkInterface // @Router /v2/org/{org}/carbide/nvlink-interface [get] func (gaish GetAllNVLinkInterfaceHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NVLinkInterface").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaish.tracerSpan.CreateChildInContext(ctx, "GetAllNVLinkInterfaceHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NVLinkInterface", "GetAll", c, gaish.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaish.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaish.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/nvlinklogicalpartition.go b/api/pkg/api/handler/nvlinklogicalpartition.go index 92b157fe..6b65f872 100644 --- a/api/pkg/api/handler/nvlinklogicalpartition.go +++ b/api/pkg/api/handler/nvlinklogicalpartition.go @@ -34,7 +34,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" "github.com/labstack/echo/v4" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -88,30 +87,11 @@ func NewCreateNVLinkLogicalPartitionHandler(dbSession *cdb.Session, tc temporalC // @Success 201 {object} model.APINVLinkLogicalPartition // @Router /v2/org/{org}/carbide/nvlink-logical-partition [post] func (cibph CreateNVLinkLogicalPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NVLinkLogicalPartition").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cibph.tracerSpan.CreateChildInContext(ctx, "CreateNVLinkLogicalPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NVLinkLogicalPartition", "Create", c, cibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -423,30 +403,11 @@ func NewGetAllNVLinkLogicalPartitionHandler(dbSession *cdb.Session, tc temporalC // @Success 200 {object} []model.APINVLinkLogicalPartition // @Router /v2/org/{org}/carbide/nvlink-logical-partition [get] func (gaibph GetAllNVLinkLogicalPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NVLinkLogicalPartition").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaibph.tracerSpan.CreateChildInContext(ctx, "GetAllNVLinkLogicalPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NVLinkLogicalPartition", "GetAll", c, gaibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -744,30 +705,11 @@ func NewGetNVLinkLogicalPartitionHandler(dbSession *cdb.Session, tc temporalClie // @Success 200 {object} model.APINVLinkLogicalPartition // @Router /v2/org/{org}/carbide/nvlink-logical-partition/{id} [get] func (gibph GetNVLinkLogicalPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NVLinkLogicalPartition").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gibph.tracerSpan.CreateChildInContext(ctx, "GetNVLinkLogicalPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NVLinkLogicalPartition", "Get", c, gibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -956,30 +898,11 @@ func NewUpdateNVLinkLogicalPartitionHandler(dbSession *cdb.Session, tc temporalC // @Success 200 {object} model.APINVLinkLogicalPartition // @Router /v2/org/{org}/carbide/nvlink-logical-partition/{id} [patch] func (uibph UpdateNVLinkLogicalPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NVLinkLogicalPartition").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uibph.tracerSpan.CreateChildInContext(ctx, "UpdateNVLinkLogicalPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NVLinkLogicalPartition", "Update", c, uibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1252,30 +1175,11 @@ func NewDeleteNVLinkLogicalPartitionHandler(dbSession *cdb.Session, tc temporalC // @Success 202 // @Router /v2/org/{org}/carbide/nvlink-logical-partition/{id} [delete] func (dibph DeleteNVLinkLogicalPartitionHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "NVLinkLogicalPartition").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dibph.tracerSpan.CreateChildInContext(ctx, "DeleteNVLinkLogicalPartitionHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("NVLinkLogicalPartition", "Delete", c, dibph.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dibph.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dibph.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/operatingsystem.go b/api/pkg/api/handler/operatingsystem.go index 6b697158..45f547d6 100644 --- a/api/pkg/api/handler/operatingsystem.go +++ b/api/pkg/api/handler/operatingsystem.go @@ -32,7 +32,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" "github.com/labstack/echo/v4" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -86,30 +85,11 @@ func NewCreateOperatingSystemHandler(dbSession *cdb.Session, tc temporalClient.C // @Success 201 {object} model.APIOperatingSystem // @Router /v2/org/{org}/carbide/operating-system [post] func (csh CreateOperatingSystemHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "OperatingSystem").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := csh.tracerSpan.CreateChildInContext(ctx, "CreateOperatingSystemHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("OperatingSystem", "Create", c, csh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - csh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, csh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -517,30 +497,11 @@ func NewGetAllOperatingSystemHandler(dbSession *cdb.Session, tc temporalClient.C // @Success 200 {object} []model.APIOperatingSystem // @Router /v2/org/{org}/carbide/operating-system [get] func (gash GetAllOperatingSystemHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "OperatingSystem").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gash.tracerSpan.CreateChildInContext(ctx, "GetAllOperatingSystemHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("OperatingSystem", "GetAll", c, gash.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gash.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gash.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -819,30 +780,11 @@ func NewGetOperatingSystemHandler(dbSession *cdb.Session, tc temporalClient.Clie // @Success 200 {object} model.APIOperatingSystem // @Router /v2/org/{org}/carbide/operating-system/{id} [get] func (gsh GetOperatingSystemHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "OperatingSystem").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gsh.tracerSpan.CreateChildInContext(ctx, "GetOperatingSystemHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("OperatingSystem", "Get", c, gsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1006,30 +948,11 @@ func NewUpdateOperatingSystemHandler(dbSession *cdb.Session, tc temporalClient.C // @Success 200 {object} model.APIOperatingSystem // @Router /v2/org/{org}/carbide/operating-system/{id} [patch] func (ush UpdateOperatingSystemHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "OperatingSystem").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ush.tracerSpan.CreateChildInContext(ctx, "UpdateOperatingSystemHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("OperatingSystem", "Update", c, ush.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ush.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ush.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1429,30 +1352,11 @@ func NewDeleteOperatingSystemHandler(dbSession *cdb.Session, tc temporalClient.C // @Success 202 // @Router /v2/org/{org}/carbide/operating-system/{id} [delete] func (dsh DeleteOperatingSystemHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "OperatingSystem").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dsh.tracerSpan.CreateChildInContext(ctx, "DeleteOperatingSystemHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("OperatingSystem", "Delete", c, dsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/serviceaccount.go b/api/pkg/api/handler/serviceaccount.go index 90c76163..36ad6739 100644 --- a/api/pkg/api/handler/serviceaccount.go +++ b/api/pkg/api/handler/serviceaccount.go @@ -29,8 +29,6 @@ import ( cdb "github.com/nvidia/bare-metal-manager-rest/db/pkg/db" cdbm "github.com/nvidia/bare-metal-manager-rest/db/pkg/db/model" cdbp "github.com/nvidia/bare-metal-manager-rest/db/pkg/db/paginator" - "github.com/rs/zerolog/log" - "go.opentelemetry.io/otel/attribute" ) // GetCurrentServiceAccountHandler is the API Handler for getting the current Service Account @@ -60,30 +58,11 @@ func NewGetCurrentServiceAccountHandler(dbSession *cdb.Session, cfg *config.Conf // @Success 200 {object} model.APIServiceAccount // @Router /v2/org/{org}/carbide/service-account/current [get] func (gcsah GetCurrentServiceAccountHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "ServiceAccount").Str("Handler", "GetCurrent").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gcsah.tracerSpan.CreateChildInContext(ctx, "GetCurrentServiceAccountHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("ServiceAccount", "GetCurrent", c, gcsah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gcsah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gcsah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/site.go b/api/pkg/api/handler/site.go index d729a840..e245a752 100644 --- a/api/pkg/api/handler/site.go +++ b/api/pkg/api/handler/site.go @@ -38,7 +38,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -97,28 +96,11 @@ func NewCreateSiteHandler(dbSession *cdb.Session, tc tClient.Client, tnc tClient // @Success 201 {object} model.APISite // @Router /v2/org/{org}/carbide/site [post] func (csh CreateSiteHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Site").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := csh.tracerSpan.CreateChildInContext(ctx, "CreateSiteHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Site", "Create", c, csh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx defer handlerSpan.End() - csh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, csh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -342,30 +324,11 @@ func NewUpdateSiteHandler(dbSession *cdb.Session, tc tClient.Client, cfg *config // @Success 200 {object} model.APISite // @Router /v2/org/{org}/carbide/site/{id} [patch] func (ush UpdateSiteHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Site").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ush.tracerSpan.CreateChildInContext(ctx, "UpdateSiteHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Site", "Update", c, ush.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ush.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ush.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -624,30 +587,11 @@ func NewGetSiteHandler(dbSession *cdb.Session, tc tClient.Client, cfg *config.Co // @Success 200 {object} model.APISite // @Router /v2/org/{org}/carbide/site/{id} [get] func (gsh GetSiteHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Site").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gsh.tracerSpan.CreateChildInContext(ctx, "GetSiteHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Site", "Get", c, gsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -776,30 +720,11 @@ func NewGetAllSiteHandler(dbSession *cdb.Session, tc tClient.Client, cfg *config // @Success 200 {array} []model.APISite // @Router /v2/org/{org}/carbide/site [get] func (gash GetAllSiteHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Site").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gash.tracerSpan.CreateChildInContext(ctx, "GetAllSiteHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Site", "GetAll", c, gash.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gash.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gash.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1092,30 +1017,11 @@ func NewDeleteSiteHandler(dbSession *cdb.Session, tc tClient.Client, cfg *config // @Success 204 // @Router /v2/org/{org}/carbide/site/{id} [delete] func (dsh DeleteSiteHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Site").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dsh.tracerSpan.CreateChildInContext(ctx, "DeleteSiteHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Site", "Delete", c, dsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1283,28 +1189,11 @@ func NewGetSiteStatusDetailsHandler(dbSession *cdb.Session) GetSiteStatusDetails // @Success 200 {object} []model.APIStatusDetail // @Router /v2/org/{org}/carbide/Site/{id}/status-history [get] func (gssdh GetSiteStatusDetailsHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Site").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gssdh.tracerSpan.CreateChildInContext(ctx, "GetSiteStatusDetailsHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Site", "Get", c, gssdh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx defer handlerSpan.End() - gssdh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gssdh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/sshkey.go b/api/pkg/api/handler/sshkey.go index afe7b5c9..dbd527e6 100644 --- a/api/pkg/api/handler/sshkey.go +++ b/api/pkg/api/handler/sshkey.go @@ -30,7 +30,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -81,30 +80,11 @@ func NewCreateSSHKeyHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 201 {object} model.APISSHKey // @Router /v2/org/{org}/carbide/sshkey [post] func (cskh CreateSSHKeyHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKey").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cskh.tracerSpan.CreateChildInContext(ctx, "CreateSSHKeyHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKey", "Create", c, cskh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cskh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cskh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -393,30 +373,11 @@ func NewUpdateSSHKeyHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 200 {object} model.APISSHKey // @Router /v2/org/{org}/carbide/sshkey/{id} [patch] func (uskh UpdateSSHKeyHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKey").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uskh.tracerSpan.CreateChildInContext(ctx, "UpdateSSHKeyHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKey", "Update", c, uskh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uskh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uskh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -597,30 +558,11 @@ func NewGetSSHKeyHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg * // @Success 200 {object} model.APISSHKey // @Router /v2/org/{org}/carbide/sshkey/{id} [get] func (gskh GetSSHKeyHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKey").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gskh.tracerSpan.CreateChildInContext(ctx, "GetSSHKeyHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKey", "Get", c, gskh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gskh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gskh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -742,30 +684,11 @@ func NewGetAllSSHKeyHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 200 {array} []model.APISSHKey // @Router /v2/org/{org}/carbide/sshkey [get] func (gaskh GetAllSSHKeyHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKey").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaskh.tracerSpan.CreateChildInContext(ctx, "GetAllSSHKeyHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKey", "GetAll", c, gaskh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaskh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaskh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -934,30 +857,11 @@ func NewDeleteSSHKeyHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 202 // @Router /v2/org/{org}/carbide/sshkey/{id} [delete] func (dskh DeleteSSHKeyHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKey").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dskh.tracerSpan.CreateChildInContext(ctx, "DeleteSSHKeyHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKey", "Delete", c, dskh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dskh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dskh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/sshkeygroup.go b/api/pkg/api/handler/sshkeygroup.go index 497d6345..c07dd220 100644 --- a/api/pkg/api/handler/sshkeygroup.go +++ b/api/pkg/api/handler/sshkeygroup.go @@ -29,7 +29,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -79,30 +78,11 @@ func NewCreateSSHKeyGroupHandler(dbSession *cdb.Session, tc temporalClient.Clien // @Success 201 {object} model.APISSHKeyGroup // @Router /v2/org/{org}/carbide/sshkeygroup [post] func (cskgh CreateSSHKeyGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKeyGroup").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cskgh.tracerSpan.CreateChildInContext(ctx, "CreateSSHKeyGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKeyGroup", "Create", c, cskgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cskgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cskgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -439,30 +419,11 @@ func NewUpdateSSHKeyGroupHandler(dbSession *cdb.Session, tc temporalClient.Clien // @Success 200 {object} model.SSHKeyGroup // @Router /v2/org/{org}/carbide/sshkeygroup/{id} [patch] func (uskgh UpdateSSHKeyGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKeyGroup").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uskgh.tracerSpan.CreateChildInContext(ctx, "UpdateSSHKeyGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKeyGroup", "Update", c, uskgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - uskgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uskgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -973,30 +934,11 @@ func NewGetSSHKeyGroupHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 200 {object} model.APISSHKeyGroup // @Router /v2/org/{org}/carbide/sshkeygroup/{id} [get] func (gskgh GetSSHKeyGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKeyGroup").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gskgh.tracerSpan.CreateChildInContext(ctx, "GetSSHKeyGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKeyGroup", "Get", c, gskgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gskgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gskgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1181,30 +1123,11 @@ func NewGetAllSSHKeyGroupHandler(dbSession *cdb.Session, tc temporalClient.Clien // @Success 200 {array} []model.APISSHKeyGroup // @Router /v2/org/{org}/carbide/sshkeygroup [get] func (gaskgh GetAllSSHKeyGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKeyGroup").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gaskgh.tracerSpan.CreateChildInContext(ctx, "GetAllSSHKeyGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKeyGroup", "GetAll", c, gaskgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gaskgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gaskgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1561,30 +1484,11 @@ func NewDeleteSSHKeyGroupHandler(dbSession *cdb.Session, tc temporalClient.Clien // @Success 202 // @Router /v2/org/{org}/carbide/sshkeygroup/{id} [delete] func (dskgh DeleteSSHKeyGroupHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "SSHKeyGroup").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dskgh.tracerSpan.CreateChildInContext(ctx, "DeleteSSHKeyGroupHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("SSHKeyGroup", "Delete", c, dskgh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dskgh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dskgh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/subnet.go b/api/pkg/api/handler/subnet.go index ff3e8e70..fc8ebbb0 100644 --- a/api/pkg/api/handler/subnet.go +++ b/api/pkg/api/handler/subnet.go @@ -33,7 +33,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -88,30 +87,11 @@ func NewCreateSubnetHandler(dbSession *cdb.Session, tc temporalClient.Client, sc // @Success 201 {object} model.APISubnet // @Router /v2/org/{org}/carbide/subnet [post] func (csh CreateSubnetHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Subnet").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := csh.tracerSpan.CreateChildInContext(ctx, "CreateSubnetHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Subnet", "Create", c, csh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - csh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, csh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -462,30 +442,11 @@ func NewGetAllSubnetHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 200 {object} []model.APISubnet // @Router /v2/org/{org}/carbide/subnet [get] func (gash GetAllSubnetHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Subnet").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gash.tracerSpan.CreateChildInContext(ctx, "GetAllSubnetHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Subnet", "GetAll", c, gash.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gash.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gash.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -693,30 +654,11 @@ func NewGetSubnetHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg * // @Success 200 {object} model.APISubnet // @Router /v2/org/{org}/carbide/subnet/{id} [get] func (gsh GetSubnetHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Subnet").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gsh.tracerSpan.CreateChildInContext(ctx, "GetSubnetHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Subnet", "Get", c, gsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -829,30 +771,11 @@ func NewUpdateSubnetHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 200 {object} model.APISubnet // @Router /v2/org/{org}/carbide/subnet/{id} [patch] func (ush UpdateSubnetHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Subnet").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ush.tracerSpan.CreateChildInContext(ctx, "UpdateSubnetHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Subnet", "Update", c, ush.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ush.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ush.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1008,30 +931,11 @@ func NewDeleteSubnetHandler(dbSession *cdb.Session, tc temporalClient.Client, sc // @Success 202 // @Router /v2/org/{org}/carbide/subnet/{id} [delete] func (dsh DeleteSubnetHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Subnet").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dsh.tracerSpan.CreateChildInContext(ctx, "DeleteSubnetHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Subnet", "Delete", c, dsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/tenant.go b/api/pkg/api/handler/tenant.go index 605827c2..8d9502fa 100644 --- a/api/pkg/api/handler/tenant.go +++ b/api/pkg/api/handler/tenant.go @@ -23,11 +23,9 @@ import ( "fmt" "net/http" - "go.opentelemetry.io/otel/attribute" temporalClient "go.temporal.io/sdk/client" "github.com/rs/zerolog" - "github.com/rs/zerolog/log" "github.com/labstack/echo/v4" @@ -74,30 +72,11 @@ func NewCreateTenantHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 201 {object} model.APITenant // @Router /v2/org/{org}/carbide/tenant [post] func (cth CreateTenantHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Tenant").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cth.tracerSpan.CreateChildInContext(ctx, "CreateTenantHandler", logger) + org, dbUser, _, logger, handlerSpan := common.SetupHandler("Tenant", "Create", c, cth.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cth.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cth.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -153,30 +132,11 @@ func NewGetCurrentTenantHandler(dbSession *cdb.Session, tc temporalClient.Client // @Success 200 {object} model.APITenant // @Router /v2/org/{org}/carbide/tenant/current [get] func (gcth GetCurrentTenantHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Tenant").Str("Handler", "GetCurrent").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gcth.tracerSpan.CreateChildInContext(ctx, "GetCurrentTenantHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Tenant", "GetCurrent", c, gcth.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gcth.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gcth.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -294,30 +254,11 @@ func NewGetCurrentTenantStatsHandler(dbSession *cdb.Session, tc temporalClient.C // @Success 200 {object} model.APITenantStats // @Router /v2/org/{org}/carbide/tenant/current/stats [get] func (gcth GetCurrentTenantStatsHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Tenant").Str("Handler", "GetCurrentStats").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gcth.tracerSpan.CreateChildInContext(ctx, "GetCurrentTenantStatsHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("Tenant", "GetCurrentStats", c, gcth.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gcth.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gcth.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -423,30 +364,11 @@ func NewUpdateCurrentTenantHandler(dbSession *cdb.Session, tc temporalClient.Cli // @Success 200 {object} model.APITenant // @Router /v2/org/{org}/carbide/tenant/current [patch] func (ucth UpdateCurrentTenantHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "Tenant").Str("Handler", "UpdateCurrent").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ucth.tracerSpan.CreateChildInContext(ctx, "UpdateCurrentTenantHandler", logger) + org, dbUser, _, logger, handlerSpan := common.SetupHandler("Tenant", "UpdateCurrent", c, ucth.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ucth.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ucth.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/tenantaccount.go b/api/pkg/api/handler/tenantaccount.go index 62bf1128..ce60b2a3 100644 --- a/api/pkg/api/handler/tenantaccount.go +++ b/api/pkg/api/handler/tenantaccount.go @@ -31,7 +31,6 @@ import ( temporalClient "go.temporal.io/sdk/client" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" common "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -74,30 +73,11 @@ func NewCreateTenantAccountHandler(dbSession *cdb.Session, tc temporalClient.Cli // @Success 201 {object} model.APITenantAccount // @Router /v2/org/{org}/carbide/tenant/account [post] func (ctah CreateTenantAccountHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "TenantAccount").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ctah.tracerSpan.CreateChildInContext(ctx, "CreateTenantAccountHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("TenantAccount", "Create", c, ctah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ctah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ctah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -295,30 +275,11 @@ func NewGetAllTenantAccountHandler(dbSession *cdb.Session, tc temporalClient.Cli // @Success 200 {object} []model.APITenantAccount // @Router /v2/org/{org}/carbide/tenant/account [get] func (gatah GetAllTenantAccountHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "TenantAccount").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gatah.tracerSpan.CreateChildInContext(ctx, "GetAllTenantAccountHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("TenantAccount", "GetAll", c, gatah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gatah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gatah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -582,30 +543,11 @@ func NewGetTenantAccountHandler(dbSession *cdb.Session, tc temporalClient.Client // @Success 200 {object} model.APITenantAccount // @Router /v2/org/{org}/carbide/tenant/account/{id} [get] func (gtah GetTenantAccountHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "TenantAccount").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gtah.tracerSpan.CreateChildInContext(ctx, "GetTenantAccountHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("TenantAccount", "Get", c, gtah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gtah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gtah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -801,30 +743,11 @@ func NewUpdateTenantAccountHandler(dbSession *cdb.Session, tc temporalClient.Cli // @Success 200 {object} model.APITenantAccount // @Router /v2/org/{org}/carbide/tenant/account/{id} [patch] func (utah UpdateTenantAccountHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "TenantAccount").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := utah.tracerSpan.CreateChildInContext(ctx, "UpdateTenantAccountHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("TenantAccount", "Update", c, utah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - utah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, utah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -986,30 +909,11 @@ func NewDeleteTenantAccountHandler(dbSession *cdb.Session, tc temporalClient.Cli // @Success 202 // @Router /v2/org/{org}/carbide/tenant/account/{id} [delete] func (dtah DeleteTenantAccountHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "TenantAccount").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dtah.tracerSpan.CreateChildInContext(ctx, "DeleteTenantAccountHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("TenantAccount", "Delete", c, dtah.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dtah.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dtah.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/user.go b/api/pkg/api/handler/user.go index 9f2a00f9..548ae5b6 100644 --- a/api/pkg/api/handler/user.go +++ b/api/pkg/api/handler/user.go @@ -21,9 +21,6 @@ import ( "fmt" "net/http" - "github.com/rs/zerolog/log" - "go.opentelemetry.io/otel/attribute" - "github.com/labstack/echo/v4" cdb "github.com/nvidia/bare-metal-manager-rest/db/pkg/db" @@ -59,30 +56,11 @@ func NewGetUserHandler(dbSession *cdb.Session) GetUserHandler { // @Success 200 {object} model.APIUser // @Router /v2/org/{org}/carbide/user/current [get] func (guh GetUserHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "User").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := guh.tracerSpan.CreateChildInContext(ctx, "GetUserHandler", logger) + org, dbUser, _, logger, handlerSpan := common.SetupHandler("User", "Get", c, guh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - guh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, guh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/vpc.go b/api/pkg/api/handler/vpc.go index 3fa0a70c..445eca83 100644 --- a/api/pkg/api/handler/vpc.go +++ b/api/pkg/api/handler/vpc.go @@ -39,7 +39,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" common "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -87,30 +86,11 @@ func NewCreateVPCHandler(dbSession *cdb.Session, tc temporalClient.Client, sc *s // @Success 201 {object} model.APIVpc // @Router /v2/org/{org}/carbide/vpc [post] func (cvh CreateVPCHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := cvh.tracerSpan.CreateChildInContext(ctx, "CreateVPCHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC", "Create", c, cvh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - cvh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, cvh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -538,29 +518,11 @@ func NewUpdateVPCHandler(dbSession *cdb.Session, tc temporalClient.Client, sc *s // @Success 200 {object} model.APIVpc // @Router /v2/org/{org}/carbide/vpc/{id} [patch] func (uvh UpdateVPCHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uvh.tracerSpan.CreateChildInContext(ctx, "UpdateVPCHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC", "Update", c, uvh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - uvh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uvh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -981,29 +943,11 @@ func NewUpdateVPCVirtualizationHandler(dbSession *cdb.Session, tc temporalClient // @Success 200 {object} model.APIVpc // @Router /v2/org/{org}/carbide/vpc/{id}/virtualization [patch] func (uvvh UpdateVPCVirtualizationHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC").Str("Handler", "Update Virtualization").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := uvvh.tracerSpan.CreateChildInContext(ctx, "UpdateVPCHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC", "Update Virtualization", c, uvvh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - uvvh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, uvvh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1219,30 +1163,11 @@ func NewGetVPCHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg *con // @Success 200 {object} model.APIVpc // @Router /v2/org/{org}/carbide/vpc/{id} [get] func (gvh GetVPCHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gvh.tracerSpan.CreateChildInContext(ctx, "GetVPCHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC", "Get", c, gvh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gvh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gvh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1364,30 +1289,11 @@ func NewGetAllVPCHandler(dbSession *cdb.Session, tc temporalClient.Client, cfg * // @Success 200 {array} []model.APIVpc // @Router /v2/org/{org}/carbide/vpc [get] func (gavh GetAllVPCHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gavh.tracerSpan.CreateChildInContext(ctx, "GetAllVPCHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC", "GetAll", c, gavh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gavh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gavh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1626,30 +1532,11 @@ func NewDeleteVPCHandler(dbSession *cdb.Session, tc temporalClient.Client, scp * // @Success 202 // @Router /v2/org/{org}/carbide/vpc/{id} [delete] func (dvh DeleteVPCHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dvh.tracerSpan.CreateChildInContext(ctx, "DeleteVPCHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC", "Delete", c, dvh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dvh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dvh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } diff --git a/api/pkg/api/handler/vpcprefix.go b/api/pkg/api/handler/vpcprefix.go index 7f3895f0..aee6a621 100644 --- a/api/pkg/api/handler/vpcprefix.go +++ b/api/pkg/api/handler/vpcprefix.go @@ -33,7 +33,6 @@ import ( validation "github.com/go-ozzo/ozzo-validation/v4" "github.com/google/uuid" - "github.com/rs/zerolog/log" "github.com/nvidia/bare-metal-manager-rest/api/internal/config" "github.com/nvidia/bare-metal-manager-rest/api/pkg/api/handler/util/common" @@ -86,30 +85,11 @@ func NewCreateVpcPrefixHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 201 {object} model.APIVpcPrefix // @Router /v2/org/{org}/carbide/vpcprefix [post] func (csh CreateVpcPrefixHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC prefix").Str("Handler", "Create").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := csh.tracerSpan.CreateChildInContext(ctx, "CreateVpcPrefixHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC prefix", "Create", c, csh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - csh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, csh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -399,30 +379,11 @@ func NewGetAllVpcPrefixHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 200 {object} []model.APIVpcPrefix // @Router /v2/org/{org}/carbide/vpcprefix [get] func (gash GetAllVpcPrefixHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC prefix").Str("Handler", "GetAll").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gash.tracerSpan.CreateChildInContext(ctx, "GetAllVpcPrefixHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC prefix", "GetAll", c, gash.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gash.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gash.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -621,31 +582,11 @@ func NewGetVpcPrefixHandler(dbSession *cdb.Session, tc temporalClient.Client, cf // @Success 200 {object} model.APIVpcPrefix // @Router /v2/org/{org}/carbide/vpcprefix/{id} [get] func (gsh GetVpcPrefixHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC prefix").Str("Handler", "Get").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := gsh.tracerSpan.CreateChildInContext(ctx, "GetVpcPrefixHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC prefix", "Get", c, gsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - gsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - // Get user - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, gsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -760,31 +701,11 @@ func NewUpdateVpcPrefixHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 200 {object} model.APIVpcPrefix // @Router /v2/org/{org}/carbide/vpcprefix/{id} [patch] func (ush UpdateVpcPrefixHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC prefix").Str("Handler", "Update").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := ush.tracerSpan.CreateChildInContext(ctx, "UpdateVpcPrefixHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC prefix", "Update", c, ush.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - ush.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - // Get user - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, ush.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } @@ -1007,31 +928,11 @@ func NewDeleteVpcPrefixHandler(dbSession *cdb.Session, tc temporalClient.Client, // @Success 202 // @Router /v2/org/{org}/carbide/vpcprefix/{id} [delete] func (dsh DeleteVpcPrefixHandler) Handle(c echo.Context) error { - // Get context - ctx := c.Request().Context() - - // Get org - org := c.Param("orgName") - - // Initialize logger - logger := log.With().Str("Model", "VPC prefix").Str("Handler", "Delete").Str("Org", org).Logger() - - logger.Info().Msg("started API handler") - - // Create a child span and set the attributes for current request - newctx, handlerSpan := dsh.tracerSpan.CreateChildInContext(ctx, "DeleteVpcPrefixHandler", logger) + org, dbUser, ctx, logger, handlerSpan := common.SetupHandler("VPC prefix", "Delete", c, dsh.tracerSpan) if handlerSpan != nil { - // Set newly created span context as a current context - ctx = newctx - defer handlerSpan.End() - - dsh.tracerSpan.SetAttribute(handlerSpan, attribute.String("org", org), logger) } - - // Get user - dbUser, logger, err := common.GetUserAndEnrichLogger(c, logger, dsh.tracerSpan, handlerSpan) - if err != nil { + if dbUser == nil { return cutil.NewAPIErrorResponse(c, http.StatusInternalServerError, "Failed to retrieve current user", nil) } From 9abd66a7e76aa42146cdfbd82337c9eb00aea3dd Mon Sep 17 00:00:00 2001 From: Tareque Hossain Date: Wed, 11 Mar 2026 14:32:51 -0700 Subject: [PATCH 2/2] Correct handler name in SetupHandler for GetAuditEntry --- api/pkg/api/handler/audit_entry.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/pkg/api/handler/audit_entry.go b/api/pkg/api/handler/audit_entry.go index a1e60e39..39d400de 100644 --- a/api/pkg/api/handler/audit_entry.go +++ b/api/pkg/api/handler/audit_entry.go @@ -198,7 +198,7 @@ func NewGetAuditEntryHandler(dbSession *cdb.Session) GetAuditEntryHandler { // @Success 200 {object} model.APIAuditEntry // @Router /v2/org/{org}/carbide/audit/{id} [get] func (gaeh GetAuditEntryHandler) Handle(c echo.Context) error { - orgName, dbUser, ctx, logger, handlerSpan := common.SetupHandler("AuditEntry", "GetAll", c, gaeh.tracerSpan) + orgName, dbUser, ctx, logger, handlerSpan := common.SetupHandler("AuditEntry", "Get", c, gaeh.tracerSpan) if handlerSpan != nil { defer handlerSpan.End() }