@@ -49,7 +49,6 @@ import (
4949 "github.com/devtron-labs/devtron/pkg/auth/authorisation/casbin"
5050 "github.com/devtron-labs/devtron/pkg/auth/user"
5151 "github.com/devtron-labs/devtron/pkg/cluster"
52- bean3 "github.com/devtron-labs/devtron/pkg/deployment/common/bean"
5352 "github.com/devtron-labs/devtron/util"
5453 "github.com/devtron-labs/devtron/util/argo"
5554 "github.com/devtron-labs/devtron/util/rbac"
@@ -65,7 +64,6 @@ type InstalledAppRestHandler interface {
6564 DeployBulk (w http.ResponseWriter , r * http.Request )
6665 CheckAppExists (w http.ResponseWriter , r * http.Request )
6766 DefaultComponentInstallation (w http.ResponseWriter , r * http.Request )
68- FetchAppDetailsForInstalledApp (w http.ResponseWriter , r * http.Request )
6967 DeleteArgoInstalledAppWithNonCascade (w http.ResponseWriter , r * http.Request )
7068 FetchAppDetailsForInstalledAppV2 (w http.ResponseWriter , r * http.Request )
7169 FetchResourceTree (w http.ResponseWriter , r * http.Request )
@@ -692,90 +690,6 @@ func (handler *InstalledAppRestHandlerImpl) checkNotesAuth(token string, appName
692690 return ok
693691}
694692
695- func (handler * InstalledAppRestHandlerImpl ) FetchAppDetailsForInstalledApp (w http.ResponseWriter , r * http.Request ) {
696- userId , err := handler .userAuthService .GetLoggedInUser (r )
697- if userId == 0 || err != nil {
698- common .WriteJsonResp (w , err , nil , http .StatusUnauthorized )
699- return
700- }
701-
702- vars := mux .Vars (r )
703- installedAppId , err := strconv .Atoi (vars ["installed-app-id" ])
704- if err != nil {
705- handler .Logger .Errorw ("request err, FetchAppDetailsForInstalledApp" , "err" , err , "installedAppId" , installedAppId )
706- common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
707- return
708- }
709- token := r .Header .Get ("token" )
710- envId , err := strconv .Atoi (vars ["env-id" ])
711- if err != nil {
712- handler .Logger .Errorw ("request err, FetchAppDetailsForInstalledApp" , "err" , err , "installedAppId" , installedAppId , "envId" , envId )
713- common .WriteJsonResp (w , err , nil , http .StatusBadRequest )
714- return
715- }
716- handler .Logger .Infow ("request payload, FetchAppDetailsForInstalledApp, app store" , "installedAppId" , installedAppId , "envId" , envId )
717-
718- installedApp , err := handler .installedAppService .GetInstalledAppById (installedAppId )
719- if err == pg .ErrNoRows {
720- common .WriteJsonResp (w , err , "App not found in database" , http .StatusBadRequest )
721- return
722- }
723- if util3 .IsExternalChartStoreApp (installedApp .App .DisplayName ) {
724- //this is external app case where app_name is a unique identifier, and we want to fetch resource based on display_name
725- handler .installedAppService .ChangeAppNameToDisplayNameForInstalledApp (installedApp )
726- }
727-
728- appDetail , err := handler .installedAppService .FindAppDetailsForAppstoreApplication (installedAppId , envId )
729- if err != nil {
730- handler .Logger .Errorw ("service err, FetchAppDetailsForInstalledApp, app store" , "err" , err , "installedAppId" , installedAppId , "envId" , envId )
731- common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
732- return
733- }
734-
735- //rbac block starts from here
736- object , object2 := handler .enforcerUtil .GetHelmObjectByAppNameAndEnvId (appDetail .AppName , appDetail .EnvironmentId )
737-
738- var ok bool
739-
740- if object2 == "" {
741- ok = handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionGet , object )
742- } else {
743- ok = handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionGet , object ) || handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionGet , object2 )
744- }
745-
746- if ! ok {
747- common .WriteJsonResp (w , fmt .Errorf ("unauthorized user" ), nil , http .StatusForbidden )
748- return
749- }
750- //rback block ends here
751- resourceTreeAndNotesContainer := bean2.AppDetailsContainer {}
752- resourceTreeAndNotesContainer .ResourceTree = map [string ]interface {}{}
753-
754- if len (installedApp .App .AppName ) > 0 && len (installedApp .Environment .Name ) > 0 {
755- err = handler .fetchResourceTree (w , r , & resourceTreeAndNotesContainer , * installedApp , appDetail .DeploymentConfig , "" , "" )
756- if appDetail .DeploymentAppType == util2 .PIPELINE_DEPLOYMENT_TYPE_ACD {
757- apiError , ok := err .(* util2.ApiError )
758- if ok && apiError != nil {
759- if apiError .Code == constants .AppDetailResourceTreeNotFound && installedApp .DeploymentAppDeleteRequest == true {
760- // TODO refactoring: should be performed through nats
761- err = handler .appStoreDeploymentService .MarkGitOpsInstalledAppsDeletedIfArgoAppIsDeleted (installedAppId , envId )
762- appDeleteErr , appDeleteErrOk := err .(* util2.ApiError )
763- if appDeleteErrOk && appDeleteErr != nil {
764- handler .Logger .Errorw (appDeleteErr .InternalMessage )
765- return
766- }
767- }
768- }
769- } else if err != nil {
770- common .WriteJsonResp (w , fmt .Errorf ("error in fetching resource tree" ), nil , http .StatusInternalServerError )
771- return
772- }
773- }
774- appDetail .ResourceTree = resourceTreeAndNotesContainer .ResourceTree
775- appDetail .Notes = resourceTreeAndNotesContainer .Notes
776- common .WriteJsonResp (w , nil , appDetail , http .StatusOK )
777- }
778-
779693func (handler * InstalledAppRestHandlerImpl ) FetchAppDetailsForInstalledAppV2 (w http.ResponseWriter , r * http.Request ) {
780694 userId , err := handler .userAuthService .GetLoggedInUser (r )
781695 if userId == 0 || err != nil {
@@ -820,6 +734,8 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppDetailsForInstalledAppV2(w h
820734}
821735
822736func (handler * InstalledAppRestHandlerImpl ) FetchResourceTree (w http.ResponseWriter , r * http.Request ) {
737+ token := r .Header .Get ("token" )
738+ ctx := context .WithValue (r .Context (), "token" , token )
823739 userId , err := handler .userAuthService .GetLoggedInUser (r )
824740 if userId == 0 || err != nil {
825741 common .WriteJsonResp (w , err , nil , http .StatusUnauthorized )
@@ -853,7 +769,6 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
853769 common .WriteJsonResp (w , nil , nil , http .StatusOK )
854770 return
855771 }
856- token := r .Header .Get ("token" )
857772 object , object2 := handler .enforcerUtil .GetHelmObjectByAppNameAndEnvId (installedApp .App .AppName , installedApp .EnvironmentId )
858773 var ok bool
859774 if object2 == "" {
@@ -876,7 +791,8 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
876791 resourceTreeAndNotesContainer .ResourceTree = map [string ]interface {}{}
877792
878793 if len (installedApp .App .AppName ) > 0 && len (installedApp .Environment .Name ) > 0 {
879- err = handler .fetchResourceTree (w , r , & resourceTreeAndNotesContainer , * installedApp , appDetail .DeploymentConfig , appDetail .HelmReleaseInstallStatus , appDetail .Status )
794+ cn , _ := w .(http.CloseNotifier )
795+ err = handler .installedAppResourceService .FetchResourceTree (ctx , cn , & resourceTreeAndNotesContainer , * installedApp , appDetail .DeploymentConfig , appDetail .HelmReleaseInstallStatus , appDetail .Status )
880796 if appDetail .DeploymentAppType == util2 .PIPELINE_DEPLOYMENT_TYPE_ACD {
881797 //resource tree has been fetched now prepare to sync application deployment status with this resource tree call
882798 handler .syncDeploymentStatusWithResourceTreeCall (appDetail )
@@ -968,13 +884,6 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTreeForACDApp(w http.Re
968884 common .WriteJsonResp (w , err , appDetail , http .StatusOK )
969885}
970886
971- func (handler * InstalledAppRestHandlerImpl ) fetchResourceTree (w http.ResponseWriter , r * http.Request , resourceTreeAndNotesContainer * bean2.AppDetailsContainer , installedApp repository.InstalledApps , deploymentConfig * bean3.DeploymentConfig , helmReleaseInstallStatus string , status string ) error {
972- ctx := r .Context ()
973- cn , _ := w .(http.CloseNotifier )
974- err := handler .installedAppResourceService .FetchResourceTree (ctx , cn , resourceTreeAndNotesContainer , installedApp , deploymentConfig , helmReleaseInstallStatus , status )
975- return err
976- }
977-
978887func (handler * InstalledAppRestHandlerImpl ) fetchResourceTreeWithHibernateForACD (w http.ResponseWriter , r * http.Request , appDetail * bean2.AppDetailContainer ) {
979888 ctx := r .Context ()
980889 cn , _ := w .(http.CloseNotifier )
0 commit comments