Skip to content
Merged
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
1143115
feat: scoped vars squashed
subhashish-devtron Sep 3, 2023
0181053
synced changes from feature branch d9bd011d79ce5775298c15a9249142e5ba…
subhashish-devtron Sep 5, 2023
3d79190
enterprise sync
subhashish-devtron Sep 6, 2023
f5265cd
Merge branch 'main' into feat-scoped-vars
subhashish-devtron Sep 6, 2023
83d30e1
added missing vendor files from main
subhashish-devtron Sep 6, 2023
dc76f9d
validation-error file added for showing error code 406 for validation
adi6859 Sep 6, 2023
ff4ee0c
variable template parser
kripanshdevtron Sep 6, 2023
5262c47
oss sync miss
adi6859 Sep 6, 2023
c779987
refactored parseTemplate changes incorporated
kripanshdevtron Sep 6, 2023
4b0ac00
commented out duplicate test case
kripanshdevtron Sep 8, 2023
84d6c81
Merge branch 'main' into feat-scoped-vars
subhashish-devtron Sep 11, 2023
a99faaa
short description and isSensitive is added
adi6859 Sep 11, 2023
f3c3a8b
pointer handling
adi6859 Sep 11, 2023
a0a47dd
check added for superadmin to show data
adi6859 Sep 11, 2023
d7ae73b
removed pipelinestagerepo dependency from dagExecutor
subhashish-devtron Sep 11, 2023
877fad4
*** added in case of private variable
adi6859 Sep 11, 2023
b8e3fb3
cleaned dead comments
subhashish-devtron Sep 11, 2023
efbffbc
isRedacted is added for FE handling
adi6859 Sep 11, 2023
cb29c2a
some code review changes done
adi6859 Sep 12, 2023
33f5b58
varType to Variable type
adi6859 Sep 12, 2023
cd0819f
error handling move
subhashish-devtron Sep 12, 2023
af5ce39
dependencies
subhashish-devtron Sep 12, 2023
5c2719b
Merge branch 'cicd-vars' into feat-cicd-vars
subhashish-devtron Sep 12, 2023
7b23e55
name of documentation and description has been changed
adi6859 Sep 12, 2023
92a074b
fixing last deployed deployment bug introduced after template parser …
subhashish-devtron Sep 12, 2023
1a5be3d
CRUD and trigger flows
subhashish-devtron Sep 13, 2023
4109225
recovering changes
subhashish-devtron Sep 13, 2023
1b0a319
handling for no variables
subhashish-devtron Sep 13, 2023
468519d
saving snapshot for audit
subhashish-devtron Sep 13, 2023
02abca5
wire gen
subhashish-devtron Sep 13, 2023
aff4c9d
snapshot history for cd
subhashish-devtron Sep 13, 2023
8a05c2b
Merge branch 'main' into feat-scoped-vars
subhashish-devtron Sep 13, 2023
2682ba5
QA bug fix
subhashish-devtron Sep 13, 2023
5c12a1a
Merge branch 'feat-scoped-vars' into feat-cicd-vars
subhashish-devtron Sep 13, 2023
2047679
exposed clusterId for env autocomplete API
subhashish-devtron Sep 13, 2023
569e5a5
missing field added
subhashish-devtron Sep 13, 2023
87f72f0
minor code cleaning
subhashish-devtron Sep 14, 2023
6f28adf
typo fix
subhashish-devtron Sep 14, 2023
01168dc
cleaning dead comments
subhashish-devtron Sep 14, 2023
f82a8ea
Merge branch 'main' into feat-scoped-vars
subhashish-devtron Sep 14, 2023
ad9050d
Merge branch 'feat-scoped-vars' into feat-cicd-vars-final
subhashish-devtron Sep 14, 2023
ab8e6bb
Merge branch 'main' into feat-cicd-vars-final
subhashish-devtron Sep 15, 2023
d9072d3
wire
subhashish-devtron Sep 15, 2023
89a53ba
sql scripts removed old files
subhashish-devtron Sep 15, 2023
c34d561
added error logging and optimised flows
subhashish-devtron Sep 15, 2023
710faae
added tests
subhashish-devtron Sep 19, 2023
406a155
Merge branch 'main' into feat-cicd-vars-final
subhashish-devtron Sep 19, 2023
2eaeec3
Merge branch 'main' into feat-cicd-vars-final
subhashish-devtron Sep 27, 2023
87acc89
merge miss
subhashish-devtron Sep 27, 2023
234e813
cleaning up
subhashish-devtron Sep 27, 2023
f5b57d8
resolved comments
subhashish-devtron Sep 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions api/bean/ValuesOverrideRequest.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package bean
import (
"encoding/json"
"github.com/devtron-labs/devtron/internal/sql/models"
"github.com/devtron-labs/devtron/pkg/pipeline/repository"
"time"
)

