Search in sources :

Example 6 with ProcessManagerException

use of org.jboss.pnc.spi.exception.ProcessManagerException 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();
}
Also used : GlobalModuleGroup(org.jboss.pnc.common.json.GlobalModuleGroup) RepositoryCreationProcess(org.jboss.pnc.bpm.model.RepositoryCreationProcess) Notifier(org.jboss.pnc.spi.notifications.Notifier) LoggerFactory(org.slf4j.LoggerFactory) StringUtils(org.jboss.pnc.common.util.StringUtils) RepositoryCreationResponse(org.jboss.pnc.dto.response.RepositoryCreationResponse) UserService(org.jboss.pnc.facade.util.UserService) Map(java.util.Map) RepositoryCreationTask(org.jboss.pnc.bpm.task.RepositoryCreationTask) UrlUtils(org.jboss.pnc.common.util.UrlUtils) SCMRepositoryProvider(org.jboss.pnc.facade.providers.api.SCMRepositoryProvider) BpmEventType(org.jboss.pnc.bpm.BpmEventType) RepourClient(org.jboss.pnc.facade.util.RepourClient) INTERNAL_REPOSITORY_NAME(org.jboss.pnc.constants.Patterns.INTERNAL_REPOSITORY_NAME) SCM_REPOSITORY_CREATION(org.jboss.pnc.enums.JobNotificationType.SCM_REPOSITORY_CREATION) Stateless(javax.ejb.Stateless) PermitAll(javax.annotation.security.PermitAll) BpmStringMapNotificationRest(org.jboss.pnc.bpm.model.BpmStringMapNotificationRest) RepositoryCreationResult(org.jboss.pnc.dto.tasks.RepositoryCreationResult) PncConfigProvider(org.jboss.pnc.common.json.moduleprovider.PncConfigProvider) List(java.util.List) CoreException(org.jboss.pnc.spi.exception.CoreException) RepositoryConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.RepositoryConfigurationRepository) ConflictedEntryException(org.jboss.pnc.facade.validation.ConflictedEntryException) Optional(java.util.Optional) ProcessManagerException(org.jboss.pnc.spi.exception.ProcessManagerException) Pattern(java.util.regex.Pattern) Predicate(org.jboss.pnc.spi.datastore.repositories.api.Predicate) RepositoryConfigurationPredicates(org.jboss.pnc.spi.datastore.predicates.RepositoryConfigurationPredicates) JobNotificationType(org.jboss.pnc.enums.JobNotificationType) RepositoryCloneSuccess(org.jboss.pnc.bpm.model.RepositoryCloneSuccess) Function(java.util.function.Function) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) ConfigurationParseException(org.jboss.pnc.common.json.ConfigurationParseException) SCMRepositoryMapper(org.jboss.pnc.mapper.api.SCMRepositoryMapper) BuildConfigurationProvider(org.jboss.pnc.facade.providers.api.BuildConfigurationProvider) SCMRepositoryCreationSuccess(org.jboss.pnc.dto.notification.SCMRepositoryCreationSuccess) BpmManager(org.jboss.pnc.bpm.BpmManager) WORK_WITH_TECH_PREVIEW(org.jboss.pnc.facade.providers.api.UserRoles.WORK_WITH_TECH_PREVIEW) RepositoryCreationFailure(org.jboss.pnc.dto.notification.RepositoryCreationFailure) Logger(org.slf4j.Logger) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration) RestConnector(org.jboss.pnc.bpm.RestConnector) RepositoryConfigurationPredicates.withExactInternalScmRepoUrl(org.jboss.pnc.spi.datastore.predicates.RepositoryConfigurationPredicates.withExactInternalScmRepoUrl) Configuration(org.jboss.pnc.common.Configuration) ScmModuleConfig(org.jboss.pnc.common.json.moduleconfig.ScmModuleConfig) Page(org.jboss.pnc.dto.response.Page) Consumer(java.util.function.Consumer) BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) InvalidEntityException(org.jboss.pnc.facade.validation.InvalidEntityException) SCMRepository(org.jboss.pnc.dto.SCMRepository) MDCWrappers(org.jboss.pnc.common.concurrent.MDCWrappers) BpmModuleConfig(org.jboss.pnc.common.json.moduleconfig.BpmModuleConfig) RestConnector(org.jboss.pnc.bpm.RestConnector) RepositoryCreationProcess(org.jboss.pnc.bpm.model.RepositoryCreationProcess) RepositoryCloneSuccess(org.jboss.pnc.bpm.model.RepositoryCloneSuccess) CoreException(org.jboss.pnc.spi.exception.CoreException) ProcessManagerException(org.jboss.pnc.spi.exception.ProcessManagerException) RepositoryCreationTask(org.jboss.pnc.bpm.task.RepositoryCreationTask)

Aggregations

ProcessManagerException (org.jboss.pnc.spi.exception.ProcessManagerException)6 RestConnector (org.jboss.pnc.bpm.RestConnector)3 Map (java.util.Map)2 IOException (java.io.IOException)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Optional (java.util.Optional)1 Consumer (java.util.function.Consumer)1 Function (java.util.function.Function)1 Pattern (java.util.regex.Pattern)1 PermitAll (javax.annotation.security.PermitAll)1 Stateless (javax.ejb.Stateless)1 Inject (javax.inject.Inject)1 HttpEntity (org.apache.http.HttpEntity)1 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)1 HttpPost (org.apache.http.client.methods.HttpPost)1 StringEntity (org.apache.http.entity.StringEntity)1