@@ -0,0 +1,41 @@
|
||||
package ru.soune.nocopy.controller;
|
||||
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import ru.soune.nocopy.migration.S3MigrationTool;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/admin/migration")
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class MigrationController {
|
||||
|
||||
private final S3MigrationTool migrationTool;
|
||||
|
||||
@PostMapping("/start")
|
||||
public ResponseEntity<String> startMigration() {
|
||||
log.info("Migration triggered via API");
|
||||
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
migrationTool.migrationFilesToS3();
|
||||
} catch (Exception e) {
|
||||
log.error("Migration failed", e);
|
||||
}
|
||||
});
|
||||
|
||||
return ResponseEntity.ok("Migration started. Check logs for progress.");
|
||||
}
|
||||
|
||||
@PostMapping("/status")
|
||||
public ResponseEntity<String> getStatus() {
|
||||
return ResponseEntity.ok("Check application logs and migration_failed.txt for details");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user