Search in sources :

Example 1 with BuildConfigWithSCMRequest

use of org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest in project pnc by project-ncl.

the class BuildConfigurationEndpointTest method shouldCreateWithInternalUrlMatchingPattern.

@Test
@InSequence(62)
public void shouldCreateWithInternalUrlMatchingPattern() throws ClientException {
    // given
    BuildConfigurationClient client = new BuildConfigurationClient(RestClientConfiguration.asUser());
    BuildConfiguration bc = client.getSpecific(configurationId);
    BuildConfiguration newBC = BuildConfiguration.builder().name("othernameforbc").buildScript(bc.getBuildScript()).project(bc.getProject()).environment(bc.getEnvironment()).parameters(bc.getParameters()).buildType(bc.getBuildType()).build();
    BuildConfigWithSCMRequest request = BuildConfigWithSCMRequest.builder().buildConfig(newBC).scmUrl("ssh://git@github.com:22/newUser/newRepo.git").build();
    BuildConfigCreationResponse received = client.createWithSCM(request);
    assertThat(received).isNotNull();
    assertThat(received.getBuildConfig().getId()).isNotNull();
    assertThat(client.getSpecific(received.getBuildConfig().getId())).hasFieldOrPropertyWithValue("name", "othernameforbc");
}
Also used : BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) BuildConfigCreationResponse(org.jboss.pnc.dto.response.BuildConfigCreationResponse) BuildConfigWithSCMRequest(org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest) BuildConfigurationClient(org.jboss.pnc.client.BuildConfigurationClient) ContainerTest(org.jboss.pnc.test.category.ContainerTest) Test(org.junit.Test) InSequence(org.jboss.arquillian.junit.InSequence)

Example 2 with BuildConfigWithSCMRequest

use of org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest in project pnc by project-ncl.

the class BuildConfigurationProviderImpl method createWithScm.

