Skip to content

Commit b758948

Browse files
authored
Merge pull request #6262 from devtron-labs/helm-type-pipeline-app-status
feat: Helm type pipeline app status
2 parents cb7f9ac + 384a769 commit b758948

35 files changed

+879
-614
lines changed

api/appStore/InstalledAppRestHandler.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"encoding/json"
2222
"errors"
2323
"fmt"
24+
bean2 "github.com/devtron-labs/devtron/api/bean/AppView"
2425
client "github.com/devtron-labs/devtron/api/helm-app/gRPC"
2526
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode"
2627
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode/deploymentTypeChange"
@@ -35,7 +36,6 @@ import (
3536
"strings"
3637
"time"
3738

38-
bean2 "github.com/devtron-labs/devtron/api/bean"
3939
"github.com/devtron-labs/devtron/api/restHandler/common"
4040
"github.com/devtron-labs/devtron/client/argocdServer/application"
4141
"github.com/devtron-labs/devtron/client/cron"

api/bean/AppView.go api/bean/AppView/AppView.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package bean
17+
package AppView
1818

1919
import (
2020
"encoding/json"

api/helm-app/gRPC/applicationClient.go

+13
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ type HelmAppClient interface {
3434
GetAppDetail(ctx context.Context, in *AppDetailRequest) (*AppDetail, error)
3535
GetResourceTreeForExternalResources(ctx context.Context, in *ExternalResourceTreeRequest) (*ResourceTreeResponse, error)
3636
GetAppStatus(ctx context.Context, in *AppDetailRequest) (*AppStatus, error)
37+
GetAppStatusV2(ctx context.Context, in *AppDetailRequest) (*AppStatus, error)
3738
Hibernate(ctx context.Context, in *HibernateRequest) (*HibernateResponse, error)
3839
UnHibernate(ctx context.Context, in *HibernateRequest) (*HibernateResponse, error)
3940
GetDeploymentHistory(ctx context.Context, in *AppDetailRequest) (*HelmAppDeploymentHistory, error)
@@ -164,6 +165,18 @@ func (impl *HelmAppClientImpl) GetAppStatus(ctx context.Context, in *AppDetailRe
164165
return appStatus, nil
165166
}
166167

168+
func (impl *HelmAppClientImpl) GetAppStatusV2(ctx context.Context, in *AppDetailRequest) (*AppStatus, error) {
169+
applicationClient, err := impl.getApplicationClient()
170+
if err != nil {
171+
return nil, err
172+
}
173+
appStatus, err := applicationClient.GetAppStatusV2(ctx, in)
174+
if err != nil {
175+
return nil, err
176+
}
177+
return appStatus, nil
178+
}
179+
167180
func (impl *HelmAppClientImpl) Hibernate(ctx context.Context, in *HibernateRequest) (*HibernateResponse, error) {
168181
applicationClient, err := impl.getApplicationClient()
169182
if err != nil {

api/helm-app/gRPC/applist.pb.go

+149-144
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/helm-app/gRPC/applist.proto

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ service ApplicationService {
2424
rpc ListFluxApplications(AppListRequest) returns (stream FluxApplicationList){}
2525
rpc GetAppDetail(AppDetailRequest) returns (AppDetail){}
2626
rpc GetAppStatus(AppDetailRequest) returns (AppStatus){}
27+
rpc GetAppStatusV2(AppDetailRequest) returns (AppStatus){}
2728
rpc Hibernate(HibernateRequest) returns (HibernateResponse){}
2829
rpc UnHibernate(HibernateRequest) returns (HibernateResponse){}
2930
rpc GetDeploymentHistory(AppDetailRequest) returns (HelmAppDeploymentHistory){}

api/helm-app/gRPC/applist_grpc.pb.go

+36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/helm-app/service/HelmAppService.go

+22-9
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ type HelmAppService interface {
9494
GetRevisionHistoryMaxValue(appType bean.SourceAppType) int32
9595
GetResourceTreeForExternalResources(ctx context.Context, clusterId int, clusterConfig *gRPC.ClusterConfig, resources []*gRPC.ExternalResourceDetail) (*gRPC.ResourceTreeResponse, error)
9696
CheckIfNsExistsForClusterIds(clusterIdToNsMap map[int]string) error
97+
98+
GetAppStatusV2(ctx context.Context, req *gRPC.AppDetailRequest, clusterId int) (*gRPC.AppStatus, error)
9799
}
98100

99101
type HelmAppServiceImpl struct {
@@ -175,7 +177,7 @@ func (impl *HelmAppServiceImpl) ListHelmApplications(ctx context.Context, cluste
175177
http.StatusInternalServerError)
176178
return
177179
}
178-
180+
179181
// get helm apps which are created using cd_pipelines
180182
newCtx, span := otel.Tracer("pipelineRepository").Start(ctx, "GetAppAndEnvDetailsForDeploymentAppTypePipeline")
181183
start = time.Now()
@@ -244,18 +246,18 @@ func (impl *HelmAppServiceImpl) UnHibernateApplication(ctx context.Context, app
244246
}
245247

246248
func (impl *HelmAppServiceImpl) GetApplicationDetail(ctx context.Context, app *helmBean.AppIdentifier) (*gRPC.AppDetail, error) {
247-
return impl.getApplicationDetail(ctx, app, nil)
249+
return impl.getApplicationDetailWithInstallerStatus(ctx, app, nil)
248250
}
249251

250252
func (impl *HelmAppServiceImpl) GetApplicationAndReleaseStatus(ctx context.Context, app *helmBean.AppIdentifier) (*gRPC.AppStatus, error) {
251253
return impl.getApplicationAndReleaseStatus(ctx, app)
252254
}
253255

254256
func (impl *HelmAppServiceImpl) GetApplicationDetailWithFilter(ctx context.Context, app *helmBean.AppIdentifier, resourceTreeFilter *gRPC.ResourceTreeFilter) (*gRPC.AppDetail, error) {
255-
return impl.getApplicationDetail(ctx, app, resourceTreeFilter)
257+
return impl.getApplicationDetailWithInstallerStatus(ctx, app, resourceTreeFilter)
256258
}
257259

258-
func (impl *HelmAppServiceImpl) getApplicationDetail(ctx context.Context, app *helmBean.AppIdentifier, resourceTreeFilter *gRPC.ResourceTreeFilter) (*gRPC.AppDetail, error) {
260+
func (impl *HelmAppServiceImpl) getApplicationDetailWithInstallerStatus(ctx context.Context, app *helmBean.AppIdentifier, resourceTreeFilter *gRPC.ResourceTreeFilter) (*gRPC.AppDetail, error) {
259261
config, err := impl.helmAppReadService.GetClusterConf(app.ClusterId)
260262
if err != nil {
261263
impl.logger.Errorw("error in fetching cluster detail", "err", err)
@@ -267,7 +269,7 @@ func (impl *HelmAppServiceImpl) getApplicationDetail(ctx context.Context, app *h
267269
ReleaseName: app.ReleaseName,
268270
ResourceTreeFilter: resourceTreeFilter,
269271
}
270-
appdetail, err := impl.helmAppClient.GetAppDetail(ctx, req)
272+
appDetail, err := impl.getAppDetail(ctx, req)
271273
if err != nil {
272274
impl.logger.Errorw("error in fetching app detail", "err", err)
273275
return nil, err
@@ -281,14 +283,24 @@ func (impl *HelmAppServiceImpl) getApplicationDetail(ctx context.Context, app *h
281283
impl.serverDataStore.InstallerCrdObjectExists {
282284
if impl.serverDataStore.InstallerCrdObjectStatus != serverBean.InstallerCrdObjectStatusApplied {
283285
// if timeout
284-
if time.Now().After(appdetail.GetLastDeployed().AsTime().Add(1 * time.Hour)) {
285-
appdetail.ApplicationStatus = serverBean.AppHealthStatusDegraded
286+
if time.Now().After(appDetail.GetLastDeployed().AsTime().Add(1 * time.Hour)) {
287+
appDetail.ApplicationStatus = serverBean.AppHealthStatusDegraded
286288
} else {
287-
appdetail.ApplicationStatus = serverBean.AppHealthStatusProgressing
289+
appDetail.ApplicationStatus = serverBean.AppHealthStatusProgressing
288290
}
289291
}
290292
}
291-
return appdetail, err
293+
return appDetail, err
294+
}
295+
296+
func (impl *HelmAppServiceImpl) getAppDetail(ctx context.Context, req *gRPC.AppDetailRequest) (*gRPC.AppDetail, error) {
297+
impl.updateAppDetailRequestWithCacheConfig(req)
298+
appDetail, err := impl.helmAppClient.GetAppDetail(ctx, req)
299+
if err != nil {
300+
impl.logger.Errorw("error in fetching app detail", "payload", req, "err", err)
301+
return nil, err
302+
}
303+
return appDetail, nil
292304
}
293305

294306
func (impl *HelmAppServiceImpl) GetResourceTreeForExternalResources(ctx context.Context, clusterId int,
@@ -308,6 +320,7 @@ func (impl *HelmAppServiceImpl) GetResourceTreeForExternalResources(ctx context.
308320
ClusterConfig: config,
309321
ExternalResourceDetail: resources,
310322
}
323+
impl.updateExternalResTreeRequestWithCacheConfig(clusterId, req)
311324
return impl.helmAppClient.GetResourceTreeForExternalResources(ctx, req)
312325
}
313326

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package service
2+
3+
import (
4+
"context"
5+
"github.com/devtron-labs/devtron/api/helm-app/gRPC"
6+
)
7+
8+
func (impl *HelmAppServiceImpl) GetAppStatusV2(ctx context.Context, req *gRPC.AppDetailRequest, clusterId int) (*gRPC.AppStatus, error) {
9+
return nil, nil
10+
}
11+
12+
func (impl *HelmAppServiceImpl) updateAppDetailRequestWithCacheConfig(req *gRPC.AppDetailRequest) {
13+
return
14+
}
15+
16+
func (impl *HelmAppServiceImpl) updateExternalResTreeRequestWithCacheConfig(clusterId int, req *gRPC.ExternalResourceTreeRequest) {
17+
return
18+
}

api/k8s/application/k8sApplicationRestHandler.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727
util3 "github.com/devtron-labs/common-lib/utils/k8s"
2828
k8sCommonBean "github.com/devtron-labs/common-lib/utils/k8s/commonBean"
2929
"github.com/devtron-labs/common-lib/utils/k8sObjectsUtil"
30-
"github.com/devtron-labs/devtron/api/bean"
30+
"github.com/devtron-labs/devtron/api/bean/AppView"
3131
"github.com/devtron-labs/devtron/api/connector"
3232
"github.com/devtron-labs/devtron/api/helm-app/gRPC"
3333
client "github.com/devtron-labs/devtron/api/helm-app/service"
@@ -253,7 +253,7 @@ func (handler *K8sApplicationRestHandlerImpl) GetHostUrlsByBatch(w http.Response
253253
}
254254

255255
token := r.Header.Get("token")
256-
var k8sAppDetail bean.AppDetailContainer
256+
var k8sAppDetail AppView.AppDetailContainer
257257
var resourceTreeResponse *gRPC.ResourceTreeResponse
258258
var clusterId int
259259
var namespace string
@@ -344,8 +344,8 @@ func (handler *K8sApplicationRestHandlerImpl) GetHostUrlsByBatch(w http.Response
344344
resourceTreeResponse = appDetail.ResourceTreeResponse
345345
}
346346

347-
k8sAppDetail = bean.AppDetailContainer{
348-
DeploymentDetailContainer: bean.DeploymentDetailContainer{
347+
k8sAppDetail = AppView.AppDetailContainer{
348+
DeploymentDetailContainer: AppView.DeploymentDetailContainer{
349349
ClusterId: clusterId,
350350
Namespace: namespace,
351351
},

0 commit comments

Comments
 (0)