Skip to content

Commit c1fa7e1

Browse files
giosava94lgiommi
andauthored
Fix getCMDBDataUpdate function (#52)
* chore: Add new function to update deployment * Formatting code * Fix errors after jacoco verify * fix region name in request to fedreg * change Jenkins worker to 01 --------- Co-authored-by: Luca Giommi <[email protected]>
1 parent bb98e7d commit c1fa7e1

File tree

5 files changed

+59
-20
lines changed

5 files changed

+59
-20
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
pipeline {
22

33
agent {
4-
node { label 'jenkinsworker00' }
4+
node { label 'jenkinsworker01' }
55
}
66

77
environment {

src/main/java/it/reply/orchestrator/service/AbstractCmdbServiceImpl.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717

1818
package it.reply.orchestrator.service;
1919

20+
import com.google.common.collect.Sets;
21+
import it.reply.orchestrator.dal.entity.Deployment;
22+
import it.reply.orchestrator.dto.CloudProviderEndpoint;
2023
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
2124
import it.reply.orchestrator.dto.cmdb.CloudProvider;
2225
import it.reply.orchestrator.dto.cmdb.CloudService;
@@ -85,4 +88,14 @@ public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servic
8588
provider.setServices(services);
8689
return provider;
8790
}
91+
92+
@Override
93+
public CloudProvider getUpdatedCloudProviderInfo(Deployment deployment, String organisation,
94+
RankCloudProvidersMessage rankCloudProvidersMessage) {
95+
String cloudProviderId = deployment.getCloudProviderName();
96+
CloudProviderEndpoint cloudProviderEndpoint = deployment.getCloudProviderEndpoint();
97+
Set<String> servicesWithSla = Sets.newHashSet(cloudProviderEndpoint.getCpComputeServiceId());
98+
return fillCloudProviderInfo(cloudProviderId, servicesWithSla, organisation,
99+
rankCloudProvidersMessage);
100+
}
88101
}

src/main/java/it/reply/orchestrator/service/CmdbService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package it.reply.orchestrator.service;
1919

20+
import it.reply.orchestrator.dal.entity.Deployment;
2021
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
2122
import it.reply.orchestrator.dto.cmdb.CloudProvider;
2223
import it.reply.orchestrator.dto.cmdb.CloudService;
@@ -51,4 +52,7 @@ public interface CmdbService {
5152
public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servicesWithSla,
5253
String organisation, RankCloudProvidersMessage rankCloudProvidersMessage);
5354

55+
public CloudProvider getUpdatedCloudProviderInfo(Deployment deployment, String organisation,
56+
RankCloudProvidersMessage rankCloudProvidersMessage);
57+
5458
}

src/main/java/it/reply/orchestrator/service/CmdbServiceV2Impl.java

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import it.reply.orchestrator.annotation.ServiceVersion;
2121
import it.reply.orchestrator.config.properties.CmdbProperties;
22+
import it.reply.orchestrator.dal.entity.Deployment;
2223
import it.reply.orchestrator.dal.entity.OidcTokenId;
2324
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
2425
import it.reply.orchestrator.dto.cmdb.CloudProvider;
@@ -48,6 +49,7 @@
4849
import java.util.HashMap;
4950
import java.util.List;
5051
import java.util.Objects;
52+
import java.util.Optional;
5153
import java.util.Set;
5254
import java.util.concurrent.atomic.AtomicReference;
5355
import java.util.stream.Collectors;
@@ -449,14 +451,13 @@ private CloudProvider remapAttributes(Project project) {
449451
@Override
450452
public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servicesWithSla,
451453
String organisation, RankCloudProvidersMessage rankCloudProvidersMessage) {
452-
453454
OidcTokenId requestedWithToken = rankCloudProvidersMessage.getRequestedWithToken();
455+
String userGroup =
456+
rankCloudProvidersMessage.getSlamPreferences().getPreferences().get(0).getCustomer();
454457

455458
URI requestUriFedRegProject = UriComponentsBuilder
456459
.fromHttpUrl(cmdbProperties.getUrl() + cmdbProperties.getTenantsListPath())
457-
.queryParam("with_conn", true)
458-
.queryParam("user_group_uid",
459-
rankCloudProvidersMessage.getSlamPreferences().getPreferences().get(0).getCustomer())
460+
.queryParam("with_conn", true).queryParam("user_group_uid", userGroup)
460461
.queryParam("provider_uid", providerId).build().normalize().toUri();
461462

462463
List<Project> projectCall =
@@ -472,4 +473,29 @@ public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servic
472473
return remapAttributes(projectCall.get(0));
473474
}
474475

