1 package hu.user.mediacube.integration.safedelete;
3 import hu.user.mediacube.integration.safedelete.verifier.MediaCubeDatabaseService;
4 import hu.user.mediacube.integration.safedelete.verifier.TSMService;
5 import lombok.extern.log4j.Log4j2;
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Component;
9 import java.io.IOException;
10 import java.nio.file.DirectoryStream;
11 import java.nio.file.Files;
12 import java.nio.file.Path;
13 import java.nio.file.Paths;
17 public class SafeDeleteCommand {
19 MediaCubeDatabaseService mediaCubeDatabaseService;
22 TSMService tsmService;
24 public void processDirectory(String directory, boolean forceDeleteArchived) throws IOException {
25 log.info("Check directory '{} ' and delete already archived is {}", directory, forceDeleteArchived);
26 Path inputPath = Paths.get(directory);
27 try (DirectoryStream<Path> stream = Files.newDirectoryStream(inputPath)) {
28 for (Path filePath : stream) {
29 if (!Files.isDirectory(filePath)) {
30 processInputFile(filePath, forceDeleteArchived);
36 private void processInputFile(Path source, boolean forceDeleteArchived) {
37 ArchiveFileStatus status = ArchiveFileStatus.builder().name(source.getFileName().toString()).build();
38 String fileName = source.getFileName().toString();
41 log.debug("Check MediaCube metadata for {}", source);
42 mediaCubeDatabaseService.verify(fileName, status);
44 log.debug("Check TSM file for {}", source);
45 tsmService.verify(source, status);
47 if (forceDeleteArchived && status.isFileSizeEquals() && status.isHashEquals()) {
50 } catch (Exception e) {
55 } catch (Exception e) {