diff --git a/RFS/src/main/java/com/rfs/common/FilesystemRepo.java b/RFS/src/main/java/com/rfs/common/FilesystemRepo.java index 9b286556a..9aee8a63e 100644 --- a/RFS/src/main/java/com/rfs/common/FilesystemRepo.java +++ b/RFS/src/main/java/com/rfs/common/FilesystemRepo.java @@ -38,46 +38,55 @@ public FilesystemRepo(Path repoRootDir) { this.repoRootDir = repoRootDir; } + @Override public Path getRepoRootDir() { return repoRootDir; } + @Override public Path getSnapshotRepoDataFilePath() throws IOException { return findRepoFile(); } + @Override public Path getGlobalMetadataFilePath(String snapshotId) throws IOException { String filePath = getRepoRootDir().toString() + "/meta-" + snapshotId + ".dat"; return Path.of(filePath); } + @Override public Path getSnapshotMetadataFilePath(String snapshotId) throws IOException { String filePath = getRepoRootDir().toString() + "/snap-" + snapshotId + ".dat"; return Path.of(filePath); } + @Override public Path getIndexMetadataFilePath(String indexId, String indexFileId) throws IOException { String filePath = getRepoRootDir().toString() + "/indices/" + indexId + "/meta-" + indexFileId + ".dat"; return Path.of(filePath); } + @Override public Path getShardDirPath(String indexId, int shardId) throws IOException { String shardDirPath = getRepoRootDir().toString() + "/indices/" + indexId + "/" + shardId; return Path.of(shardDirPath); } + @Override public Path getShardMetadataFilePath(String snapshotId, String indexId, int shardId) throws IOException { Path shardDirPath = getShardDirPath(indexId, shardId); Path filePath = shardDirPath.resolve("snap-" + snapshotId + ".dat"); return filePath; } + @Override public Path getBlobFilePath(String indexId, int shardId, String blobName) throws IOException { Path shardDirPath = getShardDirPath(indexId, shardId); Path filePath = shardDirPath.resolve(blobName); return filePath; } + @Override public void prepBlobFiles(ShardMetadata.Data shardMetadata) throws IOException { // No work necessary for local filesystem } diff --git a/RFS/src/main/java/com/rfs/common/S3Repo.java b/RFS/src/main/java/com/rfs/common/S3Repo.java index c8e10ceff..ab9ca43c1 100644 --- a/RFS/src/main/java/com/rfs/common/S3Repo.java +++ b/RFS/src/main/java/com/rfs/common/S3Repo.java @@ -26,7 +26,8 @@ public class S3Repo implements SourceRepo { private static final Logger logger = LogManager.getLogger(S3Repo.class); - private static final double S3_TARGET_THROUGHPUT_GIBPS = 10.0; // Arbitrarily chosen + private static final double S3_TARGET_THROUGHPUT_GIBPS = 8.0; // Arbitrarily chosen + private static final long S3_MAX_MEMORY_BYTES = 1024L * 1024 * 1024; // Arbitrarily chosen private static final long S3_MINIMUM_PART_SIZE_BYTES = 8L * 1024 * 1024; // Default, but be explicit private final Path s3LocalDir; @@ -89,7 +90,9 @@ public static S3Repo create(Path s3LocalDir, S3Uri s3Uri, String s3Region) { S3AsyncClient s3Client = S3AsyncClient.crtBuilder() .credentialsProvider(DefaultCredentialsProvider.create()) .region(Region.of(s3Region)) + .retryConfiguration(r -> r.numRetries(3)) .targetThroughputInGbps(S3_TARGET_THROUGHPUT_GIBPS) + .maxNativeMemoryLimitInBytes(S3_MAX_MEMORY_BYTES) .minimumPartSizeInBytes(S3_MINIMUM_PART_SIZE_BYTES) .build(); @@ -103,10 +106,12 @@ public S3Repo(Path s3LocalDir, S3Uri s3Uri, String s3Region, S3AsyncClient s3Cli this.s3Client = s3Client; } + @Override public Path getRepoRootDir() { return s3LocalDir; } + @Override public Path getSnapshotRepoDataFilePath() throws IOException { S3Uri repoFileS3Uri = findRepoFileUri(); @@ -118,6 +123,7 @@ public Path getSnapshotRepoDataFilePath() throws IOException { return localFilePath; } + @Override public Path getGlobalMetadataFilePath(String snapshotId) throws IOException { String suffix = "meta-" + snapshotId + ".dat"; Path filePath = s3LocalDir.resolve(suffix); @@ -126,6 +132,7 @@ public Path getGlobalMetadataFilePath(String snapshotId) throws IOException { return filePath; } + @Override public Path getSnapshotMetadataFilePath(String snapshotId) throws IOException { String suffix = "snap-" + snapshotId + ".dat"; Path filePath = s3LocalDir.resolve(suffix); @@ -134,6 +141,7 @@ public Path getSnapshotMetadataFilePath(String snapshotId) throws IOException { return filePath; } + @Override public Path getIndexMetadataFilePath(String indexId, String indexFileId) throws IOException { String suffix = "indices/" + indexId + "/meta-" + indexFileId + ".dat"; Path filePath = s3LocalDir.resolve(suffix); @@ -142,12 +150,14 @@ public Path getIndexMetadataFilePath(String indexId, String indexFileId) throws return filePath; } + @Override public Path getShardDirPath(String indexId, int shardId) throws IOException { String suffix = "indices/" + indexId + "/" + shardId; Path shardDirPath = s3LocalDir.resolve(suffix); return shardDirPath; } + @Override public Path getShardMetadataFilePath(String snapshotId, String indexId, int shardId) throws IOException { String suffix = "indices/" + indexId + "/" + shardId + "/snap-" + snapshotId + ".dat"; Path filePath = s3LocalDir.resolve(suffix); @@ -156,6 +166,7 @@ public Path getShardMetadataFilePath(String snapshotId, String indexId, int shar return filePath; } + @Override public Path getBlobFilePath(String indexId, int shardId, String blobName) throws IOException { String suffix = "indices/" + indexId + "/" + shardId + "/" + blobName; Path filePath = s3LocalDir.resolve(suffix); @@ -164,6 +175,7 @@ public Path getBlobFilePath(String indexId, int shardId, String blobName) throws return filePath; } + @Override public void prepBlobFiles(ShardMetadata.Data shardMetadata) throws IOException { S3TransferManager transferManager = S3TransferManager.builder().s3Client(s3Client).build(); diff --git a/RFS/src/main/java/com/rfs/transformers/Transformer_ES_6_8_to_OS_2_11.java b/RFS/src/main/java/com/rfs/transformers/Transformer_ES_6_8_to_OS_2_11.java index 972cea24b..e681d6003 100644 --- a/RFS/src/main/java/com/rfs/transformers/Transformer_ES_6_8_to_OS_2_11.java +++ b/RFS/src/main/java/com/rfs/transformers/Transformer_ES_6_8_to_OS_2_11.java @@ -15,6 +15,7 @@ public Transformer_ES_6_8_to_OS_2_11(int awarenessAttributeDimensionality) { this.awarenessAttributeDimensionality = awarenessAttributeDimensionality; } + @Override public ObjectNode transformGlobalMetadata(ObjectNode root) { ObjectNode newRoot = mapper.createObjectNode(); @@ -49,6 +50,7 @@ public ObjectNode transformGlobalMetadata(ObjectNode root) { return newRoot; } + @Override public ObjectNode transformIndexMetadata(ObjectNode root){ ObjectNode newRoot = root.deepCopy(); diff --git a/RFS/src/main/java/com/rfs/transformers/Transformer_ES_7_10_OS_2_11.java b/RFS/src/main/java/com/rfs/transformers/Transformer_ES_7_10_OS_2_11.java index 227c4353f..7a4f91906 100644 --- a/RFS/src/main/java/com/rfs/transformers/Transformer_ES_7_10_OS_2_11.java +++ b/RFS/src/main/java/com/rfs/transformers/Transformer_ES_7_10_OS_2_11.java @@ -15,6 +15,7 @@ public Transformer_ES_7_10_OS_2_11(int awarenessAttributeDimensionality) { this.awarenessAttributeDimensionality = awarenessAttributeDimensionality; } + @Override public ObjectNode transformGlobalMetadata(ObjectNode root){ ObjectNode newRoot = mapper.createObjectNode(); @@ -64,6 +65,7 @@ public ObjectNode transformGlobalMetadata(ObjectNode root){ return newRoot; } + @Override public ObjectNode transformIndexMetadata(ObjectNode root){ ObjectNode newRoot = root.deepCopy(); diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataData_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataData_ES_6_8.java index c88cbd8e9..94a561315 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataData_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataData_ES_6_8.java @@ -9,6 +9,7 @@ public GlobalMetadataData_ES_6_8(ObjectNode root) { this.root = root; } + @Override public ObjectNode toObjectNode() throws Exception { return root; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataFactory_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataFactory_ES_6_8.java index c7ae0f0ff..b54f01879 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataFactory_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/GlobalMetadataFactory_ES_6_8.java @@ -7,11 +7,13 @@ public class GlobalMetadataFactory_ES_6_8 implements com.rfs.common.GlobalMetadata.Factory{ + @Override public GlobalMetadata.Data fromJsonNode(JsonNode root) throws Exception { ObjectNode metadataRoot = (ObjectNode) root.get("meta-data"); return new GlobalMetadataData_ES_6_8(metadataRoot); } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_6_8.SMILE_FACTORY; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataData_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataData_ES_6_8.java index 4fd89d738..b1a09c2d1 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataData_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataData_ES_6_8.java @@ -19,14 +19,17 @@ public IndexMetadataData_ES_6_8(ObjectNode root, String indexId, String indexNam this.indexName = indexName; } + @Override public ObjectNode getAliases() { return (ObjectNode) root.get("aliases"); } + @Override public String getId() { return indexId; } + @Override public ObjectNode getMappings() { if (mappings != null) { return mappings; @@ -39,14 +42,17 @@ public ObjectNode getMappings() { return mappings; } + @Override public String getName() { return indexName; } + @Override public int getNumberOfShards() { return this.getSettings().get("index").get("number_of_shards").asInt(); } + @Override public ObjectNode getSettings() { if (settings != null) { return settings; @@ -61,6 +67,7 @@ public ObjectNode getSettings() { return settings; } + @Override public ObjectNode toObjectNode() { return root; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataFactory_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataFactory_ES_6_8.java index 28ff31de9..d95b2a754 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataFactory_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/IndexMetadataFactory_ES_6_8.java @@ -8,15 +8,18 @@ public class IndexMetadataFactory_ES_6_8 implements com.rfs.common.IndexMetadata.Factory { + @Override public IndexMetadata.Data fromJsonNode(JsonNode root, String indexId, String indexName) throws Exception { ObjectNode objectNodeRoot = (ObjectNode) root.get(indexName); return new IndexMetadataData_ES_6_8(objectNodeRoot, indexId, indexName); } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_6_8.SMILE_FACTORY; } + @Override public String getIndexFileId(SnapshotRepo.Provider repoDataProvider, String snapshotName, String indexName) { return repoDataProvider.getSnapshotId(snapshotName); } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataData_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataData_ES_6_8.java index 6508cd1e8..88db38052 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataData_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataData_ES_6_8.java @@ -60,42 +60,52 @@ public ShardMetadataData_ES_6_8( this.files = convertedFiles; } + @Override public String getSnapshotName() { return snapshotName; } + @Override public String getIndexName() { return indexName; } + @Override public String getIndexId() { return indexId; } + @Override public int getShardId() { return shardId; } + @Override public int getIndexVersion() { return indexVersion; } + @Override public long getStartTime() { return startTime; } + @Override public long getTime() { return time; } + @Override public int getNumberOfFiles() { return numberOfFiles; } + @Override public long getTotalSize() { return totalSize; } + @Override public List getFiles() { List convertedFiles = new ArrayList<>(files); return convertedFiles; @@ -194,39 +204,48 @@ public FileInfo( this.numberOfParts = numberOfParts; } + @Override public String getName() { return name; } + @Override public String getPhysicalName() { return physicalName; } + @Override public long getLength() { return length; } + @Override public String getChecksum() { return checksum; } + @Override public long getPartSize() { return partSize; } + @Override public String getWrittenBy() { return writtenBy; } + @Override public BytesRef getMetaHash() { return metaHash; } + @Override public long getNumberOfParts() { return numberOfParts; } // The Snapshot file may be split into multiple blobs; use this to find the correct file name + @Override public String partName(long part) { if (numberOfParts > 1) { return name + ".part" + part; diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataFactory_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataFactory_ES_6_8.java index 6a1ca91d8..3286c24b5 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataFactory_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/ShardMetadataFactory_ES_6_8.java @@ -9,6 +9,7 @@ public class ShardMetadataFactory_ES_6_8 implements ShardMetadata.Factory { + @Override public ShardMetadata.Data fromJsonNode(JsonNode root, String indexId, String indexName, int shardId) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); @@ -31,6 +32,7 @@ public ShardMetadata.Data fromJsonNode(JsonNode root, String indexId, String ind ); } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_6_8.SMILE_FACTORY; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataData_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataData_ES_6_8.java index 2816e2e8c..c9f813d18 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataData_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataData_ES_6_8.java @@ -4,8 +4,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; +import com.rfs.common.SnapshotMetadata; -public class SnapshotMetadataData_ES_6_8 implements com.rfs.common.SnapshotMetadata.Data{ + +public class SnapshotMetadataData_ES_6_8 implements SnapshotMetadata.Data{ private String name; private String uuid; @@ -26,50 +28,62 @@ public class SnapshotMetadataData_ES_6_8 implements com.rfs.common.SnapshotMetad private int successfulShards; private List failures; // Haven't looked at this yet + @Override public String getName() { return name; } + @Override public String getUuid() { return uuid; } + @Override public int getVersionId() { return versionId; } + @Override public List getIndices() { return indices; } + @Override public String getState() { return state; } + @Override public String getReason() { return reason; } + @Override public boolean isIncludeGlobalState() { return includeGlobalState; } + @Override public long getStartTime() { return startTime; } + @Override public long getEndTime() { return endTime; } + @Override public int getTotalShards() { return totalShards; } + @Override public int getSuccessfulShards() { return successfulShards; } + @Override public List getFailures() { return failures; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataFactory_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataFactory_ES_6_8.java index 8391ac9b1..baf1f2e22 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataFactory_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataFactory_ES_6_8.java @@ -13,6 +13,7 @@ public class SnapshotMetadataFactory_ES_6_8 implements com.rfs.common.SnapshotMe * * [1] https://github.com/elastic/elasticsearch/blob/6.8/server/src/main/java/org/elasticsearch/snapshots/SnapshotInfo.java#L583 */ + @Override public SnapshotMetadata.Data fromJsonNode(JsonNode root) throws Exception { ObjectMapper mapper = new ObjectMapper(); ObjectNode objectNodeRoot = (ObjectNode) root; @@ -20,6 +21,7 @@ public SnapshotMetadata.Data fromJsonNode(JsonNode root) throws Exception { return snapshotMetadata; } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_6_8.SMILE_FACTORY; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoData_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoData_ES_6_8.java index f41e6ed26..ba64aba20 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoData_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoData_ES_6_8.java @@ -37,10 +37,12 @@ public static class Snapshot implements SnapshotRepo.Snapshot { public String uuid; public int state; + @Override public String getName() { return name; } + @Override public String getId() { return uuid; } @@ -64,14 +66,17 @@ public static Index fromRawIndex(String name, RawIndex rawIndex) { public String id; public List snapshots; + @Override public String getName() { return name; } + @Override public String getId() { return id; } + @Override public List getSnapshots() { return snapshots; } diff --git a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoProvider_ES_6_8.java b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoProvider_ES_6_8.java index 3a6cf65cd..e09b287d9 100644 --- a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoProvider_ES_6_8.java +++ b/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotRepoProvider_ES_6_8.java @@ -21,6 +21,7 @@ public List getIndices() { .collect(Collectors.toList()); } + @Override public List getIndicesInSnapshot(String snapshotName) { List matchedIndices = new ArrayList<>(); SnapshotRepoData_ES_6_8.Snapshot targetSnapshot = repoData.snapshots.stream() @@ -38,11 +39,13 @@ public List getIndicesInSnapshot(String snapshotName) { return matchedIndices; } + @Override public List getSnapshots() { List convertedList = new ArrayList<>(repoData.snapshots); return convertedList; } + @Override public String getSnapshotId(String snapshotName) { for (SnapshotRepoData_ES_6_8.Snapshot snapshot : repoData.snapshots) { if (snapshot.name.equals(snapshotName)) { @@ -52,6 +55,7 @@ public String getSnapshotId(String snapshotName) { return null; } + @Override public String getIndexId(String indexName) { return repoData.indices.get(indexName).id; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataData_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataData_ES_7_10.java index 13f745139..2629a9f0e 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataData_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataData_ES_7_10.java @@ -9,6 +9,7 @@ public GlobalMetadataData_ES_7_10(ObjectNode root) { this.root = root; } + @Override public ObjectNode toObjectNode() throws Exception { return root; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataFactory_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataFactory_ES_7_10.java index 65aec6a82..4bc92d03b 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataFactory_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/GlobalMetadataFactory_ES_7_10.java @@ -7,11 +7,13 @@ public class GlobalMetadataFactory_ES_7_10 implements com.rfs.common.GlobalMetadata.Factory{ + @Override public GlobalMetadata.Data fromJsonNode(JsonNode root) throws Exception { ObjectNode metadataRoot = (ObjectNode) root.get("meta-data"); return new GlobalMetadataData_ES_7_10(metadataRoot); } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_7_10.SMILE_FACTORY; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataData_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataData_ES_7_10.java index fa509d7fd..8f285df4d 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataData_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataData_ES_7_10.java @@ -19,14 +19,17 @@ public IndexMetadataData_ES_7_10(ObjectNode root, String indexId, String indexNa this.indexName = indexName; } + @Override public ObjectNode getAliases() { return (ObjectNode) root.get("aliases"); } + @Override public String getId() { return indexId; } + @Override public ObjectNode getMappings() { if (mappings != null) { return mappings; @@ -39,14 +42,17 @@ public ObjectNode getMappings() { return mappings; } + @Override public String getName() { return indexName; } + @Override public int getNumberOfShards() { return this.getSettings().get("index").get("number_of_shards").asInt(); } + @Override public ObjectNode getSettings() { if (settings != null) { return settings; @@ -61,6 +67,7 @@ public ObjectNode getSettings() { return settings; } + @Override public ObjectNode toObjectNode() { return root; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataFactory_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataFactory_ES_7_10.java index 251e58681..cebd8a3f2 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataFactory_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/IndexMetadataFactory_ES_7_10.java @@ -8,15 +8,18 @@ public class IndexMetadataFactory_ES_7_10 implements com.rfs.common.IndexMetadata.Factory { + @Override public IndexMetadata.Data fromJsonNode(JsonNode root, String indexId, String indexName) throws Exception { ObjectNode objectNodeRoot = (ObjectNode) root.get(indexName); return new IndexMetadataData_ES_7_10(objectNodeRoot, indexId, indexName); } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_7_10.SMILE_FACTORY; } + @Override public String getIndexFileId(SnapshotRepo.Provider repoDataProvider, String snapshotName, String indexName) { SnapshotRepoProvider_ES_7_10 providerES710 = (SnapshotRepoProvider_ES_7_10) repoDataProvider; return providerES710.getIndexMetadataId(snapshotName, indexName); diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataData_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataData_ES_7_10.java index 4d78ccd5b..77f7cf4ea 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataData_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataData_ES_7_10.java @@ -59,42 +59,52 @@ public ShardMetadataData_ES_7_10( this.files = convertedFiles; } + @Override public String getSnapshotName() { return snapshotName; } + @Override public String getIndexName() { return indexName; } + @Override public String getIndexId() { return indexId; } + @Override public int getShardId() { return shardId; } + @Override public int getIndexVersion() { return indexVersion; } + @Override public long getStartTime() { return startTime; } + @Override public long getTime() { return time; } + @Override public int getNumberOfFiles() { return numberOfFiles; } + @Override public long getTotalSize() { return totalSize; } + @Override public List getFiles() { List convertedFiles = new ArrayList<>(files); return convertedFiles; @@ -193,39 +203,48 @@ public FileInfo( this.numberOfParts = numberOfParts; } + @Override public String getName() { return name; } + @Override public String getPhysicalName() { return physicalName; } + @Override public long getLength() { return length; } + @Override public String getChecksum() { return checksum; } + @Override public long getPartSize() { return partSize; } + @Override public String getWrittenBy() { return writtenBy; } + @Override public BytesRef getMetaHash() { return metaHash; } + @Override public long getNumberOfParts() { return numberOfParts; } // The Snapshot file may be split into multiple blobs; use this to find the correct file name + @Override public String partName(long part) { if (numberOfParts > 1) { return name + ".part" + part; diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataFactory_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataFactory_ES_7_10.java index 3b4107eb2..b44797a4f 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataFactory_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/ShardMetadataFactory_ES_7_10.java @@ -9,7 +9,7 @@ public class ShardMetadataFactory_ES_7_10 implements ShardMetadata.Factory { - + @Override public ShardMetadata.Data fromJsonNode(JsonNode root, String indexId, String indexName, int shardId) throws Exception { ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); @@ -32,6 +32,7 @@ public ShardMetadata.Data fromJsonNode(JsonNode root, String indexId, String ind ); } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_7_10.SMILE_FACTORY; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataData_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataData_ES_7_10.java index eebc0d747..1e2e8bdd6 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataData_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataData_ES_7_10.java @@ -4,8 +4,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; +import com.rfs.common.SnapshotMetadata; -public class SnapshotMetadataData_ES_7_10 implements com.rfs.common.SnapshotMetadata.Data{ + +public class SnapshotMetadataData_ES_7_10 implements SnapshotMetadata.Data{ private String name; private String uuid; @@ -30,50 +32,62 @@ public class SnapshotMetadataData_ES_7_10 implements com.rfs.common.SnapshotMeta @JsonProperty("metadata") private Object metaData; // Haven't looked into this yet + @Override public String getName() { return name; } + @Override public String getUuid() { return uuid; } + @Override public int getVersionId() { return versionId; } + @Override public List getIndices() { return indices; } + @Override public String getState() { return state; } + @Override public String getReason() { return reason; } + @Override public boolean isIncludeGlobalState() { return includeGlobalState; } + @Override public long getStartTime() { return startTime; } + @Override public long getEndTime() { return endTime; } + @Override public int getTotalShards() { return totalShards; } + @Override public int getSuccessfulShards() { return successfulShards; } + @Override public List getFailures() { return failures; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataFactory_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataFactory_ES_7_10.java index 7e8860e22..8b8fecf69 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataFactory_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataFactory_ES_7_10.java @@ -13,6 +13,7 @@ public class SnapshotMetadataFactory_ES_7_10 implements com.rfs.common.SnapshotM * * [1] https://github.com/elastic/elasticsearch/blob/6.8/server/src/main/java/org/elasticsearch/snapshots/SnapshotInfo.java#L583 */ + @Override public SnapshotMetadata.Data fromJsonNode(JsonNode root) throws Exception { ObjectMapper mapper = new ObjectMapper(); ObjectNode objectNodeRoot = (ObjectNode) root; @@ -20,6 +21,7 @@ public SnapshotMetadata.Data fromJsonNode(JsonNode root) throws Exception { return snapshotMetadata; } + @Override public SmileFactory getSmileFactory() { return ElasticsearchConstants_ES_7_10.SMILE_FACTORY; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoData_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoData_ES_7_10.java index d61d22c2e..e716bddca 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoData_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoData_ES_7_10.java @@ -44,10 +44,12 @@ public static class Snapshot implements SnapshotRepo.Snapshot { public Map indexMetadataLookup; public String version; + @Override public String getName() { return name; } + @Override public String getId() { return uuid; } @@ -75,14 +77,17 @@ public static Index fromRawIndex(String name, RawIndex rawIndex) { public List snapshots; public List shardGenerations; + @Override public String getName() { return name; } + @Override public String getId() { return id; } + @Override public List getSnapshots() { return snapshots; } diff --git a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoProvider_ES_7_10.java b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoProvider_ES_7_10.java index 9561d716a..4835747e4 100644 --- a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoProvider_ES_7_10.java +++ b/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotRepoProvider_ES_7_10.java @@ -21,6 +21,7 @@ public List getIndices() { .collect(Collectors.toList()); } + @Override public List getIndicesInSnapshot(String snapshotName) { List matchedIndices = new ArrayList<>(); SnapshotRepoData_ES_7_10.Snapshot targetSnapshot = repoData.snapshots.stream() @@ -40,6 +41,7 @@ public List getIndicesInSnapshot(String snapshotName) { return matchedIndices; } + @Override public List getSnapshots() { List convertedList = new ArrayList<>(repoData.snapshots); return convertedList; @@ -54,6 +56,7 @@ public String getSnapshotId(String snapshotName) { return null; } + @Override public String getIndexId(String indexName) { return repoData.indices.get(indexName).id; } diff --git a/RFS/src/main/java/com/rfs/version_os_2_11/GlobalMetadataData_OS_2_11.java b/RFS/src/main/java/com/rfs/version_os_2_11/GlobalMetadataData_OS_2_11.java index dde9ed553..b99d601e9 100644 --- a/RFS/src/main/java/com/rfs/version_os_2_11/GlobalMetadataData_OS_2_11.java +++ b/RFS/src/main/java/com/rfs/version_os_2_11/GlobalMetadataData_OS_2_11.java @@ -9,6 +9,7 @@ public GlobalMetadataData_OS_2_11(ObjectNode root) { this.root = root; } + @Override public ObjectNode toObjectNode() throws Exception { return root; } diff --git a/RFS/src/main/java/com/rfs/version_os_2_11/IndexMetadataData_OS_2_11.java b/RFS/src/main/java/com/rfs/version_os_2_11/IndexMetadataData_OS_2_11.java index f05fa604f..81f5c4aaf 100644 --- a/RFS/src/main/java/com/rfs/version_os_2_11/IndexMetadataData_OS_2_11.java +++ b/RFS/src/main/java/com/rfs/version_os_2_11/IndexMetadataData_OS_2_11.java @@ -2,7 +2,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode; -public class IndexMetadataData_OS_2_11 implements com.rfs.common.IndexMetadata.Data { +import com.rfs.common.IndexMetadata; + +public class IndexMetadataData_OS_2_11 implements IndexMetadata.Data { private ObjectNode root; private String indexId; private String indexName; @@ -13,30 +15,37 @@ public IndexMetadataData_OS_2_11(ObjectNode root, String indexId, String indexNa this.indexName = indexName; } + @Override public ObjectNode getAliases() { return (ObjectNode) root.get("aliases"); } + @Override public String getId() { return indexId; } + @Override public ObjectNode getMappings() { return (ObjectNode) root.get("mappings"); } + @Override public String getName() { return indexName; } + @Override public int getNumberOfShards() { return this.getSettings().get("number_of_shards").asInt(); } + @Override public ObjectNode getSettings() { return (ObjectNode) root.get("settings"); } + @Override public ObjectNode toObjectNode() { return root; }