Skip to content

Commit ce481e5

Browse files
authored
[Transform] Read metadata from Project State (#131205)
Add a ProjectState version of the TransformMetadata helper methods.
1 parent 2af0e9f commit ce481e5

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/transform/TransformMetadata.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import org.elasticsearch.cluster.ClusterState;
1313
import org.elasticsearch.cluster.Diff;
1414
import org.elasticsearch.cluster.NamedDiff;
15+
import org.elasticsearch.cluster.ProjectState;
1516
import org.elasticsearch.cluster.metadata.Metadata;
17+
import org.elasticsearch.cluster.metadata.ProjectId;
1618
import org.elasticsearch.common.Strings;
1719
import org.elasticsearch.common.collect.Iterators;
1820
import org.elasticsearch.common.io.stream.StreamInput;
@@ -209,6 +211,9 @@ public TransformMetadata build() {
209211
}
210212
}
211213

214+
/**
215+
* @deprecated use {@link #transformMetadata(ClusterState, ProjectId)}
216+
*/
212217
@Deprecated(forRemoval = true)
213218
public static TransformMetadata getTransformMetadata(ClusterState state) {
214219
TransformMetadata TransformMetadata = (state == null) ? null : state.metadata().getSingleProjectCustom(TYPE);
@@ -218,6 +223,24 @@ public static TransformMetadata getTransformMetadata(ClusterState state) {
218223
return TransformMetadata;
219224
}
220225

226+
public static TransformMetadata transformMetadata(@Nullable ClusterState state, @Nullable ProjectId projectId) {
227+
if (state == null || projectId == null) {
228+
return EMPTY_METADATA;
229+
}
230+
return transformMetadata(state.projectState(projectId));
231+
}
232+
233+
public static TransformMetadata transformMetadata(@Nullable ProjectState projectState) {
234+
if (projectState == null) {
235+
return EMPTY_METADATA;
236+
}
237+
TransformMetadata transformMetadata = projectState.metadata().custom(TYPE);
238+
if (transformMetadata == null) {
239+
return EMPTY_METADATA;
240+
}
241+
return transformMetadata;
242+
}
243+
221244
public static boolean upgradeMode(ClusterState state) {
222245
return getTransformMetadata(state).upgradeMode();
223246
}

x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/TransformMetadataTests.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,17 @@
77

88
package org.elasticsearch.xpack.transform;
99

10+
import org.elasticsearch.cluster.ClusterName;
11+
import org.elasticsearch.cluster.ClusterState;
12+
import org.elasticsearch.cluster.metadata.Metadata;
13+
import org.elasticsearch.cluster.metadata.ProjectMetadata;
1014
import org.elasticsearch.common.io.stream.Writeable;
1115
import org.elasticsearch.test.AbstractChunkedSerializingTestCase;
1216
import org.elasticsearch.xcontent.XContentParser;
1317
import org.elasticsearch.xpack.core.transform.TransformMetadata;
1418

19+
import static org.hamcrest.Matchers.equalTo;
20+
1521
public class TransformMetadataTests extends AbstractChunkedSerializingTestCase<TransformMetadata> {
1622

1723
@Override
@@ -35,4 +41,39 @@ protected TransformMetadata mutateInstance(TransformMetadata instance) {
3541
.upgradeMode(instance.upgradeMode() == false)
3642
.build();
3743
}
44+
45+
public void testTransformMetadataFromClusterState() {
46+
var expectedTransformMetadata = new TransformMetadata.Builder().resetMode(true).upgradeMode(true).build();
47+
var projectId = randomUniqueProjectId();
48+
var clusterState = ClusterState.builder(new ClusterName("_name"))
49+
.metadata(
50+
Metadata.builder().put(ProjectMetadata.builder(projectId).putCustom(TransformMetadata.TYPE, expectedTransformMetadata))
51+
)
52+
.build();
53+
54+
assertThat(TransformMetadata.transformMetadata(clusterState, projectId), equalTo(expectedTransformMetadata));
55+
assertThat(TransformMetadata.getTransformMetadata(clusterState), equalTo(expectedTransformMetadata));
56+
}
57+
58+
public void testTransformMetadataFromMissingClusterState() {
59+
assertThat(TransformMetadata.transformMetadata(null, randomUniqueProjectId()), equalTo(TransformMetadata.EMPTY_METADATA));
60+
assertThat(TransformMetadata.getTransformMetadata(null), equalTo(TransformMetadata.EMPTY_METADATA));
61+
}
62+
63+
public void testTransformMetadataFromMissingProjectId() {
64+
assertThat(
65+
TransformMetadata.transformMetadata(ClusterState.builder(new ClusterName("_name")).build(), null),
66+
equalTo(TransformMetadata.EMPTY_METADATA)
67+
);
68+
}
69+
70+
public void testTransformMetadataWhenAbsentFromClusterState() {
71+
var projectId = randomUniqueProjectId();
72+
var clusterState = ClusterState.builder(new ClusterName("_name"))
73+
.metadata(Metadata.builder().put(ProjectMetadata.builder(projectId)))
74+
.build();
75+
76+
assertThat(TransformMetadata.transformMetadata(clusterState, projectId), equalTo(TransformMetadata.EMPTY_METADATA));
77+
assertThat(TransformMetadata.getTransformMetadata(clusterState), equalTo(TransformMetadata.EMPTY_METADATA));
78+
}
3879
}

0 commit comments

Comments
 (0)