Search in sources :

Example 1 with BuildPushParameters

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

the class QueryAndSortTest method testShouldCompile.

@Test
public void testShouldCompile() throws Exception {
    if (true)
        // test never run, only to make sure the client classes are properly generated
        return;
    Configuration configuration = Configuration.builder().build();
    ProjectClient projectClient = new ProjectClient(configuration);
    projectClient.getAll();
    projectClient.getAll(Optional.of("asc=id"), Optional.empty());
    BuildClient buildClient = new BuildClient(configuration);
    BuildPushParameters pushRequest = BuildPushParameters.builder().build();
    buildClient.push("", pushRequest);
}
Also used : BuildPushParameters(org.jboss.pnc.dto.requests.BuildPushParameters) Test(org.junit.Test)

Example 2 with BuildPushParameters

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

the class BuildPushTest method shouldPushBuild.

@Test
public void shouldPushBuild() throws ClientException {
    BuildClient client = new BuildClient(RestClientConfiguration.asUser());
    Build build = client.getSpecific(buildId);
    // first push accepted
    BuildPushParameters parameters = BuildPushParameters.builder().reimport(false).tagPrefix("test-tag").build();
    BuildPushResult result = client.push(build.getId(), parameters);
    String buildPushResultId = result.getId();
    assertThat(result).isNotNull();
    assertThat(result.getStatus()).isEqualTo(BuildPushStatus.ACCEPTED);
    // second push rejected because already in process
    assertThatThrownBy(() -> client.push(build.getId(), parameters)).hasCauseInstanceOf(ClientErrorException.class);
    // should reject completion with invalid result id
    assertThatThrownBy(() -> client.completePush(buildId, returnSuccessfulResult(buildId, "1111"))).hasCauseInstanceOf(ClientErrorException.class);
    // successful complete of first push
    client.completePush(buildId, returnSuccessfulResult(buildId, buildPushResultId));
    // get result from db
    BuildPushResult successPushResult = client.getPushResult(buildId);
    assertThat(successPushResult.getStatus()).isEqualTo(BuildPushStatus.SUCCESS);
    assertThat(successPushResult.getLogContext()).isEqualTo(buildPushResultId);
    // next push should accept again
    BuildPushResult result2 = client.push(build.getId(), parameters);
    assertThat(result2).isNotNull();
    assertThat(result2.getStatus()).isEqualTo(BuildPushStatus.ACCEPTED);
}
Also used : Build(org.jboss.pnc.dto.Build) BuildClient(org.jboss.pnc.client.BuildClient) BuildPushParameters(org.jboss.pnc.dto.requests.BuildPushParameters) BuildPushResult(org.jboss.pnc.dto.BuildPushResult) ContainerTest(org.jboss.pnc.test.category.ContainerTest) Test(org.junit.Test)

Example 3 with BuildPushParameters

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

the class BrewPusherImpl method pushGroup.

@Override
public Set<BuildPushResult> pushGroup(int buildGroupId, String tagPrefix) {
    BuildPushParameters buildPushParameters = BuildPushParameters.builder().tagPrefix(tagPrefix).reimport(false).build();
    List<BuildRecord> buildRecords = buildRecordRepository.queryWithPredicates(BuildRecordPredicates.withBuildConfigSetRecordId(buildGroupId));
    Set<BuildPushResult> results = new HashSet<>();
    for (BuildRecord buildRecord : buildRecords) {
        Long buildPushResultId = Sequence.nextId();
        MDCUtils.addProcessContext(buildPushResultId.toString());
        MDCUtils.addCustomContext(BUILD_ID_KEY, buildRecord.getId().getId());
        try {
            results.add(doPushBuild(buildRecord.getId(), buildPushParameters, buildPushResultId));
        } catch (OperationNotAllowedException | AlreadyRunningException e) {
            results.add(BuildPushResult.builder().status(BuildPushStatus.REJECTED).id(buildPushResultId.toString()).buildId(BuildMapper.idMapper.toDto(buildRecord.getId())).message(e.getMessage()).build());
        } catch (InconsistentDataException | ProcessException e) {
            results.add(BuildPushResult.builder().status(BuildPushStatus.SYSTEM_ERROR).id(buildPushResultId.toString()).buildId(BuildMapper.idMapper.toDto(buildRecord.getId())).message(e.getMessage()).build());
        } finally {
            MDCUtils.removeProcessContext();
            MDCUtils.removeCustomContext(BUILD_ID_KEY);
        }
    }
    return results;
}
Also used : BuildPushParameters(org.jboss.pnc.dto.requests.BuildPushParameters) BuildPushResult(org.jboss.pnc.dto.BuildPushResult) OperationNotAllowedException(org.jboss.pnc.facade.validation.OperationNotAllowedException) BuildRecord(org.jboss.pnc.model.BuildRecord) AlreadyRunningException(org.jboss.pnc.facade.validation.AlreadyRunningException) ProcessException(org.jboss.pnc.spi.coordinator.ProcessException) InconsistentDataException(org.jboss.pnc.spi.datastore.InconsistentDataException) HashSet(java.util.HashSet)

