deletion for all services
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package com.olympus.apollo.services;
|
package com.olympus.apollo.services;
|
||||||
|
|
||||||
import com.olympus.apollo.dto.DeleteGitRepoDetailsRequest;
|
import com.olympus.apollo.dto.DeleteGitRepoDetailsRequest;
|
||||||
|
import com.olympus.apollo.models.KSGitInfo;
|
||||||
import com.olympus.apollo.models.KSGitIngestionInfo;
|
import com.olympus.apollo.models.KSGitIngestionInfo;
|
||||||
|
import com.olympus.apollo.models.KSIngestionInfo;
|
||||||
import com.olympus.apollo.repository.*;
|
import com.olympus.apollo.repository.*;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DeletionService {
|
public class DeletionService {
|
||||||
@@ -40,6 +43,7 @@ public class DeletionService {
|
|||||||
boolean KSIngestionInfoExists = deletionRequest.getKsIngestionInfoId() != null && !deletionRequest.getKsIngestionInfoId().isEmpty() && ksIngestionInfoRepository.existsById(deletionRequest.getKsIngestionInfoId());
|
boolean KSIngestionInfoExists = deletionRequest.getKsIngestionInfoId() != null && !deletionRequest.getKsIngestionInfoId().isEmpty() && ksIngestionInfoRepository.existsById(deletionRequest.getKsIngestionInfoId());
|
||||||
boolean vectorStoreExists = deletionRequest.getKsApplicationName() != null && deletionRequest.getKsDocSource() != null && deletionRequest.getKsFileSource() != null && deletionRequest.getKsDoctype() != null;
|
boolean vectorStoreExists = deletionRequest.getKsApplicationName() != null && deletionRequest.getKsDocSource() != null && deletionRequest.getKsFileSource() != null && deletionRequest.getKsDoctype() != null;
|
||||||
|
|
||||||
|
|
||||||
List<VectorStore> vectorStoreMetadataDetails = vectorStoreExists ? vectorStoreRepository.findByMetadata(deletionRequest.getKsDoctype(), deletionRequest.getKsDocSource(), deletionRequest.getKsFileSource(), deletionRequest.getKsApplicationName()) : List.of();
|
List<VectorStore> vectorStoreMetadataDetails = vectorStoreExists ? vectorStoreRepository.findByMetadata(deletionRequest.getKsDoctype(), deletionRequest.getKsDocSource(), deletionRequest.getKsFileSource(), deletionRequest.getKsApplicationName()) : List.of();
|
||||||
|
|
||||||
if (KSDocumentExists && KSIngestionInfoExists && !vectorStoreMetadataDetails.isEmpty()) {
|
if (KSDocumentExists && KSIngestionInfoExists && !vectorStoreMetadataDetails.isEmpty()) {
|
||||||
@@ -81,34 +85,67 @@ public class DeletionService {
|
|||||||
boolean KSGitIngestionInfoExists = deleteGitRepoDetailsRequest.getKsGitIngestionInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitIngestionInfoId().isEmpty() && ksGitIngestionInfoRepository.existsById(deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
boolean KSGitIngestionInfoExists = deleteGitRepoDetailsRequest.getKsGitIngestionInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitIngestionInfoId().isEmpty() && ksGitIngestionInfoRepository.existsById(deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
logger.info("KSGitIngestionInfo with id {} exists.", deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
logger.info("KSGitIngestionInfo with id {} exists.", deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
boolean vectorStoreGitDetailsExists = deleteGitRepoDetailsRequest.getKsApplicationName() != null && deleteGitRepoDetailsRequest.getKsDocSource() != null && deleteGitRepoDetailsRequest.getKsFileSource() != null && deleteGitRepoDetailsRequest.getKsDoctype() != null;
|
boolean vectorStoreGitDetailsExists = deleteGitRepoDetailsRequest.getKsApplicationName() != null && deleteGitRepoDetailsRequest.getKsDocSource() != null && deleteGitRepoDetailsRequest.getKsFileSource() != null && deleteGitRepoDetailsRequest.getKsDoctype() != null;
|
||||||
logger.info("vectorStoreGitDetails records exists.");
|
|
||||||
|
|
||||||
|
|
||||||
|
Optional<KSGitInfo> ksGitInfo = ksGitInfoRepository.findById(deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
|
String ingestionStatus = ksGitInfo.get().getIngestionStatus();
|
||||||
|
logger.info("Ingestion Status is {}.",ingestionStatus);
|
||||||
List<VectorStore> vectorStoreMetadataDetails = vectorStoreGitDetailsExists ? vectorStoreRepository.findByMetadata(deleteGitRepoDetailsRequest.getKsDoctype(), deleteGitRepoDetailsRequest.getKsDocSource(), deleteGitRepoDetailsRequest.getKsFileSource(), deleteGitRepoDetailsRequest.getKsApplicationName()) : List.of();
|
List<VectorStore> vectorStoreMetadataDetails = vectorStoreGitDetailsExists ? vectorStoreRepository.findByMetadata(deleteGitRepoDetailsRequest.getKsDoctype(), deleteGitRepoDetailsRequest.getKsDocSource(), deleteGitRepoDetailsRequest.getKsFileSource(), deleteGitRepoDetailsRequest.getKsApplicationName()) : List.of();
|
||||||
|
|
||||||
if (KSGitInfoExists && KSGitIngestionInfoExists && !vectorStoreMetadataDetails.isEmpty()) {
|
if (KSGitInfoExists && KSGitIngestionInfoExists) {
|
||||||
|
if(ingestionStatus.equals("ERROR")){
|
||||||
if (deleteGitRepoDetailsRequest.getKsGitInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitInfoId().isEmpty()) {
|
if (deleteGitRepoDetailsRequest.getKsGitInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitInfoId().isEmpty()) {
|
||||||
ksGitInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitInfoId());
|
ksGitInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
logger.info("KsGitInfo with id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsGitInfoId());
|
logger.info("KsGitInfo with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (deleteGitRepoDetailsRequest.getKsGitIngestionInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitIngestionInfoId().isEmpty()) {
|
if (deleteGitRepoDetailsRequest.getKsGitIngestionInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitIngestionInfoId().isEmpty()) {
|
||||||
ksGitIngestionInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
ksGitIngestionInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
logger.info("KSGitIngestionInfo with id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
logger.info("KSGitIngestionInfo with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
|
}
|
||||||
|
if( !vectorStoreMetadataDetails.isEmpty()){
|
||||||
|
for (VectorStore store : vectorStoreMetadataDetails) {
|
||||||
|
vectorStoreRepository.deleteById(store.getId());
|
||||||
|
logger.info("VectorStore with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), store.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (ingestionStatus.equals("INGESTED") && !vectorStoreMetadataDetails.isEmpty()) {
|
||||||
|
if (deleteGitRepoDetailsRequest.getKsGitInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitInfoId().isEmpty()) {
|
||||||
|
ksGitInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
|
logger.info("KsGitInfo with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deleteGitRepoDetailsRequest.getKsGitIngestionInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitIngestionInfoId().isEmpty()) {
|
||||||
|
ksGitIngestionInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
|
logger.info("KSGitIngestionInfo with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (VectorStore store : vectorStoreMetadataDetails) {
|
for (VectorStore store : vectorStoreMetadataDetails) {
|
||||||
vectorStoreRepository.deleteById(store.getId());
|
vectorStoreRepository.deleteById(store.getId());
|
||||||
logger.info("VectorStore with id {} deleted successfully.", store.getId());
|
logger.info("VectorStore with id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), store.getId());
|
||||||
}
|
}
|
||||||
logger.info("All records deleted successfully.");
|
logger.info("All records deleted successfully.");
|
||||||
|
}else if (ingestionStatus.equals("NEW") && vectorStoreMetadataDetails.isEmpty()) {
|
||||||
|
if (deleteGitRepoDetailsRequest.getKsGitInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitInfoId().isEmpty()) {
|
||||||
|
ksGitInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
|
logger.info("KsGitInfo with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deleteGitRepoDetailsRequest.getKsGitIngestionInfoId() != null && !deleteGitRepoDetailsRequest.getKsGitIngestionInfoId().isEmpty()) {
|
||||||
|
ksGitIngestionInfoRepository.deleteById(deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
|
logger.info("KSGitIngestionInfo with reponame {} and id {} deleted successfully.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
|
}
|
||||||
|
logger.info("records deleted successfully.");
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (!KSGitInfoExists) {
|
if (!KSGitInfoExists) {
|
||||||
logger.warn("getKsGitInfo with id {} does not exist.", deleteGitRepoDetailsRequest.getKsGitInfoId());
|
logger.warn("getKsGitInfo with reponame {} and id {} does not exist.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitInfoId());
|
||||||
} else if (!KSGitIngestionInfoExists) {
|
} else if (!KSGitIngestionInfoExists) {
|
||||||
logger.warn("KSGitIngestionInfo with id {} does not exist.", deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
logger.warn("KSGitIngestionInfo with reponame {} and id {} does not exist.", deleteGitRepoDetailsRequest.getKsApplicationName(), deleteGitRepoDetailsRequest.getKsGitIngestionInfoId());
|
||||||
} else if (vectorStoreMetadataDetails.isEmpty()) {
|
} else if (vectorStoreMetadataDetails.isEmpty()) {
|
||||||
logger.warn("No VectorStore Data available");
|
logger.warn("No VectorStore Data available");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import com.olympus.apollo.repository.KSGitInfoRepository;
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class GitRepositoryIngestor {
|
public class GitRepositoryIngestor {
|
||||||
|
|
||||||
@Value("${ingestion.repository.basepath}")
|
@Value("${ingestion.repository.basepath}")
|
||||||
private String ingestionRepositoryBasePath;
|
private String ingestionRepositoryBasePath;
|
||||||
|
|
||||||
@@ -50,14 +49,15 @@ public class GitRepositoryIngestor {
|
|||||||
|
|
||||||
@Async
|
@Async
|
||||||
public CompletableFuture<Void> ingestGitRepository(String repo) {
|
public CompletableFuture<Void> ingestGitRepository(String repo) {
|
||||||
String repoPath = ingestionRepositoryBasePath+"\\" + repo + "\\";
|
//String repoPath = "C:\\Users\\s.shamrao.shinde\\GenAIStorage\\" + repo + "\\";
|
||||||
logger.info("Repository path : " + repoPath);
|
//String repoPath = ksGitInfo.getRepoPath() + repo + "\\";
|
||||||
|
//logger.info("Repository path : " + repoPath);
|
||||||
|
|
||||||
Optional<KSGitInfo> optionalDocument = ksGitInfoRepository.findByRepoName(repo);
|
Optional<KSGitInfo> optionalDocument = ksGitInfoRepository.findByRepoName(repo);
|
||||||
if (optionalDocument.isPresent()) {
|
if (optionalDocument.isPresent()) {
|
||||||
KSGitInfo ksGitInfo = optionalDocument.get();
|
KSGitInfo ksGitInfo = optionalDocument.get();
|
||||||
if ("NEW".equals(ksGitInfo.getIngestionStatus())) {
|
if ("NEW".equals(ksGitInfo.getIngestionStatus()) || "ERROR".equals(ksGitInfo.getIngestionStatus())) {
|
||||||
ingestRepo(repoPath, ksGitInfo);
|
ingestRepo(repo, ksGitInfo);
|
||||||
} else {
|
} else {
|
||||||
logger.info("OOPS: Document is already Injected");
|
logger.info("OOPS: Document is already Injected");
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,10 @@ public class GitRepositoryIngestor {
|
|||||||
return CompletableFuture.completedFuture(null);
|
return CompletableFuture.completedFuture(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ingestRepo(String repoPath, KSGitInfo ksGitInfo) {
|
|
||||||
|
private void ingestRepo(String repo, KSGitInfo ksGitInfo) {
|
||||||
|
String repoPath = ingestionRepositoryBasePath +"\\"+ repo + "\\";
|
||||||
|
logger.info("Repository path : " + repoPath);
|
||||||
try (Git git = Git.open(new File(repoPath))) {
|
try (Git git = Git.open(new File(repoPath))) {
|
||||||
ksGitInfo.setIngestionStatus("IN PROGRESS");
|
ksGitInfo.setIngestionStatus("IN PROGRESS");
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,17 @@
|
|||||||
package com.olympus.apollo.services;
|
package com.olympus.apollo.services;
|
||||||
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
||||||
@ConfigurationProperties("storage")
|
@ConfigurationProperties("storage")
|
||||||
public class StorageProperties {
|
public class StorageProperties {
|
||||||
/**
|
/**
|
||||||
* Folder location for storing files
|
* Folder location for storing files
|
||||||
*/
|
*/
|
||||||
private String location = "C:\\Users\\s.shamrao.shinde\\GenAIStorage";
|
@Value("${ingestion.repository.basepath}")
|
||||||
|
private String ingestionRepositoryBasePath;
|
||||||
|
|
||||||
|
private String location = ingestionRepositoryBasePath;
|
||||||
//private String location = "C:\\WindTre\\Repository";
|
//private String location = "C:\\WindTre\\Repository";
|
||||||
public String getLocation() {
|
public String getLocation() {
|
||||||
return location;
|
return location;
|
||||||
|
|||||||
Reference in New Issue
Block a user