Skip to content

Commit dab5ed4

Browse files
authored
Update cleanupEmptyFolders to POST (#67)
1 parent fceaae5 commit dab5ed4

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

src/main/java/org/commonjava/indy/service/tracking/client/storage/StorageBatchDeleteRequest.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
/**
2121
* Delete multiple paths in one filesystem.
2222
*/
23-
public class StorageBatchDeleteRequest {
23+
public class StorageBatchDeleteRequest
24+
{
25+
private String internalId;
26+
2427
private Set<String> paths;
2528

2629
private String filesystem;
@@ -41,11 +44,20 @@ public void setFilesystem(String filesystem) {
4144
this.filesystem = filesystem;
4245
}
4346

47+
public String getInternalId()
48+
{
49+
return internalId;
50+
}
51+
52+
public void setInternalId( String internalId )
53+
{
54+
this.internalId = internalId;
55+
}
56+
4457
@Override
45-
public String toString() {
46-
return "BatchDeleteRequest{" +
47-
"paths=" + paths +
48-
", filesystem='" + filesystem + '\'' +
49-
'}';
58+
public String toString()
59+
{
60+
return "StorageBatchDeleteRequest{" + "internalId='" + internalId + '\'' + ", paths=" + paths + ", filesystem='"
61+
+ filesystem + '\'' + '}';
5062
}
5163
}

src/main/java/org/commonjava/indy/service/tracking/client/storage/StorageService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
*/
1616
package org.commonjava.indy.service.tracking.client.storage;
1717

18+
import jakarta.ws.rs.POST;
1819
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
1920
import org.eclipse.microprofile.rest.client.annotation.RegisterProvider;
2021
import org.commonjava.indy.service.security.jaxrs.CustomClientRequestFilter;
2122

22-
import jakarta.ws.rs.DELETE;
2323
import jakarta.ws.rs.Path;
2424
import jakarta.ws.rs.core.Response;
2525
import jakarta.ws.rs.Consumes;
@@ -32,7 +32,7 @@ public interface StorageService {
3232
/**
3333
* Delete empty folders by Storage BatchDeleteRequest as JSON body.
3434
*/
35-
@DELETE
35+
@POST
3636
@Path("/maint/folders/empty")
3737
@Consumes(APPLICATION_JSON)
3838
Response cleanupEmptyFolders(StorageBatchDeleteRequest request);

src/main/java/org/commonjava/indy/service/tracking/controller/AdminController.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package org.commonjava.indy.service.tracking.controller;
1717

18-
import com.fasterxml.jackson.databind.ObjectMapper;
1918
import org.commonjava.indy.service.tracking.Constants;
2019
import org.commonjava.indy.service.tracking.client.content.BatchDeleteRequest;
2120
import org.commonjava.indy.service.tracking.client.content.ContentService;
@@ -424,11 +423,14 @@ public boolean deletionAdditionalGuardCheck( BatchDeleteRequest deleteRequest )
424423
* storage API to handle ancestor folders as needed.
425424
* </p>
426425
*
426+
* @param trackingID
427427
* @param filesystem the target filesystem/storeKey as a string
428428
* @param paths the set of deleted file paths
429429
*/
430-
public void cleanupEmptyFolders(String filesystem, Set<String> paths) {
431-
logger.info("Post-action: cleanupEmptyFolder, filesystem={}, paths={}", filesystem, paths);
430+
public void cleanupEmptyFolders( String trackingID, String filesystem, Set<String> paths )
431+
{
432+
logger.info("Post-action: cleanupEmptyFolder, trackingID={}, filesystem={}, paths={}",
433+
trackingID, filesystem, paths);
432434
if (paths == null || paths.isEmpty()) {
433435
logger.info("No paths to process for cleanup.");
434436
return;
@@ -442,11 +444,12 @@ public void cleanupEmptyFolders(String filesystem, Set<String> paths) {
442444
}
443445
}
444446
StorageBatchDeleteRequest req = new StorageBatchDeleteRequest();
447+
req.setInternalId( trackingID );
445448
req.setFilesystem(filesystem);
446449
req.setPaths(folders);
447450
try {
448451
Response resp = storageService.cleanupEmptyFolders(req);
449-
logger.info("Cleanup empty folders, req: {}, status {}", req, resp.getStatus());
452+
logger.info("Cleanup empty folders done, req: {}, status {}", req, resp.getStatus());
450453
} catch (Exception e) {
451454
logger.warn("Failed to cleanup folders, request: {}, error: {}", req, e.getMessage(), e);
452455
}

src/main/java/org/commonjava/indy/service/tracking/jaxrs/AdminResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ public Response doDelete( @Context final UriInfo uriInfo, final BatchDeleteReque
433433
Response response = maintenanceService.doDelete( request );
434434
if (response.getStatus() == Response.Status.OK.getStatusCode()) {
435435
// Run the cleanupEmptyFolder post-action asynchronously
436-
CompletableFuture.runAsync(() -> controller.cleanupEmptyFolders(
436+
CompletableFuture.runAsync(() -> controller.cleanupEmptyFolders( request.getTrackingID(),
437437
request.getStoreKey().toString(), request.getPaths()), executor);
438438
}
439439
return response;

0 commit comments

Comments
 (0)