use of org.jboss.pnc.bpm.RestConnector in project pnc by project-ncl.
the class RestConnectorRequestSerializationTest method before.
@Before
public void before() {
when(bpmConfig.getBpmNewBaseUrl()).thenReturn(wireMockServer.baseUrl());
when(bpmConfig.getBpmNewDeploymentId()).thenReturn(DEPLOYMENT_ID);
wireMockServer.stubFor(post(urlMatching(".*" + DEPLOYMENT_ID + ".*")).willReturn(aResponse().withStatus(201).withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON).withBody("1")));
this.connector = new RestConnector(bpmConfig);
}
use of org.jboss.pnc.bpm.RestConnector in project pnc by project-ncl.
the class ProductMilestoneReleaseManager method triggerRHPAMRelease.
/**
* Trigger the release using the new RHPAM server
*
* @param milestone milestone to be released
* @param accessToken access token to use to submit request
* @param milestoneReleaseId the milestone id
*/
private ProductMilestoneRelease triggerRHPAMRelease(ProductMilestone milestone, String accessToken, Long milestoneReleaseId) {
ProductMilestoneRelease release = new ProductMilestoneRelease();
release.setId(milestoneReleaseId);
release.setStartingDate(new Date());
release.setMilestone(milestone);
try (RestConnector restConnector = new RestConnector(bpmConfig)) {
MilestoneReleaseTask releaseTask = new MilestoneReleaseTask(milestone, accessToken);
releaseTask.setTaskId(bpmManager.getNextTaskId());
releaseTask.setGlobalConfig(globalConfig);
releaseTask.setJsonEncodedProcessParameters(false);
restConnector.startProcess(bpmConfig.getBpmNewReleaseProcessId(), releaseTask.getExtendedProcessParameters(), Numbers.decimalToBase32(milestoneReleaseId), accessToken);
return release;
} catch (CoreException | ProcessManagerException e) {
log.error("Error trying to start brew push task for milestone: {}", milestone.getId(), e);
userLog.error("Release process creation failed.", e);
release.setStatus(MilestoneCloseStatus.SYSTEM_ERROR);
release.setEndDate(new Date());
return release;
}
}
use of org.jboss.pnc.bpm.RestConnector in project pnc by project-ncl.
the class ProductMilestoneReleaseManager method cancel.
public void cancel(ProductMilestone milestoneInDb, String accessToken, boolean useRHPAM) {
if (!useRHPAM) {
Collection<BpmTask> activeTasks = bpmManager.getActiveTasks();
Optional<MilestoneReleaseTask> milestoneReleaseTask = activeTasks.stream().map(task -> (MilestoneReleaseTask) task).filter(task -> task.getMilestone().getId().equals(milestoneInDb.getId())).findAny();
if (milestoneReleaseTask.isPresent()) {
bpmManager.cancelTask(milestoneReleaseTask.get());
}
} else {
RestConnector restConnector = new RestConnector(bpmConfig);
restConnector.cancelByCorrelation(Numbers.decimalToBase32(milestoneInDb.getId()), accessToken);
}
ProductMilestoneRelease milestoneRelease = productMilestoneReleaseRepository.findLatestByMilestone(milestoneInDb);
milestoneRelease.setStatus(MilestoneCloseStatus.CANCELED);
productMilestoneReleaseRepository.save(milestoneRelease);
}
use of org.jboss.pnc.bpm.RestConnector in project pnc by project-ncl.
the class DeliverableAnalyzerManagerImpl method startAnalysis.
private void startAnalysis(String milestoneId, List<String> sourcesLink, Base32LongID operationId) {
Request callback = operationsManager.getOperationCallback(operationId);
String id = operationId.getId();
try (RestConnector restConnector = new RestConnector(bpmConfig)) {
AnalyzeDeliverablesBpmRequest bpmRequest = new AnalyzeDeliverablesBpmRequest(id, milestoneId, sourcesLink);
AnalyzeDeliverablesTask analyzeTask = new AnalyzeDeliverablesTask(bpmRequest, callback);
restConnector.startProcess(bpmConfig.getAnalyzeDeliverablesBpmProcessId(), analyzeTask, id, userService.currentUserToken());
DeliverableAnalysisStatusChangedEvent analysisStatusChanged = DefaultDeliverableAnalysisStatusChangedEvent.started(id, milestoneId, sourcesLink);
analysisStatusChangedEventNotifier.fire(analysisStatusChanged);
} catch (ProcessManagerException e) {
log.error("Error trying to start analysis of deliverables task for milestone: {}", milestoneId, e);
throw new RuntimeException(e);
}
}
use of org.jboss.pnc.bpm.RestConnector in project pnc by project-ncl.
the class SCMRepositoryProviderImpl method startRCreationTask.
/**
* @param externalURL
* @param preBuildSyncEnabled
* @param jobType
* @param consumer
* @param buildConfiguration required when repository is created as part of BC creation process
* @return
*/
private Integer startRCreationTask(String externalURL, String revision, boolean preBuildSyncEnabled, JobNotificationType jobType, Consumer<RepositoryCreated> consumer, Optional<BuildConfiguration> buildConfiguration) {
String userToken = userService.currentUserToken();
org.jboss.pnc.bpm.model.RepositoryConfiguration repositoryConfiguration = org.jboss.pnc.bpm.model.RepositoryConfiguration.builder().externalUrl(externalURL).preBuildSyncEnabled(preBuildSyncEnabled).build();
RepositoryCreationTask task;
if (bpmConfig.isNewBpmForced() || userService.hasLoggedInUserRole(WORK_WITH_TECH_PREVIEW)) {
RepositoryCreationProcess.RepositoryCreationProcessBuilder repositoryCreationProcess = RepositoryCreationProcess.builder().repositoryConfiguration(repositoryConfiguration).revision(revision);
buildConfiguration.ifPresent(bc -> repositoryCreationProcess.buildConfiguration(bc));
task = new RepositoryCreationTask(repositoryCreationProcess.build(), userToken);
task.setTaskId(bpmManager.getNextTaskId());
task.setGlobalConfig(globalConfig);
task.setJsonEncodedProcessParameters(false);
task.setJobType(jobType);
RestConnector restConnector = new RestConnector(bpmConfig);
try {
Map<String, Object> processParameters = task.getExtendedProcessParameters();
restConnector.startProcess(bpmConfig.getNewBcCreationProcessId(), processParameters, userToken);
} catch (CoreException e) {
throw new RuntimeException("Could not get process parameters: " + task, e);
} catch (ProcessManagerException e) {
throw new RuntimeException("Could not start BPM task using REST connector: " + task, e);
}
} else {
// deprecated
RepositoryCreationProcess repositoryCreationProcess = RepositoryCreationProcess.builder().repositoryConfiguration(repositoryConfiguration).revision(revision).build();
task = new RepositoryCreationTask(repositoryCreationProcess, userToken);
task.setJobType(jobType);
Consumer<RepositoryCloneSuccess> successListener = event -> onRepoCloneSuccess(event.getData().getInternalUrl(), task.getTaskId(), consumer, jobType, externalURL, preBuildSyncEnabled);
task.addListener(BpmEventType.RC_REPO_CLONE_SUCCESS, MDCWrappers.wrap(successListener));
addErrorListeners(jobType, task);
try {
bpmManager.startTask(task);
} catch (CoreException e) {
throw new RuntimeException("Could not start BPM task: " + task, e);
}
}
return task.getTaskId();
}
Aggregations