Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0eff874
wip
iamayushm Aug 25, 2023
ebb2c48
wip
iamayushm Aug 25, 2023
625dc8f
wip
iamayushm Aug 27, 2023
6f161c7
wip
iamayushm Aug 28, 2023
5d92890
wip
iamayushm Aug 28, 2023
74978cc
fix update
iamayushm Aug 30, 2023
ccb2385
wip
iamayushm Aug 30, 2023
07f6954
wip
iamayushm Aug 30, 2023
98b98fd
main merge
iamayushm Sep 4, 2023
4774307
wip
iamayushm Sep 10, 2023
9828409
pr review changes
iamayushm Sep 10, 2023
aa58994
wip
iamayushm Sep 11, 2023
c1f5feb
wip
iamayushm Sep 11, 2023
885292b
wip
iamayushm Sep 11, 2023
266f386
not marking previous deployment failed
iamayushm Sep 14, 2023
240e38f
main merge
iamayushm Sep 14, 2023
0469bf5
fixing nats message
iamayushm Sep 14, 2023
973c671
wip
iamayushm Sep 15, 2023
70ab4d4
wip
iamayushm Sep 15, 2023
b8d551a
wip
iamayushm Sep 15, 2023
39bfa39
wip
iamayushm Sep 15, 2023
1c81d96
argo asset files
iamayushm Sep 15, 2023
78b1d10
wip
iamayushm Sep 15, 2023
e029a64
wip
iamayushm Sep 20, 2023
6e6cd85
wip
iamayushm Sep 20, 2023
aecf655
wip
iamayushm Sep 20, 2023
b9c76bb
wip
iamayushm Sep 20, 2023
3c5c67c
progressing state
iamayushm Sep 21, 2023
8577a8b
progressing state
iamayushm Sep 21, 2023
fe38910
wip
iamayushm Sep 21, 2023
065015b
wip
iamayushm Sep 21, 2023
7bff00f
port fix
iamayushm Sep 21, 2023
f16e2c3
pr review
iamayushm Sep 21, 2023
4fa8977
pr review
iamayushm Sep 21, 2023
d69010c
common-lib update
iamayushm Sep 21, 2023
8cba7bc
failed on update handling
iamayushm Sep 21, 2023
67c3afe
reverting
iamayushm Sep 21, 2023
99a61bc
port revert
iamayushm Sep 21, 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: 6 additions & 6 deletions api/appStore/InstalledAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -576,11 +576,11 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppDetailsForInstalledApp(w htt
return
}
//rback block ends here
resourceTreeAndNotesContainer := bean2.ResourceTreeAndNotesContainer{}
resourceTreeAndNotesContainer := bean2.AppDetailsContainer{}
resourceTreeAndNotesContainer.ResourceTree = map[string]interface{}{}

