Search in sources :

Example 1 with RepositoryCreationProcess

use of org.jboss.pnc.bpm.model.RepositoryCreationProcess in project pnc by project-ncl.

the class SCMRepositoryProviderImpl method repositoryCreationCompleted.

@Override
public void repositoryCreationCompleted(RepositoryCreationResult result) {
    if (result.getStatus().isSuccess()) {
        Consumer<RepositoryCreated> onRepositoryCreated = event -> {
            log.debug("Repository created: {}", event);
            if (result.getJobType().equals(JobNotificationType.BUILD_CONFIG_CREATION)) {
                buildConfigurationProvider.createBuildConfigurationWithRepository(result.getTaskId().toString(), event.getRepositoryId(), result.getBuildConfiguration());
            }
            notifySCMRepositoryCreated(event);
        };
        onRepoCloneSuccess(result.getInternalScmUrl(), result.getTaskId(), onRepositoryCreated, result.getJobType(), result.getExternalUrl(), result.isPreBuildSyncEnabled());
    } else {
        String eventType;
        if (!result.isRepoCreatedSuccessfully()) {
            eventType = BpmEventType.RC_REPO_CREATION_ERROR.toString();
        } else {
            eventType = BpmEventType.RC_REPO_CLONE_ERROR.toString();
        }
        org.jboss.pnc.bpm.model.RepositoryConfiguration repositoryConfiguration = org.jboss.pnc.bpm.model.RepositoryConfiguration.builder().externalUrl(result.getExternalUrl()).preBuildSyncEnabled(result.isPreBuildSyncEnabled()).build();
        RepositoryCreationProcess repositoryCreationProcess = RepositoryCreationProcess.builder().repositoryConfiguration(repositoryConfiguration).build();
        notifier.sendMessage(new RepositoryCreationFailure(result.getJobType(), eventType, repositoryCreationProcess, result.getTaskId().toString()));
    }
}
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) RepositoryCreationProcess(org.jboss.pnc.bpm.model.RepositoryCreationProcess) RepositoryCreationFailure(org.jboss.pnc.dto.notification.RepositoryCreationFailure)

Example 2 with RepositoryCreationProcess

use of org.jboss.pnc.bpm.model.RepositoryCreationProcess 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

ArrayList (java.util.ArrayList)2 List (java.util.List)2 Map (java.util.Map)2 Optional (java.util.Optional)2 Consumer (java.util.function.Consumer)2 Function (java.util.function.Function)2 Pattern (java.util.regex.Pattern)2 PermitAll (javax.annotation.security.PermitAll)2 Stateless (javax.ejb.Stateless)2 Inject (javax.inject.Inject)2 BpmEventType (org.jboss.pnc.bpm.BpmEventType)2 BpmManager (org.jboss.pnc.bpm.BpmManager)2 RestConnector (org.jboss.pnc.bpm.RestConnector)2 BpmStringMapNotificationRest (org.jboss.pnc.bpm.model.BpmStringMapNotificationRest)2 RepositoryCloneSuccess (org.jboss.pnc.bpm.model.RepositoryCloneSuccess)2 RepositoryCreationProcess (org.jboss.pnc.bpm.model.RepositoryCreationProcess)2 RepositoryCreationTask (org.jboss.pnc.bpm.task.RepositoryCreationTask)2 Configuration (org.jboss.pnc.common.Configuration)2 MDCWrappers (org.jboss.pnc.common.concurrent.MDCWrappers)2 ConfigurationParseException (org.jboss.pnc.common.json.ConfigurationParseException)2