Skip to content

Commit

Permalink
Fix getCMDBDataUpdate function (#52)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
giosava94 and lgiommi authored Jan 17, 2025
1 parent bb98e7d commit c1fa7e1
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 20 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pipeline {

agent {
node { label 'jenkinsworker00' }
node { label 'jenkinsworker01' }
}

environment {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@

package it.reply.orchestrator.service;

import com.google.common.collect.Sets;
import it.reply.orchestrator.dal.entity.Deployment;
import it.reply.orchestrator.dto.CloudProviderEndpoint;
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
import it.reply.orchestrator.dto.cmdb.CloudProvider;
import it.reply.orchestrator.dto.cmdb.CloudService;
Expand Down Expand Up @@ -85,4 +88,14 @@ public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servic
provider.setServices(services);
return provider;
}

@Override
public CloudProvider getUpdatedCloudProviderInfo(Deployment deployment, String organisation,
RankCloudProvidersMessage rankCloudProvidersMessage) {
String cloudProviderId = deployment.getCloudProviderName();
CloudProviderEndpoint cloudProviderEndpoint = deployment.getCloudProviderEndpoint();
Set<String> servicesWithSla = Sets.newHashSet(cloudProviderEndpoint.getCpComputeServiceId());
return fillCloudProviderInfo(cloudProviderId, servicesWithSla, organisation,
rankCloudProvidersMessage);
}
}
4 changes: 4 additions & 0 deletions src/main/java/it/reply/orchestrator/service/CmdbService.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

package it.reply.orchestrator.service;

import it.reply.orchestrator.dal.entity.Deployment;
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
import it.reply.orchestrator.dto.cmdb.CloudProvider;
import it.reply.orchestrator.dto.cmdb.CloudService;
Expand Down Expand Up @@ -51,4 +52,7 @@ public interface CmdbService {
public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servicesWithSla,
String organisation, RankCloudProvidersMessage rankCloudProvidersMessage);

public CloudProvider getUpdatedCloudProviderInfo(Deployment deployment, String organisation,
RankCloudProvidersMessage rankCloudProvidersMessage);

}
34 changes: 30 additions & 4 deletions src/main/java/it/reply/orchestrator/service/CmdbServiceV2Impl.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import it.reply.orchestrator.annotation.ServiceVersion;
import it.reply.orchestrator.config.properties.CmdbProperties;
import it.reply.orchestrator.dal.entity.Deployment;
import it.reply.orchestrator.dal.entity.OidcTokenId;
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
import it.reply.orchestrator.dto.cmdb.CloudProvider;
Expand Down Expand Up @@ -48,6 +49,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -449,14 +451,13 @@ private CloudProvider remapAttributes(Project project) {
@Override
public CloudProvider fillCloudProviderInfo(String providerId, Set<String> servicesWithSla,
String organisation, RankCloudProvidersMessage rankCloudProvidersMessage) {

OidcTokenId requestedWithToken = rankCloudProvidersMessage.getRequestedWithToken();
String userGroup =
rankCloudProvidersMessage.getSlamPreferences().getPreferences().get(0).getCustomer();

URI requestUriFedRegProject = UriComponentsBuilder
.fromHttpUrl(cmdbProperties.getUrl() + cmdbProperties.getTenantsListPath())
.queryParam("with_conn", true)
.queryParam("user_group_uid",
rankCloudProvidersMessage.getSlamPreferences().getPreferences().get(0).getCustomer())
.queryParam("with_conn", true).queryParam("user_group_uid", userGroup)
.queryParam("provider_uid", providerId).build().normalize().toUri();

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

@Override
public CloudProvider getUpdatedCloudProviderInfo(Deployment deployment, String organisation,
RankCloudProvidersMessage rankCloudProvidersMessage) {
OidcTokenId requestedWithToken = rankCloudProvidersMessage.getRequestedWithToken();
Optional<String> regionName = deployment.getCloudProviderEndpoint().getRegion();
String identityServiceEndpoint = deployment.getCloudProviderEndpoint().getCpEndpoint();

URI requestUriFedRegProject = UriComponentsBuilder
.fromHttpUrl(cmdbProperties.getUrl() + cmdbProperties.getTenantsListPath())
.queryParam("with_conn", true).queryParam("region_name", regionName.orElseGet(() -> null))
.queryParam("identity_service_endpoint", identityServiceEndpoint).build().normalize()
.toUri();

List<Project> projectCall =
oauth2TokenService.executeWithClientForResult(requestedWithToken, accessToken -> {
HeadersBuilder<?> requestBuilder = RequestEntity.get(requestUriFedRegProject);
if (accessToken != null) {
requestBuilder.header(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken);
}
return restTemplate.exchange(requestBuilder.build(),
new ParameterizedTypeReference<List<Project>>() {});
}, OAuth2TokenService.restTemplateTokenRefreshEvaluator).getBody();

return remapAttributes(projectCall.get(0));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,8 @@

package it.reply.orchestrator.service.commands;

import com.google.common.collect.Sets;
import it.reply.orchestrator.dal.entity.Deployment;
import it.reply.orchestrator.dal.entity.OidcTokenId;
import it.reply.orchestrator.dto.CloudProviderEndpoint;
import it.reply.orchestrator.dto.RankCloudProvidersMessage;
import it.reply.orchestrator.dto.cmdb.CloudProvider;
import it.reply.orchestrator.dto.deployment.DeploymentMessage;
Expand All @@ -30,7 +28,6 @@
import it.reply.orchestrator.service.security.OAuth2TokenService;
import it.reply.orchestrator.utils.WorkflowConstants;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.flowable.engine.delegate.DelegateExecution;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -47,24 +44,23 @@ public class GetCmdbDataUpdate extends BaseDeployCommand {

@Override
public void execute(DelegateExecution execution, DeploymentMessage deploymentMessage) {
OidcTokenId requestedWithToken = deploymentMessage.getRequestedWithToken();
Deployment deployment = getDeployment(deploymentMessage);
CloudProviderEndpoint cloudProviderEndpoint = deployment.getCloudProviderEndpoint();
String cloudProviderId = deployment.getCloudProviderName();
Set<String> serviceWithSla = Sets.newHashSet(cloudProviderEndpoint.getCpComputeServiceId());
//String organisation = oauth2TokenService.getOrganization(
// deploymentMessage.getRequestedWithToken());
deploymentMessage.setChosenCloudProviderEndpoint(deployment.getCloudProviderEndpoint());

OidcTokenId requestedWithToken = deploymentMessage.getRequestedWithToken();
String organisation = Optional.ofNullable(deployment.getUserGroup())
.orElse(oauth2TokenService.getOrganization(deploymentMessage.getRequestedWithToken()));
CloudProvider cloudProvider = cmdbService.fillCloudProviderInfo(cloudProviderId, serviceWithSla,
organisation, new RankCloudProvidersMessage());
.orElse(oauth2TokenService.getOrganization(requestedWithToken));
RankCloudProvidersMessage rankCloudProvidersMessage = new RankCloudProvidersMessage();
rankCloudProvidersMessage.setRequestedWithToken(requestedWithToken);

CloudProvider cloudProvider = cmdbService.getUpdatedCloudProviderInfo(deployment, organisation,
rankCloudProvidersMessage);

CloudServicesOrderedIterator cloudServicesOrderedIterator =
new CloudServicesOrderedIterator(cloudProvider.getServices().values().stream().map(
CloudServiceWf::new).collect(Collectors.toList()));
new CloudServicesOrderedIterator(cloudProvider.getServices().values().stream()
.map(CloudServiceWf::new).collect(Collectors.toList()));
cloudServicesOrderedIterator.next();
deploymentMessage.setCloudServicesOrderedIterator(cloudServicesOrderedIterator);
deploymentMessage.setChosenCloudProviderEndpoint(cloudProviderEndpoint);
}

@Override
Expand Down

0 comments on commit c1fa7e1

Please sign in to comment.