if len(installedApp.App.AppName) > 0 && len(installedApp.Environment.Name) > 0 {
err = handler.fetchResourceTree(w, r, &resourceTreeAndNotesContainer, *installedApp)
err = handler.fetchResourceTree(w, r, &resourceTreeAndNotesContainer, *installedApp, "")
if installedApp.DeploymentAppType == util2.PIPELINE_DEPLOYMENT_TYPE_ACD {
apiError, ok := err.(*util2.ApiError)
if ok && apiError != nil {
Expand Down Expand Up @@ -691,11 +691,11 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
return
}

resourceTreeAndNotesContainer := bean2.ResourceTreeAndNotesContainer{}
resourceTreeAndNotesContainer := bean2.AppDetailsContainer{}
resourceTreeAndNotesContainer.ResourceTree = map[string]interface{}{}

if len(installedApp.App.AppName) > 0 && len(installedApp.Environment.Name) > 0 {
err = handler.fetchResourceTree(w, r, &resourceTreeAndNotesContainer, *installedApp)
err = handler.fetchResourceTree(w, r, &resourceTreeAndNotesContainer, *installedApp, appDetail.HelmReleaseInstallStatus)
if installedApp.DeploymentAppType == util2.PIPELINE_DEPLOYMENT_TYPE_ACD {
//resource tree has been fetched now prepare to sync application deployment status with this resource tree call
handler.syncDeploymentStatusWithResourceTreeCall(appDetail)
Expand Down Expand Up @@ -786,10 +786,10 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTreeForACDApp(w http.Re
common.WriteJsonResp(w, err, appDetail, http.StatusOK)
}

func (handler *InstalledAppRestHandlerImpl) fetchResourceTree(w http.ResponseWriter, r *http.Request, resourceTreeAndNotesContainer *bean2.ResourceTreeAndNotesContainer, installedApp repository.InstalledApps) error {
func (handler *InstalledAppRestHandlerImpl) fetchResourceTree(w http.ResponseWriter, r *http.Request, resourceTreeAndNotesContainer *bean2.AppDetailsContainer, installedApp repository.InstalledApps, helmReleaseInstallStatus string) error {
ctx := r.Context()
cn, _ := w.(http.CloseNotifier)
err := handler.installedAppService.FetchResourceTree(ctx, cn, resourceTreeAndNotesContainer, installedApp)
err := handler.installedAppService.FetchResourceTree(ctx, cn, resourceTreeAndNotesContainer, installedApp, helmReleaseInstallStatus)
return err
}

Expand Down
8 changes: 5 additions & 3 deletions api/bean/AppView.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ type DeploymentDetailContainer struct {
DeploymentAppDeleteRequest bool `json:"deploymentAppDeleteRequest"`
Description string `json:"description" validate:"max=40"`
IsVirtualEnvironment bool `json:"isVirtualEnvironment"`
HelmReleaseInstallStatus string `json:"-"`
}

type AppDetailContainer struct {
Expand All @@ -179,9 +180,10 @@ type AppDetailContainer struct {
ResourceTree map[string]interface{} `json:"resourceTree,omitempty"`
Notes string `json:"notes,omitempty"`
}
type ResourceTreeAndNotesContainer struct {
ResourceTree map[string]interface{} `json:"resourceTree,omitempty"`
Notes string `json:"notes,omitempty"`
type AppDetailsContainer struct {
ResourceTree map[string]interface{} `json:"resourceTree,omitempty"`
Notes string `json:"notes,omitempty"`
ReleaseStatus map[string]interface{} `json:"releaseStatus"`
}
type Notes struct {
Notes string `json:"gitOpsNotes,omitempty"`
Expand Down
844 changes: 433 additions & 411 deletions api/helm-app/applist.pb.go

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions api/helm-app/applist.proto
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ message AppDetail{
ChartMetadata chartMetadata = 7;
ResourceTreeResponse resourceTreeResponse = 8;
EnvironmentDetails environmentDetails = 9;
bool ReleaseExist = 10;
}

message AppStatus{
Expand Down Expand Up @@ -262,6 +263,7 @@ message InstallReleaseRequest {
ChartRepository chartRepository = 5;
string K8sVersion = 6;
int32 historyMax = 7;
int32 installAppVersionHistoryId = 8;
}

message InstallReleaseResponse {
Expand Down
8 changes: 5 additions & 3 deletions api/restHandler/AppListingRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -1345,10 +1345,10 @@ func (handler AppListingRestHandlerImpl) RedirectToLinkouts(w http.ResponseWrite
}
http.Redirect(w, r, link, http.StatusOK)
}
func (handler AppListingRestHandlerImpl) fetchResourceTreeFromInstallAppService(w http.ResponseWriter, r *http.Request, resourceTreeAndNotesContainer bean.ResourceTreeAndNotesContainer, installedApps repository.InstalledApps) (bean.ResourceTreeAndNotesContainer, error) {
func (handler AppListingRestHandlerImpl) fetchResourceTreeFromInstallAppService(w http.ResponseWriter, r *http.Request, resourceTreeAndNotesContainer bean.AppDetailsContainer, installedApps repository.InstalledApps) (bean.AppDetailsContainer, error) {
rctx := r.Context()
cn, _ := w.(http.CloseNotifier)
err := handler.installedAppService.FetchResourceTree(rctx, cn, &resourceTreeAndNotesContainer, installedApps)
err := handler.installedAppService.FetchResourceTree(rctx, cn, &resourceTreeAndNotesContainer, installedApps, "")
return resourceTreeAndNotesContainer, err
}
func (handler AppListingRestHandlerImpl) GetHostUrlsByBatch(w http.ResponseWriter, r *http.Request) {
Expand Down Expand Up @@ -1420,7 +1420,7 @@ func (handler AppListingRestHandlerImpl) GetHostUrlsByBatch(w http.ResponseWrite
common.WriteJsonResp(w, err, "App not found in database", http.StatusBadRequest)
return
}
resourceTreeAndNotesContainer := bean.ResourceTreeAndNotesContainer{}
resourceTreeAndNotesContainer := bean.AppDetailsContainer{}
resourceTreeAndNotesContainer, err = handler.fetchResourceTreeFromInstallAppService(w, r, resourceTreeAndNotesContainer, *installedApp)
if err != nil {
common.WriteJsonResp(w, fmt.Errorf("error in fetching resource tree"), nil, http.StatusInternalServerError)
Expand Down Expand Up @@ -1590,7 +1590,9 @@ func (handler AppListingRestHandlerImpl) fetchResourceTree(w http.ResponseWriter
}
if detail != nil {
resourceTree = util2.InterfaceToMapAdapter(detail.ResourceTreeResponse)
releaseStatus := util2.InterfaceToMapAdapter(detail.ReleaseStatus)
applicationStatus := detail.ApplicationStatus
resourceTree["releaseStatus"] = releaseStatus
resourceTree["status"] = applicationStatus
if applicationStatus == application.Healthy {
status, err := handler.appListingService.ISLastReleaseStopType(appId, envId)
Expand Down
2 changes: 2 additions & 0 deletions cmd/external-app/wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package main

import (
"github.com/devtron-labs/authenticator/middleware"
pubsub_lib "github.com/devtron-labs/common-lib/pubsub-lib"
"github.com/devtron-labs/devtron/api/apiToken"
appStoreDeployment "github.com/devtron-labs/devtron/api/appStore/deployment"
appStoreDiscover "github.com/devtron-labs/devtron/api/appStore/discover"
Expand Down Expand Up @@ -179,6 +180,7 @@ func InitializeApp() (*App, error) {

security2.NewScanToolMetadataRepositoryImpl,
wire.Bind(new(security2.ScanToolMetadataRepository), new(*security2.ScanToolMetadataRepositoryImpl)),
pubsub_lib.NewPubSubClientServiceImpl,
)
return &App{}, nil
}
4 changes: 3 additions & 1 deletion cmd/external-app/wire_gen.go

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

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ require (
github.com/coreos/go-oidc v2.2.1+incompatible
github.com/davecgh/go-spew v1.1.1
github.com/devtron-labs/authenticator v0.4.31-0.20221213131053-6e4668309f53
github.com/devtron-labs/common-lib v0.0.0-20230407072229-d4f665f5ca12
github.com/devtron-labs/common-lib v0.0.0-20230821120530-56d8ed4bc327
github.com/devtron-labs/protos v0.0.0-20230503113602-282404f70fd2
github.com/evanphx/json-patch v5.6.0+incompatible
github.com/go-pg/pg v6.15.1+incompatible
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,8 @@ github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4 h1:YcpmyvADG
github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM=
github.com/devtron-labs/authenticator v0.4.31-0.20221213131053-6e4668309f53 h1:oHDpsCsuYiL+u5TEhilKNLGhH9lwRNkIqrzhHQA6d3c=
github.com/devtron-labs/authenticator v0.4.31-0.20221213131053-6e4668309f53/go.mod h1:ozNfT8WcruiSgnUbyp48WVfc41++W6xYXhKFp67lNTU=
github.com/devtron-labs/common-lib v0.0.0-20230407072229-d4f665f5ca12 h1:tcwNgAWTzalItF5XT0WxicRvY4wzz/o0HYLMVLxsxjg=
github.com/devtron-labs/common-lib v0.0.0-20230407072229-d4f665f5ca12/go.mod h1:R24nOqgk4buk9zv+BXzORfObZsOe3NE9P55KrZXGX9k=
github.com/devtron-labs/common-lib v0.0.0-20230821120530-56d8ed4bc327 h1:BNyGu3HBIiHDNo2rbk/tv75O3rt9dSY/9OkGPhwD/8s=
github.com/devtron-labs/common-lib v0.0.0-20230821120530-56d8ed4bc327/go.mod h1:R24nOqgk4buk9zv+BXzORfObZsOe3NE9P55KrZXGX9k=
github.com/devtron-labs/protos v0.0.0-20230503113602-282404f70fd2 h1:/IEIsJTxDZ3hv8uOoCaqdWCXqcv7nCAgX9AP/v84dUY=
github.com/devtron-labs/protos v0.0.0-20230503113602-282404f70fd2/go.mod h1:l85jxWHlcSo910hdUfRycL40yGzC6glE93V1sVxVPto=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
Expand Down
6 changes: 6 additions & 0 deletions pkg/appStore/bean/bean.go
Original file line number Diff line number Diff line change
Expand Up @@ -370,3 +370,9 @@ type PushChartToGitRequestDTO struct {
TempChartRefDir string
UserId int32
}

type HelmInstallNatsMessage struct {
InstallAppVersionHistoryId int
Message string
IsReleaseInstalled bool
}
12 changes: 12 additions & 0 deletions pkg/appStore/deployment/repository/InstalledAppRepository.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ type InstalledAppRepository interface {

GetArgoPipelinesHavingLatestTriggerStuckInNonTerminalStatusesForAppStore(getPipelineDeployedBeforeMinutes int, getPipelineDeployedWithinHours int) ([]*InstalledAppVersions, error)
GetArgoPipelinesHavingTriggersStuckInLastPossibleNonTerminalTimelinesForAppStore(pendingSinceSeconds int, timeForDegradation int) ([]*InstalledAppVersions, error)
GetHelmReleaseStatusConfigByInstalledAppId(installedAppVersionHistoryId int) (string, error)
}

type InstalledAppRepositoryImpl struct {
Expand Down Expand Up @@ -658,3 +659,14 @@ func (impl InstalledAppRepositoryImpl) GetArgoPipelinesHavingTriggersStuckInLast
}
return installedAppVersions, nil
}

func (impl InstalledAppRepositoryImpl) GetHelmReleaseStatusConfigByInstalledAppId(installedAppVersionHistoryId int) (string, error) {
var helmReleaseStatusConfig string
queryString := `select helm_release_status_config from installed_app_version_history inner join installed_app_versions on installed_app_version_history.installed_app_version_id=installed_app_versions.id inner join installed_apps on installed_apps.id=installed_app_versions.installed_app_id where installed_apps.id = ? order by installed_app_version_history.created_on desc limit 1;`
_, err := impl.dbConnection.Query(&helmReleaseStatusConfig, queryString, installedAppVersionHistoryId)
if err != nil {
impl.Logger.Errorw("error in GetAllGitOpsDeploymentAppName", "err", err)
return helmReleaseStatusConfig, err
}
return helmReleaseStatusConfig, nil
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,15 @@ func NewInstalledAppVersionHistoryRepositoryImpl(Logger *zap.SugaredLogger, dbCo
}

type InstalledAppVersionHistory struct {
TableName struct{} `sql:"installed_app_version_history" pg:",discard_unknown_columns"`
Id int `sql:"id,pk"`
InstalledAppVersionId int `sql:"installed_app_version_id,notnull"`
ValuesYamlRaw string `sql:"values_yaml_raw"`
Status string `sql:"status"`
GitHash string `sql:"git_hash"`
StartedOn time.Time `sql:"started_on,type:timestamptz"`
FinishedOn time.Time `sql:"finished_on,type:timestamptz"`
TableName struct{} `sql:"installed_app_version_history" pg:",discard_unknown_columns"`
Id int `sql:"id,pk"`
InstalledAppVersionId int `sql:"installed_app_version_id,notnull"`
ValuesYamlRaw string `sql:"values_yaml_raw"`
Status string `sql:"status"`
GitHash string `sql:"git_hash"`
StartedOn time.Time `sql:"started_on,type:timestamptz"`
FinishedOn time.Time `sql:"finished_on,type:timestamptz"`
HelmReleaseStatusConfig string `sql: "helm_release_status"`
sql.AuditLog
}

Expand Down
Loading