Skip to content

Commit 915d146

Browse files
author
Gabriel
authored
fix: [CDS-42790]: add scoping to cluster list (#37238)
* add MR link * Merge branch 'develop' of https://github.com/harness/harness-core into develop * Merge branch 'develop' of https://github.com/harness/harness-core into develop * Merge branch 'develop' of https://github.com/harness/harness-core into develop * Merge branch 'develop' of https://github.com/harness/harness-core into develop * Merge branch 'develop' of https://github.com/harness/harness-core into develop * Merge branch 'develop' of https://github.com/harness/harness-core into develop * Merge branch 'develop' of https://github.com/harness/harness-core into develop * add deleteSourceBranch by default false * Merge branch 'develop' of https://github.com/harness/harness-core into feat_CDS-40391_deleteSourceBranch * Merge branch 'develop' of https://github.com/harness/harness-core into feat_CDS-40391_deleteSourceBranch * first commit * clean code * fmt * rm unused imports * fix project * handle nil pointer
1 parent 5d8e805 commit 915d146

3 files changed

Lines changed: 42 additions & 11 deletions

File tree

120-ng-manager/src/main/java/io/harness/ng/gitops/resource/ClusterResource.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ public class ClusterResource {
281281
checkForAccessOrThrow(
282282
accountId, orgIdentifier, projectIdentifier, envIdentifier, ENVIRONMENT_VIEW_PERMISSION, "list");
283283

284+
// NG Clusters
284285
Page<Cluster> entities = clusterService.list(
285286
page, size, accountId, orgIdentifier, projectIdentifier, envIdentifier, searchTerm, identifiers, sort);
286287

@@ -294,7 +295,9 @@ public class ClusterResource {
294295
Map<String, ClusterFromGitops> allClusters =
295296
Stream.of(accountLevelClusters.getContent(), projectLevelClusters.getContent())
296297
.flatMap(List::stream)
297-
.collect(Collectors.toMap(e -> e.getIdentifier(), Function.identity(), (c1, c2) -> c1));
298+
.collect(Collectors.toMap(e
299+
-> e.getScopeLevel().toString().toLowerCase() + "." + e.getIdentifier(),
300+
Function.identity(), (c1, c2) -> c1));
298301
return ResponseDTO.newResponse(getNGPageResponse(entities.map(e -> ClusterEntityMapper.writeDTO(e, allClusters))));
299302
}
300303

127-cd-nextgen-entities/src/main/java/io/harness/cdng/gitops/beans/ClusterResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public class ClusterResponse {
3333
@EntityIdentifier @Schema(description = "identifier of the gitops cluster") String clusterRef;
3434
@Schema(description = "organization identifier of the cluster") String orgIdentifier;
3535
@Schema(description = "project identifier of the cluster") String projectIdentifier;
36+
@Schema(description = "account identifier of the cluster") String accountIdentifier;
3637
@Schema(description = "environment identifier of the cluster") @NotEmpty String envRef;
3738
@Schema(description = "time at which the cluster was linked") Long linkedAt;
3839
@Schema(description = "scope at which the cluster exists in harness gitops, project vs org vs account")

127-cd-nextgen-entities/src/main/java/io/harness/cdng/gitops/mappers/ClusterEntityMapper.java

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,44 @@ public ClusterResponse writeDTO(Cluster cluster) {
8181
}
8282

8383
public ClusterResponse writeDTO(Cluster cluster, Map<String, ClusterFromGitops> clusterFromGitops) {
84-
final ScopeAndRef scopeFromClusterRef = getScopeFromClusterRef(cluster.getClusterRef());
84+
String clusterRef = cluster.getClusterRef().toLowerCase();
85+
ClusterFromGitops gitOpsCluster = clusterFromGitops.getOrDefault(clusterRef, ClusterFromGitops.builder().build());
86+
final ScopeAndRef scopeFromClusterRef = getScopeFromClusterRef(clusterRef);
8587

86-
return ClusterResponse.builder()
87-
.name(clusterFromGitops.get(cluster.getClusterRef()).getName())
88-
.orgIdentifier(cluster.getOrgIdentifier())
89-
.projectIdentifier(cluster.getProjectIdentifier())
90-
.clusterRef(scopeFromClusterRef.getOriginalRef())
91-
.scope(scopeFromClusterRef.getScope())
92-
.envRef(cluster.getEnvRef())
93-
.linkedAt(cluster.getCreatedAt())
94-
.build();
88+
switch (scopeFromClusterRef.getScope()) {
89+
case PROJECT:
90+
return ClusterResponse.builder()
91+
.name(
92+
clusterFromGitops.getOrDefault("project." + clusterRef, ClusterFromGitops.builder().build()).getName())
93+
.orgIdentifier(cluster.getOrgIdentifier())
94+
.projectIdentifier(cluster.getProjectIdentifier())
95+
.clusterRef(scopeFromClusterRef.getOriginalRef())
96+
.scope(scopeFromClusterRef.getScope())
97+
.envRef(cluster.getEnvRef())
98+
.linkedAt(cluster.getCreatedAt())
99+
.build();
100+
case ACCOUNT:
101+
return ClusterResponse.builder()
102+
.name(gitOpsCluster.getName())
103+
.clusterRef(scopeFromClusterRef.getOriginalRef())
104+
.accountIdentifier(cluster.getAccountId())
105+
.scope(scopeFromClusterRef.getScope())
106+
.envRef(cluster.getEnvRef())
107+
.linkedAt(cluster.getCreatedAt())
108+
.build();
109+
case ORGANIZATION:
110+
return ClusterResponse.builder()
111+
.name(gitOpsCluster.getName())
112+
.orgIdentifier(cluster.getOrgIdentifier())
113+
.accountIdentifier(cluster.getAccountId())
114+
.clusterRef(scopeFromClusterRef.getOriginalRef())
115+
.scope(scopeFromClusterRef.getScope())
116+
.envRef(cluster.getEnvRef())
117+
.linkedAt(cluster.getCreatedAt())
118+
.build();
119+
default:
120+
throw new InvalidRequestException("Invalid cluster reference %s:" + clusterRef);
121+
}
95122
}
96123

97124
public ClusterFromGitops writeDTO(ScopeLevel scopeLevel, io.harness.gitops.models.Cluster cluster) {

0 commit comments

Comments
 (0)