Skip to content

Commit b49811a

Browse files
authored
Fix ILM Lifecycle Policy to allow unknown fields (#38125)
A few of the ILM Lifecycle Policy and classes did not allow for unknown fields. This commit sets those parsers and fixes the tests for the parsers. Relates #36938 Relates #38041
1 parent 0feb2a6 commit b49811a

25 files changed

+87
-25
lines changed

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/AllocateAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class AllocateAction implements LifecycleAction, ToXContentObject {
4040
static final ParseField REQUIRE_FIELD = new ParseField("require");
4141

4242
@SuppressWarnings("unchecked")
43-
private static final ConstructingObjectParser<AllocateAction, Void> PARSER = new ConstructingObjectParser<>(NAME,
43+
private static final ConstructingObjectParser<AllocateAction, Void> PARSER = new ConstructingObjectParser<>(NAME, true,
4444
a -> new AllocateAction((Integer) a[0], (Map<String, String>) a[1], (Map<String, String>) a[2], (Map<String, String>) a[3]));
4545

4646
static {

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/DeleteAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
public class DeleteAction implements LifecycleAction, ToXContentObject {
3131
public static final String NAME = "delete";
3232

33-
private static final ObjectParser<DeleteAction, Void> PARSER = new ObjectParser<>(NAME, DeleteAction::new);
33+
private static final ObjectParser<DeleteAction, Void> PARSER = new ObjectParser<>(NAME, true, DeleteAction::new);
3434

3535
public static DeleteAction parse(XContentParser parser) {
3636
return PARSER.apply(parser, null);

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/ForceMergeAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class ForceMergeAction implements LifecycleAction, ToXContentObject {
3333
private static final ParseField MAX_NUM_SEGMENTS_FIELD = new ParseField("max_num_segments");
3434

3535
private static final ConstructingObjectParser<ForceMergeAction, Void> PARSER = new ConstructingObjectParser<>(NAME,
36-
false, a -> {
36+
true, a -> {
3737
int maxNumSegments = (int) a[0];
3838
return new ForceMergeAction(maxNumSegments);
3939
});

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/FreezeAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
public class FreezeAction implements LifecycleAction, ToXContentObject {
3030
public static final String NAME = "freeze";
3131

32-
private static final ObjectParser<FreezeAction, Void> PARSER = new ObjectParser<>(NAME, FreezeAction::new);
32+
private static final ObjectParser<FreezeAction, Void> PARSER = new ObjectParser<>(NAME, true, FreezeAction::new);
3333

3434
public static FreezeAction parse(XContentParser parser) {
3535
return PARSER.apply(parser, null);

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/LifecyclePolicy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class LifecyclePolicy implements ToXContentObject {
4444
static final ParseField PHASES_FIELD = new ParseField("phases");
4545

4646
@SuppressWarnings("unchecked")
47-
public static ConstructingObjectParser<LifecyclePolicy, String> PARSER = new ConstructingObjectParser<>("lifecycle_policy", false,
47+
public static ConstructingObjectParser<LifecyclePolicy, String> PARSER = new ConstructingObjectParser<>("lifecycle_policy", true,
4848
(a, name) -> {
4949
List<Phase> phases = (List<Phase>) a[0];
5050
Map<String, Phase> phaseMap = phases.stream().collect(Collectors.toMap(Phase::getName, Function.identity()));

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/LifecyclePolicyMetadata.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ public class LifecyclePolicyMetadata implements ToXContentObject {
3838
static final ParseField MODIFIED_DATE = new ParseField("modified_date");
3939

4040
@SuppressWarnings("unchecked")
41-
public static final ConstructingObjectParser<LifecyclePolicyMetadata, String> PARSER = new ConstructingObjectParser<>("policy_metadata",
41+
public static final ConstructingObjectParser<LifecyclePolicyMetadata, String> PARSER = new ConstructingObjectParser<>(
42+
"policy_metadata", true,
4243
a -> {
4344
LifecyclePolicy policy = (LifecyclePolicy) a[0];
4445
return new LifecyclePolicyMetadata(policy, (long) a[1], ZonedDateTime.parse((String) a[2]).toInstant().toEpochMilli());

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/Phase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class Phase implements ToXContentObject {
4444
static final ParseField ACTIONS_FIELD = new ParseField("actions");
4545

4646
@SuppressWarnings("unchecked")
47-
private static final ConstructingObjectParser<Phase, String> PARSER = new ConstructingObjectParser<>("phase", false,
47+
private static final ConstructingObjectParser<Phase, String> PARSER = new ConstructingObjectParser<>("phase", true,
4848
(a, name) -> new Phase(name, (TimeValue) a[0], ((List<LifecycleAction>) a[1]).stream()
4949
.collect(Collectors.toMap(LifecycleAction::getName, Function.identity()))));
5050
static {

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/PhaseExecutionInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class PhaseExecutionInfo implements ToXContentObject {
4040
private static final ParseField MODIFIED_DATE_IN_MILLIS_FIELD = new ParseField("modified_date_in_millis");
4141

4242
private static final ConstructingObjectParser<PhaseExecutionInfo, String> PARSER = new ConstructingObjectParser<>(
43-
"phase_execution_info", false,
43+
"phase_execution_info", true,
4444
(a, name) -> new PhaseExecutionInfo((String) a[0], (Phase) a[1], (long) a[2], (long) a[3]));
4545
static {
4646
PARSER.declareString(ConstructingObjectParser.constructorArg(), POLICY_NAME_FIELD);

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/ReadOnlyAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
public class ReadOnlyAction implements LifecycleAction, ToXContentObject {
3030
public static final String NAME = "readonly";
3131

32-
private static final ObjectParser<ReadOnlyAction, Void> PARSER = new ObjectParser<>(NAME, false, ReadOnlyAction::new);
32+
private static final ObjectParser<ReadOnlyAction, Void> PARSER = new ObjectParser<>(NAME, true, ReadOnlyAction::new);
3333

3434
public static ReadOnlyAction parse(XContentParser parser) {
3535
return PARSER.apply(parser, null);

client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/RolloverAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class RolloverAction implements LifecycleAction, ToXContentObject {
3838
private static final ParseField MAX_DOCS_FIELD = new ParseField("max_docs");
3939
private static final ParseField MAX_AGE_FIELD = new ParseField("max_age");
4040

41-
private static final ConstructingObjectParser<RolloverAction, Void> PARSER = new ConstructingObjectParser<>(NAME,
41+
private static final ConstructingObjectParser<RolloverAction, Void> PARSER = new ConstructingObjectParser<>(NAME, true,
4242
a -> new RolloverAction((ByteSizeValue) a[0], (TimeValue) a[1], (Long) a[2]));
4343
static {
4444
PARSER.declareField(ConstructingObjectParser.optionalConstructorArg(),

0 commit comments

Comments
 (0)