Expand All @@ -39,6 +40,17 @@ const (
DEPLOYMENT_CONFIG_TYPE_SPECIFIC_TRIGGER DeploymentConfigurationType = "SPECIFIC_TRIGGER_CONFIG"
)

func (workflowType WorkflowType) WorkflowTypeToStageType() repository.PipelineStageType {
switch workflowType {
case CD_WORKFLOW_TYPE_PRE:
return repository.PIPELINE_STAGE_TYPE_PRE_CD
case CD_WORKFLOW_TYPE_POST:
return repository.PIPELINE_STAGE_TYPE_POST_CD
default:
return ""
}
}

type ValuesOverrideRequest struct {
PipelineId int `json:"pipelineId" validate:"required"`
AppId int `json:"appId" validate:"required"`
Expand Down
2 changes: 1 addition & 1 deletion pkg/bulkAction/BulkUpdateService.go
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@ func (impl BulkUpdateServiceImpl) extractAndMapVariables(template string, entity
err = impl.variableEntityMappingService.UpdateVariablesForEntity(usedVariables, repository5.Entity{
EntityType: entityType,
EntityId: entityId,
}, userId)
}, userId, nil)
if err != nil {
return err
}
Expand Down
5 changes: 1 addition & 4 deletions pkg/chart/ChartService.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,6 @@ func NewChartServiceImpl(chartRepository chartRepoRepository.ChartRepository,
envLevelAppMetricsRepository: envLevelAppMetricsRepository,
client: client,
deploymentTemplateHistoryService: deploymentTemplateHistoryService,
variableEntityMappingService: variableEntityMappingService,
variableTemplateParser: variableTemplateParser,
scopedVariableService: scopedVariableService,
}
}

