Split projects deletion/update.
This commit is contained in:
@@ -78,12 +78,8 @@ class DefaultProjectClient implements ProjectService {
|
||||
return operations.getForObject(resource, String.class);
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.data.release.sagan.SaganClient#updateProjectMetadata(org.springframework.data.release.model.Project, java.util.List)
|
||||
*/
|
||||
@Override
|
||||
public void updateProjectMetadata(Project project, MaintainedVersions versions) {
|
||||
public void updateProjectMetadata(Project project, MaintainedVersions versions, boolean delete, boolean update) {
|
||||
|
||||
URI resource = configuration.getProjectReleasesResource(project);
|
||||
|
||||
@@ -100,17 +96,17 @@ class DefaultProjectClient implements ProjectService {
|
||||
boolean requiresDelete = requiresDeleteVersions(project, versionsToRetain, versionsInSagan);
|
||||
boolean requiresWrite = requiresWriteVersions(versions, versionsInSagan);
|
||||
|
||||
if (requiresDelete || requiresWrite) {
|
||||
if ((requiresDelete) && delete || (requiresWrite && update)) {
|
||||
logger.log(project, "Updating project versions at %s…", resource);
|
||||
}
|
||||
|
||||
if (requiresDelete) {
|
||||
if (requiresDelete && delete) {
|
||||
|
||||
logger.log(project, "Deleting outdated project versions…", versionsString);
|
||||
deleteExistingVersions(project, versionsToRetain);
|
||||
}
|
||||
|
||||
if (requiresWrite) {
|
||||
if (requiresWrite && update) {
|
||||
|
||||
logger.log(project, "Writing project versions %s.", versionsString);
|
||||
createVersions(project, versions, resource, versionsInSagan);
|
||||
|
||||
@@ -43,12 +43,8 @@ class DummyProjectClient implements ProjectService {
|
||||
Logger logger;
|
||||
ObjectWriter mapper;
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see org.springframework.data.release.sagan.SaganClient#updateProjectMetadata(org.springframework.data.release.model.Project, org.springframework.data.release.sagan.MaintainedVersions)
|
||||
*/
|
||||
@Override
|
||||
public void updateProjectMetadata(Project project, MaintainedVersions versions) {
|
||||
public void updateProjectMetadata(Project project, MaintainedVersions versions, boolean delete, boolean update) {
|
||||
|
||||
logger.log(project, "Updating released version on Sagan to %s!", versions);
|
||||
|
||||
|
||||
@@ -47,7 +47,19 @@ public interface ProjectService {
|
||||
* @param project must not be {@literal null}.
|
||||
* @param versions must not be {@literal null}.
|
||||
*/
|
||||
void updateProjectMetadata(Project project, MaintainedVersions versions);
|
||||
default void updateProjectMetadata(Project project, MaintainedVersions versions) {
|
||||
updateProjectMetadata(project, versions, true, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the project metadata for the given {@link Project} to the given {@link MaintainedVersions}.
|
||||
*
|
||||
* @param project must not be {@literal null}.
|
||||
* @param versions must not be {@literal null}.
|
||||
* @param delete
|
||||
* @param update
|
||||
*/
|
||||
void updateProjectMetadata(Project project, MaintainedVersions versions, boolean delete, boolean update);
|
||||
|
||||
/**
|
||||
* Verify correct authentication setup.
|
||||
|
||||
@@ -27,6 +27,7 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -77,20 +78,25 @@ class ProjectServiceOperations {
|
||||
|
||||
Map<Project, MaintainedVersions> versions = findVersions(trains);
|
||||
|
||||
Streamable.of(versions.entrySet()).forEach(entry -> {
|
||||
Streamable<Entry<Project, MaintainedVersions>> stream = Streamable.of(versions.entrySet()) //
|
||||
.filter(entry -> {
|
||||
return entry.getKey() != Projects.BOM && entry.getKey() != Projects.JDBC;
|
||||
});
|
||||
|
||||
if (entry.getKey() == Projects.BOM) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(entry.getKey() == Projects.JDBC){
|
||||
return;
|
||||
}
|
||||
ExecutionUtils.run(executor, stream, entry -> {
|
||||
|
||||
// Sometimes we see 404 Not Found: [no body], sometimes
|
||||
// 400 Bad Request: "Release '2.2.13-SNAPSHOT' already present
|
||||
// still we should fail here and report those failures to the website team
|
||||
client.updateProjectMetadata(entry.getKey(), entry.getValue());
|
||||
client.updateProjectMetadata(entry.getKey(), entry.getValue(), true, false);
|
||||
});
|
||||
|
||||
ExecutionUtils.run(executor, stream, entry -> {
|
||||
|
||||
// Sometimes we see 404 Not Found: [no body], sometimes
|
||||
// 400 Bad Request: "Release '2.2.13-SNAPSHOT' already present
|
||||
// still we should fail here and report those failures to the website team
|
||||
client.updateProjectMetadata(entry.getKey(), entry.getValue(), false, true);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user