Skip to content

fix:duplicate workflow name fixed #4841

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Apr 9, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
cd75687
duplicate workflow name bug resolved
Laeeqdev Mar 26, 2024
8be91f0
refactored code
Laeeqdev Mar 27, 2024
a192749
completed dev testing and code
Laeeqdev Mar 28, 2024
c993c4b
PR code review comments resolved
Laeeqdev Mar 29, 2024
2408adf
Merge branch 'main' into duplicate-workflow-name-fix
Laeeqdev Mar 29, 2024
cc59fb6
resolved PR code review comments
Laeeqdev Apr 1, 2024
3b4d2ee
Merge remote-tracking branch 'origin/duplicate-workflow-name-fix' int…
Laeeqdev Apr 1, 2024
e7182a5
resolved PR code review comments final
Laeeqdev Apr 2, 2024
ce411f6
misc: Refactoring Pagerduty Issue Calculator script (#4856)
YashasviDevtron Apr 1, 2024
4959e52
feat: Add support for git hash in the app and app group overview sect…
RajeevRanjan27 Apr 1, 2024
becac14
feat:MailMaster Plugin v1.0 (#4825)
akshatsinha007 Apr 1, 2024
7e7f975
return nil,err on git material fetch error (#4857)
prakash100198 Apr 2, 2024
a9ef491
removed code for gitops repo migration in devtron apps (#4838)
prakash100198 Apr 3, 2024
566a6bc
fix: update argo app repo url in patch (#4876)
gireesh-naidu Apr 3, 2024
385c167
fix: injected app-serveice dependency into DeployedApplicationEventPr…
gireesh-naidu Apr 3, 2024
3fb903f
fix: depandabot version upgrade (#4792)
ShashwatDadhich Apr 4, 2024
189405d
syncing specifig chart (#4631)
iamayushm Apr 5, 2024
621e838
fix: use JoinCookie method (#4892)
gireesh-naidu Apr 5, 2024
e24361a
chore: Resource mapping refactoring (#4813)
subhashish-devtron Apr 5, 2024
e729c5b
fix: rbac fix in case of project in upper case (#4840)
Shivam-nagar23 Apr 8, 2024
9b8ea05
chore: App Store refactoring v4 (#4647)
Ash-exp Apr 8, 2024
81a0097
fix: deprecate latest in app store app version (#4896)
gireesh-naidu Apr 8, 2024
25cf870
chore: migration support for notification db changes (#4906)
Ash-exp Apr 8, 2024
532cc1d
feat: Added the Devtron CI Trigger Plugin (#4902) (#4908)
kirandevtn Apr 8, 2024
72aaa09
:wq
Laeeqdev Apr 9, 2024
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
10 changes: 10 additions & 0 deletions api/restHandler/CoreAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -1587,6 +1587,16 @@ func (handler CoreAppRestHandlerImpl) createWorkflows(ctx context.Context, appId
}

func (handler CoreAppRestHandlerImpl) createWorkflowInDb(workflowName string, appId int, userId int32) (int, error) {
//checking if workflow name is already exist or not
workflow, err := handler.appWorkflowRepository.FindByNameAndAppId(workflowName, appId)
if err != nil && !errors.Is(err, pg.ErrNoRows) && !errors.Is(err, pg.ErrMultiRows) {
handler.logger.Errorw("error in finding workflow by app id and name", "name", workflowName, "appId", appId)
return 0, err
}
// if workflow name already exists then we will assign a new name to the workflow
if workflow.Id != 0 {
workflowName = fmt.Sprintf("%s-clone-%s", workflowName, util.Generate(4))
}
wf := &appWorkflow2.AppWorkflow{
Name: workflowName,
AppId: appId,
Expand Down
23 changes: 14 additions & 9 deletions pkg/appWorkflow/AppWorkflowService.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package appWorkflow
import (
"errors"
"fmt"
util2 "github.com/devtron-labs/devtron/util"
"time"

mapset "github.com/deckarep/golang-set"
Expand Down Expand Up @@ -178,7 +179,11 @@ func (impl AppWorkflowServiceImpl) CreateAppWorkflow(req AppWorkflowDto) (AppWor
var wf *appWorkflow.AppWorkflow
var savedAppWf *appWorkflow.AppWorkflow
var err error

workflow, err := impl.appWorkflowRepository.FindByNameAndAppId(req.Name, req.AppId)
if err != nil && !errors.Is(err, pg.ErrNoRows) {
impl.Logger.Errorw("error in finding workflow by app id and name", "name", req.Name, "appId", req.AppId)
return req, err
}
if req.Id != 0 {
wf = &appWorkflow.AppWorkflow{
Id: req.Id,
Expand All @@ -189,19 +194,19 @@ func (impl AppWorkflowServiceImpl) CreateAppWorkflow(req AppWorkflowDto) (AppWor
UpdatedBy: req.UserId,
},
}
savedAppWf, err = impl.appWorkflowRepository.UpdateAppWorkflow(wf)
} else {
workflow, err := impl.appWorkflowRepository.FindByNameAndAppId(req.Name, req.AppId)
if err != nil && err != pg.ErrNoRows {
impl.Logger.Errorw("error in finding workflow by app id and name", "name", req.Name, "appId", req.AppId)
return req, err
}
if workflow.Id != 0 {
impl.Logger.Errorw("workflow with this name already exist", "err", err)
return req, errors.New(bean2.WORKFLOW_EXIST_ERROR)
}
savedAppWf, err = impl.appWorkflowRepository.UpdateAppWorkflow(wf)
} else {
workflowName := req.Name
// if workflow already exists then we will assign a new name to the workflow
if workflow.Id != 0 {
workflowName = fmt.Sprintf("%s-clone-%s", req.Name, util2.Generate(4))
}
wf := &appWorkflow.AppWorkflow{
Name: req.Name,
Name: workflowName,
AppId: req.AppId,
Active: true,
AuditLog: sql.AuditLog{
Expand Down
Loading