Skip to content

chore: code refactoring for app store #4726

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

Closed
wants to merge 131 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
c1ce9a5
removed registerInArgo multiple impls
kartik-579 Jan 11, 2024
b8fa93b
extracted app metrics code
kartik-579 Jan 11, 2024
e42180b
migrated envLevel app metrics code to new service
kartik-579 Jan 11, 2024
c7cfc9e
chore: Removed unused jira and migration integration (#4498)
nishant-d Jan 15, 2024
28b07fd
chore: App store dead code cleanup and restructuring (#4497)
nishant-d Jan 15, 2024
9e36312
chart ref refactoring
kartik-579 Jan 15, 2024
a1421a5
removed infra metrics db calls
kartik-579 Jan 15, 2024
a6123c5
moved app metrics repositories from /internal to /pkg
kartik-579 Jan 15, 2024
acfec88
moved: const and types to bean
Ash-exp Jan 15, 2024
0eb82b7
removed: unused const
Ash-exp Jan 15, 2024
765df77
review comments
kartik-579 Jan 15, 2024
bf86180
Merge branch 'main' into refactoring-deployment-template-1
kartik-579 Jan 15, 2024
5038a0b
migrated some methods from chartService to chartRefService
kartik-579 Jan 15, 2024
c38d528
added dt validation service interface
kartik-579 Jan 15, 2024
f0e449e
minor refactoring
kartik-579 Jan 16, 2024
23f28b2
Merge branch 'refactoring-deployment-template-2' into refactoring-dep…
kartik-579 Jan 16, 2024
c151a32
moved validation method - 1
kartik-579 Jan 16, 2024
20562f2
wip
kartik-579 Jan 16, 2024
75b99ab
removed redundant appMetrics req obj
kartik-579 Jan 16, 2024
ece3419
Merge branch 'refactoring-deployment-template-1' into refactoring-dep…
kartik-579 Jan 16, 2024
11f76ff
moved app metrics bindings to wireset
kartik-579 Jan 16, 2024
fe0f272
Merge branch 'refactoring-deployment-template-2' into refactoring-dep…
kartik-579 Jan 16, 2024
b59cb1c
removed multiple dead code
kartik-579 Jan 16, 2024
d113b35
remove redundant dependency
kartik-579 Jan 16, 2024
ae90f36
moved ChartGroup router and rest handler to respective folder
Ash-exp Jan 17, 2024
f802e61
stage 1
nishant-d Jan 17, 2024
9c0f2b8
gitOps refactoring
kartik-579 Jan 18, 2024
347e084
moved gitClient code to a common wrapper service
kartik-579 Jan 18, 2024
14cf57a
Merge branch 'main' into refactoring-deployment-template-1
kartik-579 Jan 18, 2024
d57ce3b
Merge branch 'refactoring-deployment-template-1' into refactoring-dep…
kartik-579 Jan 18, 2024
9db8bbf
Merge branch 'refactoring-deployment-template-2' into refactoring-dep…
kartik-579 Jan 18, 2024
f91f682
chore: AppStoreDeployment Install flow refactoring
Ash-exp Jan 18, 2024
6964081
Merge branch 'main' into chore-refactoring-v1
Ash-exp Jan 18, 2024
3b21a26
Merge branch 'chore-refactoring-v1' into chore-app-store-deployment-r…
Ash-exp Jan 18, 2024
f6ce3ad
Merge branch 'chore-refactoring-v1' into refactoring-deployment-templ…
kartik-579 Jan 18, 2024
bb29cbc
Merge branch 'refactoring-deployment-template-3-extend' into chore-ap…
kartik-579 Jan 18, 2024
00da807
Merge branch 'chore-refactoring-v1' into chore-refactoring-v2n
Ash-exp Jan 18, 2024
4842b83
review changes
kartik-579 Jan 18, 2024
d263c7c
chore: merged chart template and gitops refactoring
Ash-exp Jan 18, 2024
ab494c1
wip
kartik-579 Jan 19, 2024
0120e15
fix for unsupported charts
kartik-579 Jan 19, 2024
0b44511
refactoring: App Store deployment services
Ash-exp Jan 20, 2024
f180645
Merge branch 'refactoring-deployment-template-1' into refactoring-dep…
kartik-579 Jan 22, 2024
4c63150
Merge branch 'main' into refactoring-deployment-template-1
kartik-579 Jan 22, 2024
402952b
Merge branch 'refactoring-deployment-template-1' into refactoring-dep…
kartik-579 Jan 22, 2024
d17e97e
chore: main merge
Ash-exp Jan 22, 2024
40e2364
Merge branch 'refactoring-deployment-template-2' into refactoring-dep…
kartik-579 Jan 22, 2024
1b0df74
Merge branch 'main' into refactoring-deployment-template-1
kartik-579 Jan 23, 2024
3944f73
Merge branch 'refactoring-deployment-template-1' into refactoring-dep…
kartik-579 Jan 23, 2024
869c6e4
minor cleanup
kartik-579 Jan 23, 2024
bad8a41
Merge branch 'refactoring-deployment-template-2' into refactoring-dep…
kartik-579 Jan 23, 2024
d111698
renamed remote package to git
kartik-579 Jan 23, 2024
fcf03ac
renamed gitOpsRemoteOpService If and impl
kartik-579 Jan 23, 2024
99e1d21
chore: main merge
Ash-exp Jan 23, 2024
9cb4432
migrated usages of gitService to gitOperationService
kartik-579 Jan 23, 2024
c1adf32
shifted git service and all gitOps clients to pkg
kartik-579 Jan 23, 2024
c1ab970
gitops repository usages refactor
kartik-579 Jan 23, 2024
3cb7c7a
Merge branch 'main' into chore-refactoring-v2
Ash-exp Jan 23, 2024
c70e84e
chore: feature branch merge
Ash-exp Jan 23, 2024
6e83a5c
refactored gitOpsRepository usages
kartik-579 Jan 23, 2024
d616574
gitlab client creation refactoring
kartik-579 Jan 23, 2024
bde77ef
renamed util/ChartService
kartik-579 Jan 23, 2024
edcd234
Merge branch 'main' into refactoring-deployment-template-3-extend
kartik-579 Jan 24, 2024
583159e
Merge branch 'chore-refactoring-v1' into refactoring-deployment-templ…
kartik-579 Jan 24, 2024
76af46f
Merge branch 'main' into refactoring-deployment-template-3-extend
kartik-579 Jan 24, 2024
9aa630b
reverted renaming changes
kartik-579 Jan 24, 2024
9961fd0
reverted renaming changes
kartik-579 Jan 24, 2024
5e128a0
reverted renaming changes
kartik-579 Jan 24, 2024
0af9223
wip
kartik-579 Jan 25, 2024
799ffae
wip
kartik-579 Jan 25, 2024
7b9be04
removed typo
kartik-579 Jan 25, 2024
2aa56bf
changes
kartik-579 Jan 25, 2024
60fcf0a
changes
kartik-579 Jan 25, 2024
0b2e23e
Merge branch 'main' into chore-refactoring-v2
Ash-exp Jan 29, 2024
c905e78
Merge branch 'main' into refactoring-deployment-template-3-extend
kartik-579 Jan 29, 2024
d2aca5c
Merge branch 'refactoring-deployment-template-3-extend' into chore-re…
Ash-exp Jan 29, 2024
ecd7cc0
chore: App store services refactoring (#4596)
Ash-exp Jan 30, 2024
93e635b
chore: dead code removal and app router & rest handler restructuring …
Ash-exp Jan 30, 2024
0e3c265
Merge branch 'main' into refactoring-deployment-template-3-extend
kartik-579 Jan 31, 2024
1499f31
Merge branch 'main' into chore-refactoring-v2
Ash-exp Jan 31, 2024
e3b2344
Merge branch 'refactoring-deployment-template-3-extend' into chore-re…
Ash-exp Jan 31, 2024
23ac4a7
chore: sanity after ent sync
Ash-exp Jan 31, 2024
a96ef3e
added: todo comment
Ash-exp Feb 1, 2024
32e2566
Merge branch 'chore-refactoring-v2' into chore-refactoring-v3
Ash-exp Feb 1, 2024
6df287a
added: todo comment
Ash-exp Feb 2, 2024
98b25d2
Merge remote-tracking branch 'origin/main' into chore-refactoring-v3
Ash-exp Feb 2, 2024
9b39a8c
Merge remote-tracking branch 'origin/refactoring-template-gitOps-appS…
Ash-exp Feb 5, 2024
2bcef5f
Merge remote-tracking branch 'origin/main' into chore-refactoring-v2
Ash-exp Feb 5, 2024
0bb64f8
chore: fixed gitops auto fix operations in upgrade helm charts
Ash-exp Feb 5, 2024
799f9f1
added: nit pointer issue for argocd resource tree
Ash-exp Feb 5, 2024
50e1998
fixed: nil poniter issue for gitops in upgrade deployment
Ash-exp Feb 5, 2024
590b50b
Merge branch 'chore-refactoring-v2' into chore-refactoring-v3
Ash-exp Feb 5, 2024
3fa0224
Merge remote-tracking branch 'origin/main' into chore-refactoring-v3
Ash-exp Feb 6, 2024
6915961
chore: install Helm chart flow refactoring
Ash-exp Feb 6, 2024
ab5c595
Merge branch 'main' into chore-refactoring-v3
Ash-exp Feb 7, 2024
29a7d47
removed: comments
Ash-exp Feb 7, 2024
d52c0a4
Merge branch 'chore-refactoring-v3' into chore-refactoring-v4
Ash-exp Feb 7, 2024
be5ed4b
Merge remote-tracking branch 'origin/main' into chore-refactoring-v4
Ash-exp Feb 8, 2024
15e8e67
Merge branch 'main' into chore-refactoring-v4
Ash-exp Feb 8, 2024
9eeb911
chore: broken down AppStoreDeploymentService interface
Ash-exp Feb 9, 2024
a1fb644
Merge branch 'main' into chore-refactoring-v4
Ash-exp Feb 11, 2024
111e389
fix: install apps audit logs
Ash-exp Feb 12, 2024
b23b6da
chore: update env name usgae
Ash-exp Feb 13, 2024
e3e4137
Merge remote-tracking branch 'origin/main' into chore-refactoring-v4
Ash-exp Feb 26, 2024
ffc740c
CommonWireSet made
ShashwatDadhich Feb 26, 2024
e5faa7b
refactoring done
ShashwatDadhich Feb 26, 2024
f0309e0
chore: fixed main merge changes
Ash-exp Feb 26, 2024
69049ba
code refactored
ShashwatDadhich Feb 26, 2024
fdf71f8
app store service refactored
ShashwatDadhich Feb 27, 2024
d1b521b
internal name changed to internals
ShashwatDadhich Feb 27, 2024
af26996
test
ShashwatDadhich Feb 27, 2024
035825b
code made common
ShashwatDadhich Feb 27, 2024
02badc2
code refactored
ShashwatDadhich Feb 27, 2024
ae4e528
code refactored
ShashwatDadhich Feb 27, 2024
767e890
wiring changed
ShashwatDadhich Feb 28, 2024
02dda72
wiring changed
ShashwatDadhich Feb 28, 2024
ceb6378
common wire set added for external app
ShashwatDadhich Feb 29, 2024
4560846
common wire set added for external app
ShashwatDadhich Feb 29, 2024
c547e1f
common wire set added for external app
ShashwatDadhich Feb 29, 2024
6e15222
common wire set added for external app
ShashwatDadhich Feb 29, 2024
46ff51d
common wire set added for external app
ShashwatDadhich Feb 29, 2024
b21d7f5
code review changes
ShashwatDadhich Feb 29, 2024
e97e716
code review changes
ShashwatDadhich Feb 29, 2024
1a57caf
code review changes
ShashwatDadhich Feb 29, 2024
6edfa67
Merge remote-tracking branch 'origin/main' into chore-refactoring-v4
Ash-exp Mar 1, 2024
70747a4
Merge branch 'chore-refactoring-v4' into code_refactoring_app_store_f…
ShashwatDadhich Mar 1, 2024
cc18f25
updated env var parsing
Ash-exp Mar 1, 2024
c8d80ed
Merge remote-tracking branch 'origin/chore-refactoring-v4' into code_…
ShashwatDadhich Mar 1, 2024
be8601f
code review changes - wire set made for app store
ShashwatDadhich Mar 1, 2024
ea9f24d
gRPC refactored
ShashwatDadhich Mar 1, 2024
202b77e
struct refactored
ShashwatDadhich Mar 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion App.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import (
pubsub "github.com/devtron-labs/common-lib/pubsub-lib"
"github.com/devtron-labs/devtron/api/router"
"github.com/devtron-labs/devtron/api/sse"
"github.com/devtron-labs/devtron/internal/middleware"
"github.com/devtron-labs/devtron/internals/middleware"
"github.com/go-pg/pg"
_ "github.com/lib/pq"
"go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux"
Expand Down
933 changes: 5 additions & 928 deletions Wire.go

Large diffs are not rendered by default.

35 changes: 21 additions & 14 deletions api/appStore/InstalledAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"fmt"
client "github.com/devtron-labs/devtron/api/helm-app/gRPC"
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode"
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode/deploymentTypeChange"
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode/resource"
"github.com/devtron-labs/devtron/pkg/bean"
"net/http"
Expand All @@ -32,13 +33,12 @@ import (
"time"

bean2 "github.com/devtron-labs/devtron/api/bean"
openapi "github.com/devtron-labs/devtron/api/helm-app/openapiClient"
"github.com/devtron-labs/devtron/api/restHandler/common"
"github.com/devtron-labs/devtron/client/argocdServer/application"
"github.com/devtron-labs/devtron/client/cron"
"github.com/devtron-labs/devtron/internal/constants"
"github.com/devtron-labs/devtron/internal/middleware"
util2 "github.com/devtron-labs/devtron/internal/util"
"github.com/devtron-labs/devtron/internals/constants"
"github.com/devtron-labs/devtron/internals/middleware"
util2 "github.com/devtron-labs/devtron/internals/util"
app2 "github.com/devtron-labs/devtron/pkg/app"
appStoreBean "github.com/devtron-labs/devtron/pkg/appStore/bean"
"github.com/devtron-labs/devtron/pkg/appStore/chartGroup"
Expand Down Expand Up @@ -87,25 +87,27 @@ type InstalledAppRestHandlerImpl struct {
clusterService cluster.ClusterService
acdServiceClient application.ServiceClient
appStoreDeploymentService service.AppStoreDeploymentService
appStoreDeploymentDBService service.AppStoreDeploymentDBService
helmAppClient client.HelmAppClient
argoUserService argo.ArgoUserService
cdApplicationStatusUpdateHandler cron.CdApplicationStatusUpdateHandler
installedAppRepository repository.InstalledAppRepository
K8sApplicationService application2.K8sApplicationService
appCrudOperationService app2.AppCrudOperationService
installedAppDeploymentTypeChangeService FullMode.InstalledAppDeploymentTypeChangeService
installedAppDeploymentTypeChangeService deploymentTypeChange.InstalledAppDeploymentTypeChangeService
}

func NewInstalledAppRestHandlerImpl(Logger *zap.SugaredLogger, userAuthService user.UserService,
enforcer casbin.Enforcer, enforcerUtil rbac.EnforcerUtil, enforcerUtilHelm rbac.EnforcerUtilHelm,
installedAppService FullMode.InstalledAppDBExtendedService, installedAppResourceService resource.InstalledAppResourceService,
chartGroupService chartGroup.ChartGroupService, validator *validator.Validate, clusterService cluster.ClusterService,
acdServiceClient application.ServiceClient, appStoreDeploymentService service.AppStoreDeploymentService,
appStoreDeploymentDBService service.AppStoreDeploymentDBService,
helmAppClient client.HelmAppClient, argoUserService argo.ArgoUserService,
cdApplicationStatusUpdateHandler cron.CdApplicationStatusUpdateHandler,
installedAppRepository repository.InstalledAppRepository,
appCrudOperationService app2.AppCrudOperationService,
installedAppDeploymentTypeChangeService FullMode.InstalledAppDeploymentTypeChangeService) *InstalledAppRestHandlerImpl {
installedAppDeploymentTypeChangeService deploymentTypeChange.InstalledAppDeploymentTypeChangeService) *InstalledAppRestHandlerImpl {
return &InstalledAppRestHandlerImpl{
Logger: Logger,
userAuthService: userAuthService,
Expand All @@ -119,6 +121,7 @@ func NewInstalledAppRestHandlerImpl(Logger *zap.SugaredLogger, userAuthService u
clusterService: clusterService,
acdServiceClient: acdServiceClient,
appStoreDeploymentService: appStoreDeploymentService,
appStoreDeploymentDBService: appStoreDeploymentDBService,
helmAppClient: helmAppClient,
argoUserService: argoUserService,
cdApplicationStatusUpdateHandler: cdApplicationStatusUpdateHandler,
Expand All @@ -143,7 +146,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppOverview(w http.ResponseWrit
}
token := r.Header.Get("token")
handler.Logger.Infow("request payload, FindAppOverview", "installedAppId", installedAppId)
installedApp, err := handler.installedAppService.CheckAppExistsByInstalledAppId(installedAppId)
installedApp, err := handler.installedAppService.GetInstalledAppById(installedAppId)
appOverview, err := handler.appCrudOperationService.GetAppMetaInfo(installedApp.AppId, installedAppId, installedApp.EnvironmentId)
if err != nil {
handler.Logger.Errorw("service err, FetchAppOverview", "err", err, "appId", installedApp.AppId, "installedAppId", installedAppId)
Expand Down Expand Up @@ -266,7 +269,7 @@ func (handler InstalledAppRestHandlerImpl) GetAllInstalledApp(w http.ResponseWri
return
}

appIdToAppMap := make(map[string]openapi.HelmApp)
appIdToAppMap := make(map[string]appStoreBean.HelmAppDetails)

//the value of this map is array of strings because the GetHelmObjectByAppNameAndEnvId method may return "//" for error cases
//so different apps may contain same object, to handle that we are using (map[string] []string)
Expand Down Expand Up @@ -322,7 +325,7 @@ func (handler InstalledAppRestHandlerImpl) GetAllInstalledApp(w http.ResponseWri
}
}

authorizedApps := make([]openapi.HelmApp, 0)
authorizedApps := make([]appStoreBean.HelmAppDetails, 0)
for appId, _ := range authorizedAppIdSet {
authorizedApp := appIdToAppMap[appId]
authorizedApps = append(authorizedApps, authorizedApp)
Expand Down Expand Up @@ -373,7 +376,7 @@ func (handler *InstalledAppRestHandlerImpl) DeployBulk(w http.ResponseWriter, r
} else {
visited[item.AppName] = true
}
isChartRepoActive, err := handler.appStoreDeploymentService.IsChartRepoActive(item.AppStoreVersion)
isChartRepoActive, err := handler.appStoreDeploymentDBService.IsChartProviderActive(item.AppStoreVersion)
if err != nil {
handler.Logger.Errorw("service err, CreateInstalledApp", "err", err, "payload", request)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
Expand Down Expand Up @@ -512,7 +515,7 @@ func (handler *InstalledAppRestHandlerImpl) DeleteArgoInstalledAppWithNonCascade
return
}
}
installedApp, err := handler.appStoreDeploymentService.GetInstalledApp(installedAppId)
installedApp, err := handler.appStoreDeploymentDBService.GetInstalledApp(installedAppId)
if err != nil {
handler.Logger.Error("request err, NonCascadeDeleteCdPipeline", "err", err)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
Expand Down Expand Up @@ -596,7 +599,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppDetailsForInstalledApp(w htt
}
handler.Logger.Infow("request payload, FetchAppDetailsForInstalledApp, app store", "installedAppId", installedAppId, "envId", envId)

installedApp, err := handler.installedAppService.CheckAppExistsByInstalledAppId(installedAppId)
installedApp, err := handler.installedAppService.GetInstalledAppById(installedAppId)
if err == pg.ErrNoRows {
common.WriteJsonResp(w, err, "App not found in database", http.StatusBadRequest)
return
Expand Down Expand Up @@ -717,11 +720,15 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
return
}
handler.Logger.Infow("request payload, FetchAppDetailsForInstalledAppV2, app store", "installedAppId", installedAppId, "envId", envId)
installedApp, err := handler.installedAppService.CheckAppExistsByInstalledAppId(installedAppId)
installedApp, err := handler.installedAppService.GetInstalledAppById(installedAppId)
if err == pg.ErrNoRows {
common.WriteJsonResp(w, err, "App not found in database", http.StatusBadRequest)
return
}
if installedApp.Environment.IsVirtualEnvironment {
common.WriteJsonResp(w, nil, nil, http.StatusOK)
return
}
token := r.Header.Get("token")
object, object2 := handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(installedApp.App.AppName, installedApp.EnvironmentId)
var ok bool
Expand Down Expand Up @@ -752,7 +759,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
apiError, ok := err.(*util2.ApiError)
if ok && apiError != nil {
if apiError.Code == constants.AppDetailResourceTreeNotFound && installedApp.DeploymentAppDeleteRequest == true {
// TODO refactoring: should be performed in go routine
// TODO refactoring: should be performed through nats
err = handler.appStoreDeploymentService.MarkGitOpsInstalledAppsDeletedIfArgoAppIsDeleted(installedAppId, envId)
appDeleteErr, appDeleteErrOk := err.(*util2.ApiError)
if appDeleteErrOk && appDeleteErr != nil {
Expand Down
27 changes: 27 additions & 0 deletions api/appStore/appStoreWireSet.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package appStore

import (
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service"
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/EAMode"
appStoreDeploymentCommon "github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/common"
"github.com/google/wire"
)

var AppStoreCommonWireSetEA = wire.NewSet(
service.NewAppStoreDeploymentDBServiceImpl,
wire.Bind(new(service.AppStoreDeploymentDBService), new(*service.AppStoreDeploymentDBServiceImpl)),
service.NewAppStoreDeploymentServiceImpl,
wire.Bind(new(service.AppStoreDeploymentService), new(*service.AppStoreDeploymentServiceImpl)),
service.NewDeletePostProcessorImpl,
wire.Bind(new(service.DeletePostProcessor), new(*service.DeletePostProcessorImpl)),
service.NewAppAppStoreValidatorImpl,
wire.Bind(new(service.AppStoreValidator), new(*service.AppStoreValidatorImpl)),
)

var AppStoreCommonWireSet = wire.NewSet(
AppStoreCommonWireSetEA,
appStoreDeploymentCommon.NewAppStoreDeploymentCommonServiceImpl,
wire.Bind(new(appStoreDeploymentCommon.AppStoreDeploymentCommonService), new(*appStoreDeploymentCommon.AppStoreDeploymentCommonServiceImpl)),
EAMode.NewEAModeDeploymentServiceImpl,
wire.Bind(new(EAMode.EAModeDeploymentService), new(*EAMode.EAModeDeploymentServiceImpl)),
)
Loading