Example 4 with BuildPushParameters

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

the class PigFacade method pushToBrew.

private static void pushToBrew(boolean reimport) {
    abortIfBuildDataAbsentFromContext();
    Map<String, PncBuild> builds = PigContext.get().getBuilds();
    String tagPrefix = getBrewTag(context().getPncImportResult().getVersion());
    List<PncBuild> buildsToPush = getBuildsToPush(builds);
    if (log.isInfoEnabled()) {
        log.info("Pushing the following builds to brew: {}", buildsToPush.stream().map(PncBuild::getId).collect(Collectors.toList()));
    }
    for (PncBuild build : buildsToPush) {
        BuildPushParameters request = BuildPushParameters.builder().tagPrefix(tagPrefix).reimport(reimport).build();
        // TODO: customize the timeout
        try (AdvancedBuildClient pushingClient = new AdvancedBuildClient(PncClientHelper.getPncConfiguration())) {
            BuildPushResult pushResult = pushingClient.executeBrewPush(build.getId(), request, 15L, TimeUnit.MINUTES);
            if (pushResult.getStatus() != BuildPushStatus.SUCCESS) {
                throw new RuntimeException("Failed to push build " + build.getId() + " to brew. Push result: " + pushResult);
            }
            log.info("{} pushed to brew ( {} ) ", build.getId(), UrlGenerator.generateBuildUrl(build.getId()));
        } catch (RemoteResourceException e) {
            throw new RuntimeException("Failed to push build " + build.getId() + " to brew (" + UrlGenerator.generateBuildUrl(build.getId()) + ")", e);
        }
    }
}
Also used : RemoteResourceException(org.jboss.pnc.client.RemoteResourceException) AdvancedBuildClient(org.jboss.pnc.restclient.AdvancedBuildClient) BuildPushParameters(org.jboss.pnc.dto.requests.BuildPushParameters) BuildPushResult(org.jboss.pnc.dto.BuildPushResult) PncBuild(org.jboss.pnc.bacon.pig.impl.pnc.PncBuild)

Example 5 with BuildPushParameters

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

the class BuildPushTest method shouldRefuseToPushNoRebuildRequiredStatusBuild.

@Test
public void shouldRefuseToPushNoRebuildRequiredStatusBuild() throws ClientException {
    BuildClient client = new BuildClient(RestClientConfiguration.asSystem());
    Build build = client.getSpecific(build2Id);
    Build noRebuildStatus = build.toBuilder().status(BuildStatus.NO_REBUILD_REQUIRED).build();
    client.update(build2Id, noRebuildStatus);
    BuildPushParameters parameters = BuildPushParameters.builder().reimport(false).tagPrefix("test-tag").build();
    assertThatThrownBy(() -> client.push(build2Id, parameters)).hasCauseInstanceOf(ForbiddenException.class);
}
Also used : Build(org.jboss.pnc.dto.Build) BuildClient(org.jboss.pnc.client.BuildClient) BuildPushParameters(org.jboss.pnc.dto.requests.BuildPushParameters) ContainerTest(org.jboss.pnc.test.category.ContainerTest) Test(org.junit.Test)

Aggregations

BuildPushParameters (org.jboss.pnc.dto.requests.BuildPushParameters)6 Test (org.junit.Test)4 BuildPushResult (org.jboss.pnc.dto.BuildPushResult)3 BuildClient (org.jboss.pnc.client.BuildClient)2 Build (org.jboss.pnc.dto.Build)2 BuildRecord (org.jboss.pnc.model.BuildRecord)2 ContainerTest (org.jboss.pnc.test.category.ContainerTest)2 HashSet (java.util.HashSet)1 PncBuild (org.jboss.pnc.bacon.pig.impl.pnc.PncBuild)1 RemoteResourceException (org.jboss.pnc.client.RemoteResourceException)1 AlreadyRunningException (org.jboss.pnc.facade.validation.AlreadyRunningException)1 OperationNotAllowedException (org.jboss.pnc.facade.validation.OperationNotAllowedException)1 Artifact (org.jboss.pnc.model.Artifact)1 IdRev (org.jboss.pnc.model.IdRev)1 AdvancedBuildClient (org.jboss.pnc.restclient.AdvancedBuildClient)1 ProcessException (org.jboss.pnc.spi.coordinator.ProcessException)1 InconsistentDataException (org.jboss.pnc.spi.datastore.InconsistentDataException)1