@Override
public BuildConfigCreationResponse createWithScm(BuildConfigWithSCMRequest request) {
    ValidationBuilder.validateObject(request, WhenCreatingNew.class).validateNotEmptyArgument().validateAnnotations();
    BuildConfiguration buildConfiguration = request.getBuildConfig();
    validateBeforeSaving(buildConfiguration.toBuilder().scmRepository(FAKE_REPOSITORY).build());
    Long buildConfigurationId = sequenceHandlerRepository.getNextID(org.jboss.pnc.model.BuildConfiguration.SEQUENCE_NAME);
    MDCUtils.addProcessContext(buildConfigurationId.toString());
    BuildConfiguration newBuildConfigurationWithId = buildConfiguration.toBuilder().id(buildConfigurationId.toString()).build();
    RepositoryCreationResponse rcResponse = scmRepositoryProvider.createSCMRepository(request.getScmUrl(), request.getBuildConfig().getScmRevision(), request.getPreBuildSyncEnabled(), JobNotificationType.BUILD_CONFIG_CREATION, // consumer is deprecated with new stateless approach
    MDCWrappers.wrap(event -> {
        createBuildConfigurationWithRepository(event.getTaskId() == null ? null : event.getTaskId().toString(), event.getRepositoryId(), newBuildConfigurationWithId);
    }), Optional.of(newBuildConfigurationWithId));
    BuildConfigCreationResponse response;
    if (rcResponse.getTaskId() == null) {
        // scm is internal, not running a RepositoryCreationTask.
        // onRCCreationSuccess already called with id = rcResponse.getRepository().getId()
        org.jboss.pnc.model.BuildConfiguration buildConfigurationFromDB = repository.queryByPredicates(withName(newBuildConfigurationWithId.getName()), isNotArchived());
        response = new BuildConfigCreationResponse(mapper.toDTO(buildConfigurationFromDB));
    } else {
        response = new BuildConfigCreationResponse(rcResponse.getTaskId().toString());
    }
    MDCUtils.removeProcessContext();
    return response;
}
Also used : BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) BuildConfigurationPredicates.withDependencyConfiguration(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withDependencyConfiguration) Notifier(org.jboss.pnc.spi.notifications.Notifier) Date(java.util.Date) BuildConfigurationSetRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationSetRepository) LoggerFactory(org.slf4j.LoggerFactory) BuildConfigurationAuditedRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationAuditedRepository) BuildConfigurationPredicates.withScmRepositoryId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withScmRepositoryId) MDCUtils(org.jboss.pnc.common.logging.MDCUtils) BuildConfigurationMapper(org.jboss.pnc.mapper.api.BuildConfigurationMapper) BuildEnvironment(org.jboss.pnc.model.BuildEnvironment) BuildConfigurationAudited(org.jboss.pnc.model.BuildConfigurationAudited) EmptyEntityException(org.jboss.pnc.facade.validation.EmptyEntityException) RepositoryCreationResponse(org.jboss.pnc.dto.response.RepositoryCreationResponse) User(org.jboss.pnc.dto.User) UserService(org.jboss.pnc.facade.util.UserService) Map(java.util.Map) BuildConfigurationRevisionMapper(org.jboss.pnc.mapper.api.BuildConfigurationRevisionMapper) SCMRepositoryProvider(org.jboss.pnc.facade.providers.api.SCMRepositoryProvider) BuildConfigurationRevision(org.jboss.pnc.dto.BuildConfigurationRevision) BuildConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.BuildConfigurationRepository) WhenCreatingNew(org.jboss.pnc.dto.validation.groups.WhenCreatingNew) BuildRef(org.jboss.pnc.dto.BuildRef) Stateless(javax.ejb.Stateless) PermitAll(javax.annotation.security.PermitAll) BuildCoordinator(org.jboss.pnc.spi.coordinator.BuildCoordinator) BuildProvider(org.jboss.pnc.facade.providers.api.BuildProvider) ValidationBuilder(org.jboss.pnc.facade.validation.ValidationBuilder) Set(java.util.Set) RepositoryViolationException(org.jboss.pnc.facade.validation.RepositoryViolationException) Collectors(java.util.stream.Collectors) BuildConfigCreationResponse(org.jboss.pnc.dto.response.BuildConfigCreationResponse) IdRev(org.jboss.pnc.model.IdRev) BuildConfigurationPredicates.withDependantConfiguration(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withDependantConfiguration) Objects(java.util.Objects) SequenceHandlerRepository(org.jboss.pnc.spi.datastore.repositories.SequenceHandlerRepository) List(java.util.List) ConflictedEntryValidator(org.jboss.pnc.facade.validation.ConflictedEntryValidator) RepositoryConfigurationRepository(org.jboss.pnc.spi.datastore.repositories.RepositoryConfigurationRepository) ConflictedEntryException(org.jboss.pnc.facade.validation.ConflictedEntryException) BuildConfigurationPredicates.isNotArchived(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.isNotArchived) Optional(java.util.Optional) BuildConfigurationPredicates.withProductVersionId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProductVersionId) BuildConfigWithSCMRequest(org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest) ProjectRepository(org.jboss.pnc.spi.datastore.repositories.ProjectRepository) BuildConfigurationCreation(org.jboss.pnc.dto.notification.BuildConfigurationCreation) JobNotificationType(org.jboss.pnc.enums.JobNotificationType) BuildConfigurationSet(org.jboss.pnc.model.BuildConfigurationSet) BuildTask(org.jboss.pnc.spi.coordinator.BuildTask) BuildEnvironmentRepository(org.jboss.pnc.spi.datastore.repositories.BuildEnvironmentRepository) BuildMapper(org.jboss.pnc.mapper.api.BuildMapper) ArrayList(java.util.ArrayList) BuildConfigurationRef(org.jboss.pnc.dto.BuildConfigurationRef) BuildRecordRepository(org.jboss.pnc.spi.datastore.repositories.BuildRecordRepository) Inject(javax.inject.Inject) HashSet(java.util.HashSet) UserMapper(org.jboss.pnc.mapper.api.UserMapper) SCMRepositoryMapper(org.jboss.pnc.mapper.api.SCMRepositoryMapper) DTOValidationException(org.jboss.pnc.facade.validation.DTOValidationException) BuildConfigurationProvider(org.jboss.pnc.facade.providers.api.BuildConfigurationProvider) ProductVersionRepository(org.jboss.pnc.spi.datastore.repositories.ProductVersionRepository) WhenUpdating(org.jboss.pnc.dto.validation.groups.WhenUpdating) Logger(org.slf4j.Logger) RepositoryConfiguration(org.jboss.pnc.model.RepositoryConfiguration) BuildRecord(org.jboss.pnc.model.BuildRecord) BuildConfigurationPredicates.withProjectId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withProjectId) Page(org.jboss.pnc.dto.response.Page) Build(org.jboss.pnc.dto.Build) BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) InvalidEntityException(org.jboss.pnc.facade.validation.InvalidEntityException) BuildConfigurationWithLatestBuild(org.jboss.pnc.dto.BuildConfigurationWithLatestBuild) SCMRepository(org.jboss.pnc.dto.SCMRepository) StreamHelper.nullableStreamOf(org.jboss.pnc.common.util.StreamHelper.nullableStreamOf) MDCWrappers(org.jboss.pnc.common.concurrent.MDCWrappers) Comparator(java.util.Comparator) BuildConfigurationPredicates.withName(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withName) Collections(java.util.Collections) BuildConfigurationPredicates.withBuildConfigurationSetId(org.jboss.pnc.spi.datastore.predicates.BuildConfigurationPredicates.withBuildConfigurationSetId) BuildConfigCreationResponse(org.jboss.pnc.dto.response.BuildConfigCreationResponse) RepositoryCreationResponse(org.jboss.pnc.dto.response.RepositoryCreationResponse)

