From d84b9981e1ee04d0a01577490ed552fdcf81e94f Mon Sep 17 00:00:00 2001 From: Peter Nied Date: Wed, 18 Sep 2024 23:28:25 +0000 Subject: [PATCH] Remove unused snapshot metadata code The snapshot metadata and associated factory are not showing up in any code coverage reports and based on the removal not impacting any other files this looks like a safe change that our CI suite will verify. - Related https://opensearch.atlassian.net/browse/MIGRATIONS-2004 Signed-off-by: Peter Nied --- .../java/com/rfs/models/SnapshotMetadata.java | 102 ------------------ .../SnapshotMetadataData_ES_6_8.java | 30 ------ .../SnapshotMetadataFactory_ES_6_8.java | 31 ------ .../SnapshotMetadataData_ES_7_10.java | 34 ------ .../SnapshotMetadataFactory_ES_7_10.java | 33 ------ 5 files changed, 230 deletions(-) delete mode 100644 RFS/src/main/java/com/rfs/models/SnapshotMetadata.java delete mode 100644 RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataData_ES_6_8.java delete mode 100644 RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataFactory_ES_6_8.java delete mode 100644 RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataData_ES_7_10.java delete mode 100644 RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataFactory_ES_7_10.java diff --git a/RFS/src/main/java/com/rfs/models/SnapshotMetadata.java b/RFS/src/main/java/com/rfs/models/SnapshotMetadata.java deleted file mode 100644 index 002438ae4..000000000 --- a/RFS/src/main/java/com/rfs/models/SnapshotMetadata.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.rfs.models; - -import java.io.ByteArrayInputStream; -import java.io.FileInputStream; -import java.io.InputStream; -import java.nio.file.Path; -import java.util.List; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.smile.SmileFactory; -import org.apache.lucene.codecs.CodecUtil; - -import com.rfs.common.ByteArrayIndexInput; -import com.rfs.common.SnapshotRepo; -import com.rfs.common.SourceRepo; - -/** - * Defines the behavior expected of an object that will surface the metadata of a snapshot - * See: https://github.com/elastic/elasticsearch/blob/7.10/server/src/main/java/org/elasticsearch/snapshots/SnapshotInfo.java#L615 - * See: https://github.com/elastic/elasticsearch/blob/6.8/server/src/main/java/org/elasticsearch/snapshots/SnapshotInfo.java#L583 - */ -public interface SnapshotMetadata { - // TODO: Turn into an ENUM when we know the other possible values - public static final String SNAPSHOT_SUCCEEDED = "SUCCESS"; - - public String getName(); - - public String getUuid(); - - public int getVersionId(); - - public List getIndices(); - - public String getState(); - - public String getReason(); - - public boolean isIncludeGlobalState(); - - public long getStartTime(); - - public long getEndTime(); - - public int getTotalShards(); - - public int getSuccessfulShards(); - - public List getFailures(); - - /** - * Defines the behavior required to read a snapshot metadata as JSON and convert it into a Data object - */ - public static interface Factory { - private JsonNode getJsonNode( - SourceRepo repo, - SnapshotRepo.Provider repoDataProvider, - String snapshotName, - SmileFactory smileFactory - ) throws Exception { - String snapshotId = repoDataProvider.getSnapshotId(snapshotName); - - if (snapshotId == null) { - throw new Exception("Snapshot not found"); - } - - Path filePath = repo.getSnapshotMetadataFilePath(snapshotId); - - try (InputStream fis = new FileInputStream(filePath.toFile())) { - // Don't fully understand what the value of this code is, but it progresses the stream so we need to do - // it - // See: - // https://github.com/elastic/elasticsearch/blob/6.8/server/src/main/java/org/elasticsearch/repositories/blobstore/ChecksumBlobStoreFormat.java#L100 - byte[] bytes = fis.readAllBytes(); - ByteArrayIndexInput indexInput = new ByteArrayIndexInput("snapshot-metadata", bytes); - CodecUtil.checksumEntireFile(indexInput); - CodecUtil.checkHeader(indexInput, "snapshot", 1, 1); - int filePointer = (int) indexInput.getFilePointer(); - InputStream bis = new ByteArrayInputStream(bytes, filePointer, bytes.length - filePointer); - - ObjectMapper smileMapper = new ObjectMapper(smileFactory); - return smileMapper.readTree(bis); - } - } - - default SnapshotMetadata fromRepo(SourceRepo repo, SnapshotRepo.Provider repoDataProvider, String snapshotName) - throws Exception { - SmileFactory smileFactory = getSmileFactory(); - JsonNode root = getJsonNode(repo, repoDataProvider, snapshotName, smileFactory); - return fromJsonNode(root); - } - - public SnapshotMetadata fromJsonNode(JsonNode root) throws Exception; - - public SmileFactory getSmileFactory(); - } - - default boolean isSuccessful() { - return SNAPSHOT_SUCCEEDED.equals(getState()); - } - -} 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 deleted file mode 100644 index 14f4b7b5c..000000000 --- a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataData_ES_6_8.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.rfs.version_es_6_8; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import com.rfs.models.SnapshotMetadata; -import lombok.Getter; - -@Getter -public class SnapshotMetadataData_ES_6_8 implements SnapshotMetadata { - private String name; - private String uuid; - @JsonProperty("version_id") - private int versionId; - private List indices; - private String state; - private String reason; - @JsonProperty("include_global_state") - private boolean includeGlobalState; - @JsonProperty("start_time") - private long startTime; - @JsonProperty("end_time") - private long endTime; - @JsonProperty("total_shards") - private int totalShards; - @JsonProperty("successful_shards") - private int successfulShards; - private List failures; // Haven't looked at this yet -} 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 deleted file mode 100644 index dc328faf7..000000000 --- a/RFS/src/main/java/com/rfs/version_es_6_8/SnapshotMetadataFactory_ES_6_8.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.rfs.version_es_6_8; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.dataformat.smile.SmileFactory; - -import com.rfs.models.SnapshotMetadata; - -public class SnapshotMetadataFactory_ES_6_8 implements SnapshotMetadata.Factory { - - /** - * A version of the Elasticsearch approach simplified by assuming JSON; see here [1] for more details. - * - * [1] https://github.com/elastic/elasticsearch/blob/6.8/server/src/main/java/org/elasticsearch/snapshots/SnapshotInfo.java#L583 - */ - @Override - public SnapshotMetadata fromJsonNode(JsonNode root) throws Exception { - ObjectMapper mapper = new ObjectMapper(); - ObjectNode objectNodeRoot = (ObjectNode) root; - return mapper.treeToValue( - objectNodeRoot.get("snapshot"), - SnapshotMetadataData_ES_6_8.class - ); - } - - @Override - public SmileFactory getSmileFactory() { - return ElasticsearchConstants_ES_6_8.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 deleted file mode 100644 index 09912837d..000000000 --- a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataData_ES_7_10.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.rfs.version_es_7_10; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import com.rfs.models.SnapshotMetadata; -import lombok.Getter; - -@Getter -public class SnapshotMetadataData_ES_7_10 implements SnapshotMetadata { - private String name; - private String uuid; - @JsonProperty("version_id") - private int versionId; - private List indices; - private String state; - private String reason; - @JsonProperty("include_global_state") - private boolean includeGlobalState; - @JsonProperty("start_time") - private long startTime; - @JsonProperty("end_time") - private long endTime; - @JsonProperty("total_shards") - private int totalShards; - @JsonProperty("successful_shards") - private int successfulShards; - private List failures; // Haven't looked into this yet - @JsonProperty("data_streams") - private List dataStreams; // Haven't looked into this yet - @JsonProperty("metadata") - private Object metaData; // Haven't looked into this yet -} 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 deleted file mode 100644 index 565803e0f..000000000 --- a/RFS/src/main/java/com/rfs/version_es_7_10/SnapshotMetadataFactory_ES_7_10.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.rfs.version_es_7_10; - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.dataformat.smile.SmileFactory; - -import com.rfs.models.SnapshotMetadata; - -public class SnapshotMetadataFactory_ES_7_10 implements SnapshotMetadata.Factory { - - /** - * A version of the Elasticsearch approach simplified by assuming JSON; see here [1] for more details. - * - * [1] https://github.com/elastic/elasticsearch/blob/6.8/server/src/main/java/org/elasticsearch/snapshots/SnapshotInfo.java#L583 - */ - @Override - public SnapshotMetadata fromJsonNode(JsonNode root) throws Exception { - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - ObjectNode objectNodeRoot = (ObjectNode) root; - return mapper.treeToValue( - objectNodeRoot.get("snapshot"), - SnapshotMetadataData_ES_7_10.class - ); - } - - @Override - public SmileFactory getSmileFactory() { - return ElasticsearchConstants_ES_7_10.SMILE_FACTORY; - } -}