@@ -37,7 +37,7 @@ import (
37
37
38
38
type ArgoApplicationReadService interface {
39
39
ValidateArgoResourceRequest (ctx context.Context , appIdentifier * bean.ArgoAppIdentifier , request * k8s.K8sRequestBean ) (bool , error )
40
- GetAppDetail ( resourceName , resourceNamespace string , clusterId int ) (* bean.ArgoApplicationDetailDto , error )
40
+ GetAppDetailEA ( ctx context. Context , resourceName , resourceNamespace string , clusterId int ) (* bean.ArgoApplicationDetailDto , error )
41
41
GetArgoManagedResources (resourceName , resourceNamespace string , clusterConfig * k8s.ClusterConfig ) (* bean.ArgoManagedResourceResponse , error )
42
42
GetArgoAppResourceTree (clusterConfig * k8s.ClusterConfig , targetClusterId int , resp * bean.ArgoManagedResourceResponse ) (* gRPC.ResourceTreeResponse , error )
43
43
}
@@ -65,7 +65,7 @@ func NewArgoApplicationReadServiceImpl(logger *zap.SugaredLogger,
65
65
66
66
}
67
67
68
- func (impl * ArgoApplicationReadServiceImpl ) GetAppDetail ( resourceName , resourceNamespace string , clusterId int ) (* bean.ArgoApplicationDetailDto , error ) {
68
+ func (impl * ArgoApplicationReadServiceImpl ) GetAppDetailEA ( ctx context. Context , resourceName , resourceNamespace string , clusterId int ) (* bean.ArgoApplicationDetailDto , error ) {
69
69
appDetail := & bean.ArgoApplicationDetailDto {
70
70
ArgoApplicationListDto : & bean.ArgoApplicationListDto {
71
71
Name : resourceName ,
@@ -102,20 +102,24 @@ func (impl *ArgoApplicationReadServiceImpl) GetAppDetail(resourceName, resourceN
102
102
return nil , err
103
103
}
104
104
targetClusterId := 0
105
- if resp .DestinationServer == k8sCommonBean .DefaultClusterUrl {
106
- targetClusterId = clusterWithApplicationObject .Id
107
- } else if clusterIdFromMap , ok := clusterServerUrlIdMap [resp .DestinationServer ]; ok {
108
- targetClusterId = clusterIdFromMap
105
+ if len (resp .DestinationServer ) != 0 {
106
+ if resp .DestinationServer == k8sCommonBean .DefaultClusterUrl {
107
+ targetClusterId = clusterWithApplicationObject .Id
108
+ } else if clusterIdFromMap , ok := clusterServerUrlIdMap [resp .DestinationServer ]; ok {
109
+ targetClusterId = clusterIdFromMap
110
+ }
109
111
}
110
- appDetail .Manifest = resp .ManifestResponse .Manifest .Object
111
- appDetail .HealthStatus = resp .HealthStatus
112
- appDetail .SyncStatus = resp .SyncStatus
113
112
resourceTree , err := impl .GetArgoAppResourceTree (clusterConfig , targetClusterId , resp )
114
113
if err != nil {
115
114
impl .logger .Errorw ("error in getting argo app resource tree" , "err" , err )
116
115
return nil , err
117
116
}
118
117
appDetail .ResourceTree = resourceTree
118
+ if resp .ManifestResponse != nil {
119
+ appDetail .Manifest = resp .ManifestResponse .Manifest .Object
120
+ }
121
+ appDetail .HealthStatus = resp .HealthStatus
122
+ appDetail .SyncStatus = resp .SyncStatus
119
123
return appDetail , nil
120
124
}
121
125
@@ -227,7 +231,7 @@ func (impl *ArgoApplicationReadServiceImpl) getResourceTreeForExternalCluster(cl
227
231
}
228
232
229
233
func (impl * ArgoApplicationReadServiceImpl ) ValidateArgoResourceRequest (ctx context.Context , appIdentifier * bean.ArgoAppIdentifier , request * k8s.K8sRequestBean ) (bool , error ) {
230
- app , err := impl .GetAppDetail ( appIdentifier .AppName , appIdentifier .Namespace , appIdentifier .ClusterId )
234
+ app , err := impl .GetAppDetailEA ( ctx , appIdentifier .AppName , appIdentifier .Namespace , appIdentifier .ClusterId )
231
235
if err != nil {
232
236
impl .logger .Errorw ("error in getting app detail" , "err" , err , "appDetails" , appIdentifier )
233
237
apiError := clientErrors .ConvertToApiError (err )
@@ -257,39 +261,40 @@ func (impl *ArgoApplicationReadServiceImpl) ValidateArgoResourceRequest(ctx cont
257
261
appDetail := & gRPC.AppDetail {
258
262
ResourceTreeResponse : app .ResourceTree ,
259
263
}
260
- return validateContainerNameIfReqd (valid , request , appDetail ), nil
264
+ if ! valid {
265
+ valid = validateContainerName (request , appDetail )
266
+ }
267
+ return valid , nil
261
268
}
262
269
263
- func validateContainerNameIfReqd (valid bool , request * k8s.K8sRequestBean , app * gRPC.AppDetail ) bool {
264
- if ! valid {
265
- requestContainerName := request .PodLogsRequest .ContainerName
266
- podName := request .ResourceIdentifier .Name
267
- for _ , pod := range app .ResourceTreeResponse .PodMetadata {
268
- if pod .Name == podName {
270
+ func validateContainerName (request * k8s.K8sRequestBean , app * gRPC.AppDetail ) bool {
271
+ requestContainerName := request .PodLogsRequest .ContainerName
272
+ podName := request .ResourceIdentifier .Name
273
+ for _ , pod := range app .ResourceTreeResponse .PodMetadata {
274
+ if pod .Name == podName {
269
275
270
- // finding the container name in main Containers
271
- for _ , container := range pod .Containers {
272
- if container == requestContainerName {
273
- return true
274
- }
276
+ // finding the container name in main Containers
277
+ for _ , container := range pod .Containers {
278
+ if container == requestContainerName {
279
+ return true
275
280
}
281
+ }
276
282
277
- // finding the container name in init containers
278
- for _ , initContainer := range pod .InitContainers {
279
- if initContainer == requestContainerName {
280
- return true
281
- }
283
+ // finding the container name in init containers
284
+ for _ , initContainer := range pod .InitContainers {
285
+ if initContainer == requestContainerName {
286
+ return true
282
287
}
288
+ }
283
289
284
- // finding the container name in ephemeral containers
285
- for _ , ephemeralContainer := range pod .EphemeralContainers {
286
- if ephemeralContainer .Name == requestContainerName {
287
- return true
288
- }
290
+ // finding the container name in ephemeral containers
291
+ for _ , ephemeralContainer := range pod .EphemeralContainers {
292
+ if ephemeralContainer .Name == requestContainerName {
293
+ return true
289
294
}
290
-
291
295
}
296
+
292
297
}
293
298
}
294
- return valid
299
+ return false
295
300
}
0 commit comments