Skip to content

Commit

Permalink
git projects delete flow added with plugis check
Browse files Browse the repository at this point in the history
  • Loading branch information
anil-intelops committed Feb 5, 2024
1 parent bd6a40a commit 4ae87fe
Show file tree
Hide file tree
Showing 11 changed files with 1,788 additions and 1,700 deletions.
17 changes: 17 additions & 0 deletions capten/agent/internal/api/plugin_git_apis.go
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,23 @@ func (a *Agent) DeleteGitProject(ctx context.Context, request *captenpluginspb.D
}
a.log.Infof("Delete Git project %s request recieved", request.Id)

gitProject, err := a.as.GetGitProjectForID(request.Id)
if err != nil {
a.log.Errorf("failed to get gitProject from db, %v", err)
return &captenpluginspb.DeleteGitProjectResponse{
Status: captenpluginspb.StatusCode_INTERNAL_ERROR,
StatusMessage: "failed to get gitProject from db",
}, nil
}

if len(gitProject.Tags) > 0 {
a.log.Errorf("failed to delete gitProject from db, repo is being used in %+v, %v", gitProject.Tags, err)
return &captenpluginspb.DeleteGitProjectResponse{
Status: captenpluginspb.StatusCode_INTERNAL_ERROR,
StatusMessage: "failed to delete gitProject from db, as repo is being used in plugins",
}, nil
}

if err := a.deleteGitProjectCredential(ctx, request.Id); err != nil {
return &captenpluginspb.DeleteGitProjectResponse{
Status: captenpluginspb.StatusCode_INTERNAL_ERROR,
Expand Down
28 changes: 28 additions & 0 deletions capten/agent/internal/capten-store/crossplane_project.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,28 @@ func (a *Store) updateCrossplaneProject() (*model.CrossplaneProject, error) {
if err := a.DeleteCrossplaneProject(crossplaneProject.Id); err != nil {
return nil, err
}

for _, gitProject := range allCrossplaneGitProjects {
var deleteRecord = true
if crossplaneProject.GitProjectId == gitProject.Id {
deleteRecord = false
break
}

if deleteRecord {
tags := []string{}
for _, v := range gitProject.Tags {
if v != "crossplane" {
tags = append(tags, v)
}
}

gitProject.Tags = tags
if err := a.UpsertGitProject(gitProject); err != nil {
return nil, err
}
}
}
}
}

Expand All @@ -103,6 +125,12 @@ func (a *Store) updateCrossplaneProject() (*model.CrossplaneProject, error) {
if err := a.UpsertCrossplaneProject(project); err != nil {
return nil, err
}

crosplaneGitProject.Tags = append(crosplaneGitProject.Tags, "crossplane")
if err := a.UpsertGitProject(crosplaneGitProject); err != nil {
return nil, err
}

return project, nil
}

Expand Down
19 changes: 15 additions & 4 deletions capten/agent/internal/capten-store/git_projects.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ const (
insertGitProjectId = "INSERT INTO %s.GitProjects(id) VALUES (?)"
updateGitProjectById = "UPDATE %s.GitProjects SET %s WHERE id=?"
deleteGitProjectById = "DELETE FROM %s.GitProjects WHERE id= ?"
selectAllGitProjects = "SELECT id, project_url, labels, last_update_time FROM %s.GitProjects"
selectAllGitProjectsByLabels = "SELECT id, project_url, labels, last_update_time FROM %s.GitProjects WHERE %s"
selectGetGitProjectById = "SELECT id, project_url, labels, last_update_time FROM %s.GitProjects WHERE id=%s;"
selectAllGitProjects = "SELECT id, project_url, labels, last_update_time, tags FROM %s.GitProjects"
selectAllGitProjectsByLabels = "SELECT id, project_url, labels, last_update_time, tags FROM %s.GitProjects WHERE %s"
selectGetGitProjectById = "SELECT id, project_url, labels, last_update_time, tags FROM %s.GitProjects WHERE id=%s;"
)

func (a *Store) UpsertGitProject(config *captenpluginspb.GitProject) error {
Expand Down Expand Up @@ -92,7 +92,7 @@ func (a *Store) executeGitProjectsSelectQuery(query string) ([]*captenpluginspb.
ret := make([]*captenpluginspb.GitProject, 0)
for iter.Scan(
&project.Id, &project.ProjectUrl,
&labels, &project.LastUpdateTime,
&labels, &project.LastUpdateTime, &project.Tags,
) {
labelsTmp := make([]string, len(labels))
copy(labelsTmp, labels)
Expand All @@ -101,6 +101,7 @@ func (a *Store) executeGitProjectsSelectQuery(query string) ([]*captenpluginspb.
ProjectUrl: project.ProjectUrl,
Labels: labelsTmp,
LastUpdateTime: project.LastUpdateTime,
Tags: project.Tags,
}
ret = append(ret, gitProject)
}
Expand Down Expand Up @@ -130,6 +131,16 @@ func formUpdateKvPairsForGitProject(config *captenpluginspb.GitProject) (updateP
values = append(values, param)
}

if len(config.Tags) > 0 {
tags := []string{}
for _, tag := range config.Tags {
tags = append(tags, fmt.Sprintf("'%s'", tag))
}
param := "{" + strings.Join(tags, ", ") + "}"
params = append(params, "tags = ?")
values = append(values, param)
}

if config.LastUpdateTime != "" {
params = append(params, "last_update_time = ?")
values = append(values, config.LastUpdateTime)
Expand Down
28 changes: 28 additions & 0 deletions capten/agent/internal/capten-store/tekton_projects.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,28 @@ func (a *Store) updateTektonProject() (*model.TektonProject, error) {
if err := a.DeleteTektonProject(tekPro.Id); err != nil {
return nil, err
}

for _, gitProject := range allTektonProjects {
var deleteRecord = true
if tekPro.GitProjectId == gitProject.Id {
deleteRecord = false
break
}

if deleteRecord {
tags := []string{}
for _, v := range gitProject.Tags {
if v != "tekton" {
tags = append(tags, v)
}
}

gitProject.Tags = tags
if err := a.UpsertGitProject(gitProject); err != nil {
return nil, err
}
}
}
} else {
regTektonProjectId[tekPro.Id] = tekPro
}
Expand All @@ -108,6 +130,12 @@ func (a *Store) updateTektonProject() (*model.TektonProject, error) {
if err := a.UpsertTektonProject(project); err != nil {
return nil, err
}

tektonGitProject.Tags = append(tektonGitProject.Tags, "tekton")
if err := a.UpsertGitProject(tektonGitProject); err != nil {
return nil, err
}

return project, nil
}
return regTektonProjects[0], nil
Expand Down
Loading

0 comments on commit 4ae87fe

Please sign in to comment.