Delete distributed release bundle if present

This commit is contained in:
Ryan Baxter
2024-11-12 10:02:37 -05:00
parent 92ad3954dd
commit ea877acfb9

View File

@@ -135,9 +135,26 @@ public class ReleaseBundleCreator {
objectMapper.writeValueAsString(createDistributionJson()));
}
public boolean getDistributedReleaseBundleStatus(String releaseBundleName, String version) throws IOException {
ArtifactoryRequest request = new ArtifactoryRequestImpl().method(ArtifactoryRequest.Method.GET)
.apiUrl("lifecycle/api/v2/distribution/export/status/" + releaseBundleName + "/" + version)
.addQueryParam("project", "spring").responseType(ArtifactoryRequest.ContentType.JSON);
return makeArtifactoryRequest(request);
}
public boolean distributeReleaseBundle(String releaseBundleName, String version, String json) throws IOException {
log.info("Distributing release bundle with name [{}] and version[{}] and JSON data [{}]", releaseBundleName,
version, json);
if (getDistributedReleaseBundleStatus(releaseBundleName, version)) {
log.info("Release bundle with name [{}] and version[{}] already distributed, deleting distributed release bundle", releaseBundleName, version);
if (deleteDistributedReleaseBundle(releaseBundleName, version)) {
log.info("Deleted distributed release bundle with name [{}] and version[{}]", releaseBundleName, version);
}
else {
log.error("Error deleting distributed release bundle with name [{}] and version[{}]", releaseBundleName, version);
return false;
}
}
ArtifactoryRequest request = new ArtifactoryRequestImpl().method(ArtifactoryRequest.Method.POST)
.apiUrl("lifecycle/api/v2/distribution/distribute/" + releaseBundleName + "/" + version)
.addQueryParam("project", "spring").requestType(ArtifactoryRequest.ContentType.JSON)
@@ -145,6 +162,21 @@ public class ReleaseBundleCreator {
return makeArtifactoryRequest(request);
}
public boolean deleteDistributedReleaseBundle(String releaseBundleName, String version) {
log.info("Deleting distributed release bundle with name [{}] and version[{}]", releaseBundleName, version);
ArtifactoryRequest request = new ArtifactoryRequestImpl().method(ArtifactoryRequest.Method.POST)
.apiUrl("lifecycle/api/v2/distribution/remote_delete/" + releaseBundleName + "/" + version)
.addQueryParam("project", "spring").requestType(ArtifactoryRequest.ContentType.JSON)
.responseType(ArtifactoryRequest.ContentType.JSON).requestBody(createDistributionJson());
try {
return makeArtifactoryRequest(request);
}
catch (IOException e) {
log.error("Error deleting distributed release bundle with name [{}] and version[{}]", releaseBundleName, version, e);
return false;
}
}
private boolean makeArtifactoryRequest(ArtifactoryRequest request) throws IOException {
ArtifactoryResponse response = artifactory.restCall(request);
if (!response.isSuccessResponse()) {