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);
}
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);
}
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;
}
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);
}
}
}
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);
}
Aggregations