Skip to content

Commit

Permalink
Merge branch '2.x' into backport/backport-16763-to-2.x
Browse files Browse the repository at this point in the history
Signed-off-by: Pranshu Shukla <[email protected]>
  • Loading branch information
Pranshu-S authored Dec 10, 2024
2 parents 541681f + 26d3d7d commit 7e4f89e
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Fix `doc_values` only (`index:false`) IP field searching for masks ([#16628](https://github.com/opensearch-project/OpenSearch/pull/16628))
- Fix stale cluster state custom file deletion ([#16670](https://github.com/opensearch-project/OpenSearch/pull/16670))
- Bound the size of cache in deprecation logger ([16702](https://github.com/opensearch-project/OpenSearch/issues/16702))
- Ensure consistency of system flag on IndexMetadata after diff is applied ([#16644](https://github.com/opensearch-project/OpenSearch/pull/16644))
- Skip remote-repositories validations for node-joins when RepositoriesService is not in sync with cluster-state ([#16763](https://github.com/opensearch-project/OpenSearch/pull/16763))

### Security
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
*
* @opensearch.internal
*/
private static class IndexMetadataDiff implements Diff<IndexMetadata> {
static class IndexMetadataDiff implements Diff<IndexMetadata> {

private final String index;
private final int routingNumShards;
Expand Down Expand Up @@ -1192,7 +1192,7 @@ public IndexMetadata apply(IndexMetadata part) {
builder.customMetadata.putAll(customData.apply(part.customData));
builder.inSyncAllocationIds.putAll(inSyncAllocationIds.apply(part.inSyncAllocationIds));
builder.rolloverInfos.putAll(rolloverInfos.apply(part.rolloverInfos));
builder.system(part.isSystem);
builder.system(isSystem);
builder.context(context);
return builder.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@

package org.opensearch.cluster.metadata;

import org.opensearch.Version;
import org.opensearch.action.admin.indices.rollover.MaxAgeCondition;
import org.opensearch.action.admin.indices.rollover.MaxDocsCondition;
import org.opensearch.action.admin.indices.rollover.MaxSizeCondition;
import org.opensearch.action.admin.indices.rollover.RolloverInfo;
import org.opensearch.cluster.Diff;
import org.opensearch.common.UUIDs;
import org.opensearch.common.io.stream.BytesStreamOutput;
import org.opensearch.common.settings.Settings;
import org.opensearch.common.unit.TimeValue;
Expand All @@ -47,6 +50,7 @@
import org.opensearch.core.common.io.stream.NamedWriteableRegistry;
import org.opensearch.core.common.io.stream.StreamInput;
import org.opensearch.core.common.unit.ByteSizeValue;
import org.opensearch.core.index.Index;
import org.opensearch.core.index.shard.ShardId;
import org.opensearch.core.xcontent.MediaTypeRegistry;
import org.opensearch.core.xcontent.NamedXContentRegistry;
Expand Down Expand Up @@ -88,6 +92,26 @@ protected NamedXContentRegistry xContentRegistry() {
return new NamedXContentRegistry(IndicesModule.getNamedXContents());
}

// Create the index metadata for a given index, with the specified version.
private static IndexMetadata createIndexMetadata(final Index index, final long version) {
return createIndexMetadata(index, version, false);
}

private static IndexMetadata createIndexMetadata(final Index index, final long version, final boolean isSystem) {
final Settings settings = Settings.builder()
.put(IndexMetadata.SETTING_VERSION_CREATED, Version.CURRENT)
.put(IndexMetadata.SETTING_INDEX_UUID, index.getUUID())
.build();
return IndexMetadata.builder(index.getName())
.settings(settings)
.numberOfShards(1)
.numberOfReplicas(0)
.creationDate(System.currentTimeMillis())
.version(version)
.system(isSystem)
.build();
}

public void testIndexMetadataSerialization() throws IOException {
Integer numShard = randomFrom(1, 2, 4, 8, 16);
int numberOfReplicas = randomIntBetween(0, 10);
Expand Down Expand Up @@ -568,4 +592,18 @@ public void testParseIndexNameCannotFormatNumber() {
}
}

/**
* Test that changes to indices metadata are applied
*/
public void testIndicesMetadataDiffSystemFlagFlipped() {
String indexUuid = UUIDs.randomBase64UUID();
Index index = new Index("test-index", indexUuid);
IndexMetadata previousIndexMetadata = createIndexMetadata(index, 1);
IndexMetadata nextIndexMetadata = createIndexMetadata(index, 2, true);
Diff<IndexMetadata> diff = new IndexMetadata.IndexMetadataDiff(previousIndexMetadata, nextIndexMetadata);
IndexMetadata indexMetadataAfterDiffApplied = diff.apply(previousIndexMetadata);
assertTrue(indexMetadataAfterDiffApplied.isSystem());
assertThat(indexMetadataAfterDiffApplied.getVersion(), equalTo(nextIndexMetadata.getVersion()));
}

}

0 comments on commit 7e4f89e

Please sign in to comment.