Example 3 with BuildConfigWithSCMRequest

use of org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest in project pnc by project-ncl.

the class DeserializerTest method testDTOAsRefDeserialization.

@Test
public void testDTOAsRefDeserialization() throws IOException {
    String json = "{" + "   \"scmUrl\":\"https://github.com/matedo1/empty_19082666\"," + "   \"preBuildSyncEnabled\":true," + "   \"buildConfig\":{" + "      \"name\":\"mtest190826\"," + "      \"environment\":{" + "         \"id\":8," + "         \"name\":\"OpenJDK 1.8.0; Mvn 3.5.2\"," + "         \"description\":\"OpenJDK 1.8.0; Mvn 3.5.2\"," + "         \"systemImageRepositoryUrl\":\"docker-registry-default.cloud.registry.upshift.redhat.com\"," + "         \"systemImageId\":\"newcastle/builder-rhel-7-j8-mvn3.5.2:latest\"," + "         \"attributes\":{" + "            \"JDK\":\"1.8.0\"," + "            \"MAVEN\":\"3.5.2\"," + "            \"OS\":\"Linux\"" + "         }," + "         \"systemImageType\":\"DOCKER_IMAGE\"," + "         \"deprecated\":false" + "      }," + "      \"buildType\":\"MVN\"," + "      \"buildScript\":\"mvn clean deploy\"," + "      \"parameters\":{      }," + "      \"dependencies\":{}," + "      \"scmRevision\":\"master\"," + "      \"project\":{" + "         \"id\":122," + "         \"name\":\"mtest180719\"," + "         \"description\":null," + "         \"issueTrackerUrl\":null," + "         \"projectUrl\":null," + "         \"buildConfigs\":{" + "            \"134\": {" + "               \"id\":134," + "               \"name\":\"mtest1907252\"," + "               \"description\":null," + "               \"buildScript\":\"mvn clean deploy\"," + "               \"scmRevision\":\"master\"," + "               \"creationTime\":\"2019-07-25T09:32:44.206Z\"," + "               \"modificationTime\":\"2019-08-14T11:37:51.355Z\"," + "               \"archived\":false," + "               \"buildType\":\"MVN\"" + "            }" + "         }" + "      }," + "      \"groupConfigs\":{}" + "   }" + "}";
    ObjectMapper mapper = provider.getContext(null);
    BuildConfigWithSCMRequest obj = mapper.readValue(json, BuildConfigWithSCMRequest.class);
}
Also used : BuildConfigWithSCMRequest(org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Example 4 with BuildConfigWithSCMRequest

use of org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest in project pnc by project-ncl.

the class BuildConfigurationEndpointTest method shouldNotCreateWithInternalUrlNotMatchingPattern.

@Test
public void shouldNotCreateWithInternalUrlNotMatchingPattern() throws ClientException {
    BuildConfigurationClient client = new BuildConfigurationClient(RestClientConfiguration.asUser());
    BuildConfiguration bc = client.getSpecific(configurationId);
    BuildConfiguration newBC = BuildConfiguration.builder().name("othername").buildScript(bc.getBuildScript()).project(bc.getProject()).environment(bc.getEnvironment()).parameters(bc.getParameters()).buildType(bc.getBuildType()).build();
    BuildConfigWithSCMRequest request = BuildConfigWithSCMRequest.builder().buildConfig(newBC).scmUrl("ssh://git@github.com:22/gerrit/newRepo.git").build();
    assertThatThrownBy(() -> client.createWithSCM(request)).hasCauseInstanceOf(BadRequestException.class);
    BuildConfigWithSCMRequest request2 = BuildConfigWithSCMRequest.builder().buildConfig(newBC).scmUrl("ssh://git@github.com:22/foo/newRepo").build();
    assertThatThrownBy(() -> client.createWithSCM(request2)).hasCauseInstanceOf(BadRequestException.class);
}
Also used : BuildConfiguration(org.jboss.pnc.dto.BuildConfiguration) BuildConfigWithSCMRequest(org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest) BuildConfigurationClient(org.jboss.pnc.client.BuildConfigurationClient) ContainerTest(org.jboss.pnc.test.category.ContainerTest) Test(org.junit.Test)

Aggregations

BuildConfigWithSCMRequest (org.jboss.pnc.dto.requests.BuildConfigWithSCMRequest)4 BuildConfiguration (org.jboss.pnc.dto.BuildConfiguration)3 BuildConfigurationClient (org.jboss.pnc.client.BuildConfigurationClient)2 BuildConfigCreationResponse (org.jboss.pnc.dto.response.BuildConfigCreationResponse)2 Test (org.junit.Test)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 Comparator (java.util.Comparator)1 Date (java.util.Date)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Map (java.util.Map)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 PermitAll (javax.annotation.security.PermitAll)1 Stateless (javax.ejb.Stateless)1 Inject (javax.inject.Inject)1