476+
@Override
477+
public CloudProvider getUpdatedCloudProviderInfo(Deployment deployment, String organisation,
478+
RankCloudProvidersMessage rankCloudProvidersMessage) {
479+
OidcTokenId requestedWithToken = rankCloudProvidersMessage.getRequestedWithToken();
480+
Optional<String> regionName = deployment.getCloudProviderEndpoint().getRegion();
481+
String identityServiceEndpoint = deployment.getCloudProviderEndpoint().getCpEndpoint();
482+
483+
URI requestUriFedRegProject = UriComponentsBuilder
484+
.fromHttpUrl(cmdbProperties.getUrl() + cmdbProperties.getTenantsListPath())
485+
.queryParam("with_conn", true).queryParam("region_name", regionName.orElseGet(() -> null))
486+
.queryParam("identity_service_endpoint", identityServiceEndpoint).build().normalize()
487+
.toUri();
488+
489+
List<Project> projectCall =
490+
oauth2TokenService.executeWithClientForResult(requestedWithToken, accessToken -> {
491+
HeadersBuilder<?> requestBuilder = RequestEntity.get(requestUriFedRegProject);
492+
if (accessToken != null) {
493+
requestBuilder.header(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken);
494+
}
495+
return restTemplate.exchange(requestBuilder.build(),
496+
new ParameterizedTypeReference<List<Project>>() {});
497+
}, OAuth2TokenService.restTemplateTokenRefreshEvaluator).getBody();
498+
499+
return remapAttributes(projectCall.get(0));
500+
}
475501
}

src/main/java/it/reply/orchestrator/service/commands/GetCmdbDataUpdate.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@
1717

1818
package it.reply.orchestrator.service.commands;
1919

20-
import com.google.common.collect.Sets;
2120
import it.reply.orchestrator.dal.entity.Deployment;
2221
import it.reply.orchestrator.dal.entity.OidcTokenId;
23-
import it.reply.orchestrator.dto.CloudProviderEndpoint;
2422
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
2523
import it.reply.orchestrator.dto.cmdb.CloudProvider;
2624
import it.reply.orchestrator.dto.deployment.DeploymentMessage;
@@ -30,7 +28,6 @@
3028
import it.reply.orchestrator.service.security.OAuth2TokenService;
3129
import it.reply.orchestrator.utils.WorkflowConstants;
3230
import java.util.Optional;
33-
import java.util.Set;
3431
import java.util.stream.Collectors;
3532
import org.flowable.engine.delegate.DelegateExecution;
3633
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,24 +44,23 @@ public class GetCmdbDataUpdate extends BaseDeployCommand {
4744

4845
@Override
4946
public void execute(DelegateExecution execution, DeploymentMessage deploymentMessage) {
50-
OidcTokenId requestedWithToken = deploymentMessage.getRequestedWithToken();
5147
Deployment deployment = getDeployment(deploymentMessage);
52-
CloudProviderEndpoint cloudProviderEndpoint = deployment.getCloudProviderEndpoint();
53-
String cloudProviderId = deployment.getCloudProviderName();
54-
Set<String> serviceWithSla = Sets.newHashSet(cloudProviderEndpoint.getCpComputeServiceId());
55-
//String organisation = oauth2TokenService.getOrganization(
56-
// deploymentMessage.getRequestedWithToken());
48+
deploymentMessage.setChosenCloudProviderEndpoint(deployment.getCloudProviderEndpoint());
49+
50+
OidcTokenId requestedWithToken = deploymentMessage.getRequestedWithToken();
5751
String organisation = Optional.ofNullable(deployment.getUserGroup())
58-
.orElse(oauth2TokenService.getOrganization(deploymentMessage.getRequestedWithToken()));
59-
CloudProvider cloudProvider = cmdbService.fillCloudProviderInfo(cloudProviderId, serviceWithSla,
60-
organisation, new RankCloudProvidersMessage());
52+
.orElse(oauth2TokenService.getOrganization(requestedWithToken));
53+
RankCloudProvidersMessage rankCloudProvidersMessage = new RankCloudProvidersMessage();
54+
rankCloudProvidersMessage.setRequestedWithToken(requestedWithToken);
55+
56+
CloudProvider cloudProvider = cmdbService.getUpdatedCloudProviderInfo(deployment, organisation,
57+
rankCloudProvidersMessage);
6158

6259
CloudServicesOrderedIterator cloudServicesOrderedIterator =
63-
new CloudServicesOrderedIterator(cloudProvider.getServices().values().stream().map(
64-
CloudServiceWf::new).collect(Collectors.toList()));
60+
new CloudServicesOrderedIterator(cloudProvider.getServices().values().stream()
61+
.map(CloudServiceWf::new).collect(Collectors.toList()));
6562
cloudServicesOrderedIterator.next();
6663
deploymentMessage.setCloudServicesOrderedIterator(cloudServicesOrderedIterator);
67-
deploymentMessage.setChosenCloudProviderEndpoint(cloudProviderEndpoint);
6864
}
6965

7066
@Override

0 commit comments

Comments
 (0)