Expand Down Expand Up @@ -483,7 +480,7 @@ func (impl ChartServiceImpl) extractAndMapVariables(template string, entityId in
err = impl.variableEntityMappingService.UpdateVariablesForEntity(usedVariables, repository5.Entity{
EntityType: entityType,
EntityId: entityId,
}, userId)
}, userId, nil)
if err != nil {
return err
}
Expand Down
35 changes: 29 additions & 6 deletions pkg/chartRepo/repository/mocks/ChartRepoRepository.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions pkg/cluster/EnvironmentService.go
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ func (impl EnvironmentServiceImpl) GetEnvironmentListForAutocomplete(isDeploymen
Description: model.Description,
IsVirtualEnvironment: model.IsVirtualEnvironment,
AllowedDeploymentTypes: allowedDeploymentConfigString,
ClusterId: model.ClusterId,
})
}
} else {
Expand All @@ -432,6 +433,7 @@ func (impl EnvironmentServiceImpl) GetEnvironmentListForAutocomplete(isDeploymen
ClusterName: model.Cluster.ClusterName,
Description: model.Description,
IsVirtualEnvironment: model.IsVirtualEnvironment,
ClusterId: model.ClusterId,
})
}
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/pipeline/CiCdPipelineOrchestrator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ func InitClusterNoteService() {
userAuthService := user.NewUserAuthServiceImpl(nil, nil, nil, nil, nil, nil, nil)
prePostCdScriptHistoryService := history.NewPrePostCdScriptHistoryServiceImpl(logger, nil, nil, nil)
prePostCiScriptHistoryService := history.NewPrePostCiScriptHistoryServiceImpl(logger, nil)
pipelineStageService := NewPipelineStageService(logger, nil, nil, nil)
pipelineStageService := NewPipelineStageService(logger, nil, nil, nil, nil, nil, nil)
ciTemplateOverrideRepository := pipelineConfig.NewCiTemplateOverrideRepositoryImpl(conn, logger)
ciTemplateService := *NewCiTemplateServiceImpl(logger, nil, nil, nil)
gitMaterialHistoryService := history.NewGitMaterialHistoryServiceImpl(nil, logger)
Expand Down
50 changes: 38 additions & 12 deletions pkg/pipeline/CiService.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ import (
"github.com/devtron-labs/devtron/pkg/pipeline/repository"
repository2 "github.com/devtron-labs/devtron/pkg/plugin/repository"
"github.com/devtron-labs/devtron/pkg/user"
"github.com/devtron-labs/devtron/pkg/variables"
"github.com/devtron-labs/devtron/pkg/variables/models"
repository4 "github.com/devtron-labs/devtron/pkg/variables/repository"
"github.com/go-pg/pg"
"path/filepath"
"strconv"
Expand Down Expand Up @@ -70,6 +73,7 @@ type CiServiceImpl struct {
appCrudOperationService app.AppCrudOperationService
envRepository repository1.EnvironmentRepository
appRepository appRepository.AppRepository
variableSnapshotHistoryService variables.VariableSnapshotHistoryService
}

func NewCiServiceImpl(Logger *zap.SugaredLogger, workflowService WorkflowService,
Expand All @@ -79,7 +83,9 @@ func NewCiServiceImpl(Logger *zap.SugaredLogger, workflowService WorkflowService
prePostCiScriptHistoryService history.PrePostCiScriptHistoryService,
pipelineStageService PipelineStageService,
userService user.UserService,
ciTemplateService CiTemplateService, appCrudOperationService app.AppCrudOperationService, envRepository repository1.EnvironmentRepository, appRepository appRepository.AppRepository) *CiServiceImpl {
ciTemplateService CiTemplateService, appCrudOperationService app.AppCrudOperationService, envRepository repository1.EnvironmentRepository, appRepository appRepository.AppRepository,
variableSnapshotHistoryService variables.VariableSnapshotHistoryService,
) *CiServiceImpl {
return &CiServiceImpl{
Logger: Logger,
workflowService: workflowService,
Expand All @@ -97,6 +103,7 @@ func NewCiServiceImpl(Logger *zap.SugaredLogger, workflowService WorkflowService
appCrudOperationService: appCrudOperationService,
envRepository: envRepository,
appRepository: appRepository,
variableSnapshotHistoryService: variableSnapshotHistoryService,
}
}

Expand Down Expand Up @@ -137,23 +144,35 @@ func (impl *CiServiceImpl) TriggerCiPipeline(trigger Trigger) (int, error) {
impl.Logger.Errorw("could not fetch ci config", "pipeline", trigger.PipelineId)
return 0, err
}

scope := models.Scope{
AppId: pipeline.App.Id,
}
env, isJob, err := impl.getEnvironmentForJob(pipeline, trigger)
if err != nil {
return 0, err
}
if isJob && env != nil {
ciWorkflowConfig.Namespace = env.Namespace

//This will be populated for jobs running in selected environment
scope.EnvId = env.Id
scope.ClusterId = env.ClusterId
}
if ciWorkflowConfig.Namespace == "" {
ciWorkflowConfig.Namespace = impl.ciConfig.DefaultNamespace
}

preCiSteps, postCiSteps, refPluginsData, err := impl.pipelineStageService.BuildPrePostAndRefPluginStepsDataForWfRequest(pipeline.Id, ciEvent)

//preCiSteps, postCiSteps, refPluginsData, err := impl.pipelineStageService.BuildPrePostAndRefPluginStepsDataForWfRequest(pipeline.Id, ciEvent)
prePostAndRefPluginResponse, err := impl.pipelineStageService.BuildPrePostAndRefPluginStepsDataForWfRequest(pipeline.Id, ciEvent, scope)
if err != nil {
impl.Logger.Errorw("error in getting pre steps data for wf request", "err", err, "ciPipelineId", pipeline.Id)
return 0, err
}
preCiSteps := prePostAndRefPluginResponse.PreStageSteps
postCiSteps := prePostAndRefPluginResponse.PostStageSteps
refPluginsData := prePostAndRefPluginResponse.RefPluginData
variableSnapshot := prePostAndRefPluginResponse.VariableSnapshot

if len(preCiSteps) == 0 && isJob {
return 0, &util.ApiError{
Expand Down Expand Up @@ -196,6 +215,21 @@ func (impl *CiServiceImpl) TriggerCiPipeline(trigger Trigger) (int, error) {
}
impl.Logger.Debugw("ci triggered", "wf name ", createdWf.Name, " pipeline ", trigger.PipelineId)

//Save Scoped VariableSnapshot
if len(variableSnapshot) > 0 {
variableMapBytes, _ := json.Marshal(variableSnapshot)
err := impl.variableSnapshotHistoryService.SaveVariableHistoriesForTrigger([]*repository4.VariableSnapshotHistoryBean{{
VariableSnapshot: variableMapBytes,
HistoryReference: repository4.HistoryReference{
HistoryReferenceId: savedCiWf.Id,
HistoryReferenceType: repository4.HistoryReferenceTypeCIWORKFLOW,
},
}}, trigger.TriggeredBy)
if err != nil {
impl.Logger.Errorf("Not able to save variable snapshot for CI trigger %s", err)
}
}

middleware.CiTriggerCounter.WithLabelValues(pipeline.App.AppName, pipeline.Name).Inc()
go impl.WriteCITriggerEvent(trigger, pipeline, workflowRequest)
return savedCiWf.Id, err
Expand Down Expand Up @@ -434,22 +468,14 @@ func (impl *CiServiceImpl) buildWfRequestForCiPipeline(pipeline *pipelineConfig.
}
}

var err error
if !(len(beforeDockerBuildScripts) == 0 && len(afterDockerBuildScripts) == 0) {
//found beforeDockerBuildScripts/afterDockerBuildScripts
//building preCiSteps & postCiSteps from them, refPluginsData not needed
preCiSteps = buildCiStepsDataFromDockerBuildScripts(beforeDockerBuildScripts)
postCiSteps = buildCiStepsDataFromDockerBuildScripts(afterDockerBuildScripts)
refPluginsData = []*bean2.RefPluginObject{}
} else {
//beforeDockerBuildScripts & afterDockerBuildScripts not found
//getting preCiStepsData, postCiStepsData & refPluginsData
preCiSteps, postCiSteps, refPluginsData, err = impl.pipelineStageService.BuildPrePostAndRefPluginStepsDataForWfRequest(pipeline.Id, ciEvent)
if err != nil {
impl.Logger.Errorw("error in getting pre, post & refPlugin steps data for wf request", "err", err, "ciPipelineId", pipeline.Id)
return nil, err
}
}

dockerImageTag := impl.buildImageTag(commitHashes, pipeline.Id, savedWf.Id)
if ciWorkflowConfig.CiCacheBucket == "" {
ciWorkflowConfig.CiCacheBucket = impl.ciConfig.DefaultCacheBucket
Expand Down
11 changes: 6 additions & 5 deletions pkg/pipeline/ConfigMapService_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/devtron-labs/devtron/pkg/cluster/repository"
mocks6 "github.com/devtron-labs/devtron/pkg/cluster/repository/mocks"
mocks3 "github.com/devtron-labs/devtron/pkg/commonService/mocks"
"github.com/devtron-labs/devtron/pkg/pipeline/bean"
mocks5 "github.com/devtron-labs/devtron/pkg/pipeline/history/mocks"
"github.com/go-pg/pg"
"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -45,7 +46,7 @@ func TestConfigMapServiceImpl_ConfigSecretEnvironmentCreate(t *testing.T) {
Deleted: true,
}
type args struct {
createJobEnvOverrideRequest *CreateJobEnvOverridePayload
createJobEnvOverrideRequest *bean.CreateJobEnvOverridePayload
getByAppError error
getByAppResponse *chartConfig.ConfigMapEnvModel
}
Expand All @@ -58,7 +59,7 @@ func TestConfigMapServiceImpl_ConfigSecretEnvironmentCreate(t *testing.T) {
{
name: "create environment override",
args: args{
createJobEnvOverrideRequest: &CreateJobEnvOverridePayload{
createJobEnvOverrideRequest: &bean.CreateJobEnvOverridePayload{
AppId: 22,
EnvId: 5,
},
Expand All @@ -71,7 +72,7 @@ func TestConfigMapServiceImpl_ConfigSecretEnvironmentCreate(t *testing.T) {
{
name: "create deleted override",
args: args{
createJobEnvOverrideRequest: &CreateJobEnvOverridePayload{
createJobEnvOverrideRequest: &bean.CreateJobEnvOverridePayload{
AppId: 22,
EnvId: 5,
},
Expand Down Expand Up @@ -129,7 +130,7 @@ func TestConfigMapServiceImpl_ConfigSecretEnvironmentDelete(t *testing.T) {
envRepository := mocks6.NewEnvironmentRepository(t)

type args struct {
createJobEnvOverrideRequest *CreateJobEnvOverridePayload
createJobEnvOverrideRequest *bean.CreateJobEnvOverridePayload
}
configMap := &chartConfig.ConfigMapEnvModel{
AppId: 1,
Expand All @@ -144,7 +145,7 @@ func TestConfigMapServiceImpl_ConfigSecretEnvironmentDelete(t *testing.T) {
{
name: "Delete configMap",
args: args{
createJobEnvOverrideRequest: &CreateJobEnvOverridePayload{
createJobEnvOverrideRequest: &bean.CreateJobEnvOverridePayload{
AppId: 1,
EnvId: 1,
},
Expand Down
12 changes: 6 additions & 6 deletions pkg/pipeline/GitopsOrHelmOption_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

pipelineCreateRequest := &bean.CdPipelines{
Pipelines: []*bean.CDPipelineConfigObject{
Expand Down Expand Up @@ -79,7 +79,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

pipelineCreateRequest := &bean.CdPipelines{
Pipelines: []*bean.CDPipelineConfigObject{
Expand Down Expand Up @@ -135,7 +135,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

pipelineCreateRequest := &bean.CdPipelines{
Pipelines: []*bean.CDPipelineConfigObject{
Expand Down Expand Up @@ -190,7 +190,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

pipelineCreateRequestHelm := &bean.CdPipelines{
Pipelines: []*bean.CDPipelineConfigObject{
Expand Down Expand Up @@ -284,7 +284,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

pipelineCreateRequest := &bean.CdPipelines{
Pipelines: []*bean.CDPipelineConfigObject{
Expand Down Expand Up @@ -341,7 +341,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)

pipelineCreateRequest := &bean.CdPipelines{
Pipelines: []*bean.CDPipelineConfigObject{
Expand Down
6 changes: 3 additions & 3 deletions pkg/pipeline/PipelineBuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -3132,7 +3132,7 @@ func (impl *PipelineBuilderImpl) createCdPipeline(ctx context.Context, app *app2
return 0, err
}
//VARIABLE_MAPPING_UPDATE
err = impl.extractAndMapVariables(envOverride.EnvOverrideValues, envOverride.Id, repository6.EntityTypeDeploymentTemplateEnvLevel, envOverride.UpdatedBy)
err = impl.extractAndMapVariables(envOverride.EnvOverrideValues, envOverride.Id, repository6.EntityTypeDeploymentTemplateEnvLevel, envOverride.UpdatedBy, tx)
if err != nil {
return 0, err
}
Expand Down Expand Up @@ -3177,15 +3177,15 @@ func (impl *PipelineBuilderImpl) createCdPipeline(ctx context.Context, app *app2
return pipelineId, nil
}

func (impl PipelineBuilderImpl) extractAndMapVariables(template string, entityId int, entityType repository6.EntityType, userId int32) error {
func (impl PipelineBuilderImpl) extractAndMapVariables(template string, entityId int, entityType repository6.EntityType, userId int32, tx *pg.Tx) error {
usedVariables, err := impl.variableTemplateParser.ExtractVariables(template)
if err != nil {
return err
}
err = impl.variableEntityMappingService.UpdateVariablesForEntity(usedVariables, repository6.Entity{
EntityType: entityType,
EntityId: entityId,
}, userId)
}, userId, tx)
if err != nil {
return err
}
Expand Down
Loading