Split projects deletion/update.
This commit is contained in:
@@ -78,12 +78,8 @@ class DefaultProjectClient implements ProjectService {
|
|||||||
return operations.getForObject(resource, String.class);
|
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
|
@Override
|
||||||
public void updateProjectMetadata(Project project, MaintainedVersions versions) {
|
public void updateProjectMetadata(Project project, MaintainedVersions versions, boolean delete, boolean update) {
|
||||||
|
|
||||||
URI resource = configuration.getProjectReleasesResource(project);
|
URI resource = configuration.getProjectReleasesResource(project);
|
||||||
|
|
||||||
@@ -100,17 +96,17 @@ class DefaultProjectClient implements ProjectService {
|
|||||||
boolean requiresDelete = requiresDeleteVersions(project, versionsToRetain, versionsInSagan);
|
boolean requiresDelete = requiresDeleteVersions(project, versionsToRetain, versionsInSagan);
|
||||||
boolean requiresWrite = requiresWriteVersions(versions, versionsInSagan);
|
boolean requiresWrite = requiresWriteVersions(versions, versionsInSagan);
|
||||||
|
|
||||||
if (requiresDelete || requiresWrite) {
|
if ((requiresDelete) && delete || (requiresWrite && update)) {
|
||||||
logger.log(project, "Updating project versions at %s…", resource);
|
logger.log(project, "Updating project versions at %s…", resource);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requiresDelete) {
|
if (requiresDelete && delete) {
|
||||||
|
|
||||||
logger.log(project, "Deleting outdated project versions…", versionsString);
|
logger.log(project, "Deleting outdated project versions…", versionsString);
|
||||||
deleteExistingVersions(project, versionsToRetain);
|
deleteExistingVersions(project, versionsToRetain);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requiresWrite) {
|
if (requiresWrite && update) {
|
||||||
|
|
||||||
logger.log(project, "Writing project versions %s.", versionsString);
|
logger.log(project, "Writing project versions %s.", versionsString);
|
||||||
createVersions(project, versions, resource, versionsInSagan);
|
createVersions(project, versions, resource, versionsInSagan);
|
||||||
|
|||||||
@@ -43,12 +43,8 @@ class DummyProjectClient implements ProjectService {
|
|||||||
Logger logger;
|
Logger logger;
|
||||||
ObjectWriter mapper;
|
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
|
@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);
|
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 project must not be {@literal null}.
|
||||||
* @param versions 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.
|
* Verify correct authentication setup.
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import java.util.Collections;
|
|||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -77,20 +78,25 @@ class ProjectServiceOperations {
|
|||||||
|
|
||||||
Map<Project, MaintainedVersions> versions = findVersions(trains);
|
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) {
|
ExecutionUtils.run(executor, stream, entry -> {
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(entry.getKey() == Projects.JDBC){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sometimes we see 404 Not Found: [no body], sometimes
|
// Sometimes we see 404 Not Found: [no body], sometimes
|
||||||
// 400 Bad Request: "Release '2.2.13-SNAPSHOT' already present
|
// 400 Bad Request: "Release '2.2.13-SNAPSHOT' already present
|
||||||
// still we should fail here and report those failures to the website team
|
// 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