mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-24 15:17:30 -04:00
parent
54c371603f
commit
aee722dd39
26 changed files with 445 additions and 44 deletions
|
@ -24,6 +24,7 @@ import org.elasticsearch.xcontent.XContentParser;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.time.Instant;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.elasticsearch.xcontent.ConstructingObjectParser.constructorArg;
|
||||
|
@ -38,6 +39,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
public static final ParseField DESCRIPTION = new ParseField("description");
|
||||
public static final ParseField SYNC = new ParseField("sync");
|
||||
public static final ParseField SETTINGS = new ParseField("settings");
|
||||
public static final ParseField METADATA = new ParseField("_meta");
|
||||
public static final ParseField VERSION = new ParseField("version");
|
||||
public static final ParseField CREATE_TIME = new ParseField("create_time");
|
||||
public static final ParseField RETENTION_POLICY = new ParseField("retention_policy");
|
||||
|
@ -51,6 +53,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
private final TimeValue frequency;
|
||||
private final SyncConfig syncConfig;
|
||||
private final SettingsConfig settings;
|
||||
private final Map<String, Object> metadata;
|
||||
private final PivotConfig pivotConfig;
|
||||
private final LatestConfig latestConfig;
|
||||
private final String description;
|
||||
|
@ -71,9 +74,11 @@ public class TransformConfig implements ToXContentObject {
|
|||
LatestConfig latestConfig = (LatestConfig) args[6];
|
||||
String description = (String) args[7];
|
||||
SettingsConfig settings = (SettingsConfig) args[8];
|
||||
RetentionPolicyConfig retentionPolicyConfig = (RetentionPolicyConfig) args[9];
|
||||
Instant createTime = (Instant) args[10];
|
||||
String transformVersion = (String) args[11];
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> metadata = (Map<String, Object>) args[9];
|
||||
RetentionPolicyConfig retentionPolicyConfig = (RetentionPolicyConfig) args[10];
|
||||
Instant createTime = (Instant) args[11];
|
||||
String transformVersion = (String) args[12];
|
||||
return new TransformConfig(
|
||||
id,
|
||||
source,
|
||||
|
@ -84,6 +89,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
latestConfig,
|
||||
description,
|
||||
settings,
|
||||
metadata,
|
||||
retentionPolicyConfig,
|
||||
createTime,
|
||||
transformVersion
|
||||
|
@ -106,6 +112,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
PARSER.declareObject(optionalConstructorArg(), (p, c) -> LatestConfig.fromXContent(p), LATEST_TRANSFORM);
|
||||
PARSER.declareString(optionalConstructorArg(), DESCRIPTION);
|
||||
PARSER.declareObject(optionalConstructorArg(), (p, c) -> SettingsConfig.fromXContent(p), SETTINGS);
|
||||
PARSER.declareObject(optionalConstructorArg(), (p, c) -> p.mapOrdered(), METADATA);
|
||||
PARSER.declareNamedObject(
|
||||
optionalConstructorArg(),
|
||||
(p, c, n) -> p.namedObject(RetentionPolicyConfig.class, n, c),
|
||||
|
@ -136,7 +143,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
* @return A TransformConfig to preview, NOTE it will have a {@code null} id, destination and index.
|
||||
*/
|
||||
public static TransformConfig forPreview(final SourceConfig source, final PivotConfig pivotConfig) {
|
||||
return new TransformConfig(null, source, null, null, null, pivotConfig, null, null, null, null, null, null);
|
||||
return new TransformConfig(null, source, null, null, null, pivotConfig, null, null, null, null, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,7 +158,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
* @return A TransformConfig to preview, NOTE it will have a {@code null} id, destination and index.
|
||||
*/
|
||||
public static TransformConfig forPreview(final SourceConfig source, final LatestConfig latestConfig) {
|
||||
return new TransformConfig(null, source, null, null, null, null, latestConfig, null, null, null, null, null);
|
||||
return new TransformConfig(null, source, null, null, null, null, latestConfig, null, null, null, null, null, null);
|
||||
}
|
||||
|
||||
TransformConfig(
|
||||
|
@ -164,6 +171,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
final LatestConfig latestConfig,
|
||||
final String description,
|
||||
final SettingsConfig settings,
|
||||
final Map<String, Object> metadata,
|
||||
final RetentionPolicyConfig retentionPolicyConfig,
|
||||
final Instant createTime,
|
||||
final String version
|
||||
|
@ -177,6 +185,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
this.latestConfig = latestConfig;
|
||||
this.description = description;
|
||||
this.settings = settings;
|
||||
this.metadata = metadata;
|
||||
this.retentionPolicyConfig = retentionPolicyConfig;
|
||||
this.createTime = createTime == null ? null : Instant.ofEpochMilli(createTime.toEpochMilli());
|
||||
this.transformVersion = version == null ? null : Version.fromString(version);
|
||||
|
@ -228,6 +237,11 @@ public class TransformConfig implements ToXContentObject {
|
|||
return settings;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Map<String, Object> getMetadata() {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public RetentionPolicyConfig getRetentionPolicyConfig() {
|
||||
return retentionPolicyConfig;
|
||||
|
@ -265,6 +279,9 @@ public class TransformConfig implements ToXContentObject {
|
|||
if (settings != null) {
|
||||
builder.field(SETTINGS.getPreferredName(), settings);
|
||||
}
|
||||
if (metadata != null) {
|
||||
builder.field(METADATA.getPreferredName(), metadata);
|
||||
}
|
||||
if (retentionPolicyConfig != null) {
|
||||
builder.startObject(RETENTION_POLICY.getPreferredName());
|
||||
builder.field(retentionPolicyConfig.getName(), retentionPolicyConfig);
|
||||
|
@ -300,6 +317,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
&& Objects.equals(this.syncConfig, that.syncConfig)
|
||||
&& Objects.equals(this.transformVersion, that.transformVersion)
|
||||
&& Objects.equals(this.settings, that.settings)
|
||||
&& Objects.equals(this.metadata, that.metadata)
|
||||
&& Objects.equals(this.createTime, that.createTime)
|
||||
&& Objects.equals(this.pivotConfig, that.pivotConfig)
|
||||
&& Objects.equals(this.latestConfig, that.latestConfig)
|
||||
|
@ -315,6 +333,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
frequency,
|
||||
syncConfig,
|
||||
settings,
|
||||
metadata,
|
||||
createTime,
|
||||
transformVersion,
|
||||
pivotConfig,
|
||||
|
@ -343,6 +362,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
private PivotConfig pivotConfig;
|
||||
private LatestConfig latestConfig;
|
||||
private SettingsConfig settings;
|
||||
private Map<String, Object> metadata;
|
||||
private String description;
|
||||
private RetentionPolicyConfig retentionPolicyConfig;
|
||||
|
||||
|
@ -391,6 +411,11 @@ public class TransformConfig implements ToXContentObject {
|
|||
return this;
|
||||
}
|
||||
|
||||
public Builder setMetadata(Map<String, Object> metadata) {
|
||||
this.metadata = metadata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRetentionPolicyConfig(RetentionPolicyConfig retentionPolicyConfig) {
|
||||
this.retentionPolicyConfig = retentionPolicyConfig;
|
||||
return this;
|
||||
|
@ -407,6 +432,7 @@ public class TransformConfig implements ToXContentObject {
|
|||
latestConfig,
|
||||
description,
|
||||
settings,
|
||||
metadata,
|
||||
retentionPolicyConfig,
|
||||
null,
|
||||
null
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.elasticsearch.xcontent.XContentBuilder;
|
|||
import org.elasticsearch.xcontent.XContentParser;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.elasticsearch.xcontent.ConstructingObjectParser.optionalConstructorArg;
|
||||
|
@ -39,8 +40,10 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
SyncConfig syncConfig = (SyncConfig) args[3];
|
||||
String description = (String) args[4];
|
||||
SettingsConfig settings = (SettingsConfig) args[5];
|
||||
RetentionPolicyConfig retentionPolicyConfig = (RetentionPolicyConfig) args[6];
|
||||
return new TransformConfigUpdate(source, dest, frequency, syncConfig, description, settings, retentionPolicyConfig);
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> metadata = (Map<String, Object>) args[6];
|
||||
RetentionPolicyConfig retentionPolicyConfig = (RetentionPolicyConfig) args[7];
|
||||
return new TransformConfigUpdate(source, dest, frequency, syncConfig, description, settings, metadata, retentionPolicyConfig);
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -51,6 +54,7 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
PARSER.declareNamedObject(optionalConstructorArg(), (p, c, n) -> p.namedObject(SyncConfig.class, n, c), TransformConfig.SYNC);
|
||||
PARSER.declareString(optionalConstructorArg(), TransformConfig.DESCRIPTION);
|
||||
PARSER.declareObject(optionalConstructorArg(), (p, c) -> SettingsConfig.fromXContent(p), TransformConfig.SETTINGS);
|
||||
PARSER.declareObject(optionalConstructorArg(), (p, c) -> p.mapOrdered(), TransformConfig.METADATA);
|
||||
PARSER.declareNamedObject(
|
||||
optionalConstructorArg(),
|
||||
(p, c, n) -> p.namedObject(RetentionPolicyConfig.class, n, c),
|
||||
|
@ -64,6 +68,7 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
private final SyncConfig syncConfig;
|
||||
private final String description;
|
||||
private final SettingsConfig settings;
|
||||
private final Map<String, Object> metadata;
|
||||
|
||||
public TransformConfigUpdate(
|
||||
final SourceConfig source,
|
||||
|
@ -72,6 +77,7 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
final SyncConfig syncConfig,
|
||||
final String description,
|
||||
final SettingsConfig settings,
|
||||
final Map<String, Object> metadata,
|
||||
final RetentionPolicyConfig retentionPolicyConfig
|
||||
) {
|
||||
this.source = source;
|
||||
|
@ -80,6 +86,7 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
this.syncConfig = syncConfig;
|
||||
this.description = description;
|
||||
this.settings = settings;
|
||||
this.metadata = metadata;
|
||||
}
|
||||
|
||||
public SourceConfig getSource() {
|
||||
|
@ -108,6 +115,11 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
return settings;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Map<String, Object> getMetadata() {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
@Override
|
||||
public XContentBuilder toXContent(final XContentBuilder builder, final Params params) throws IOException {
|
||||
builder.startObject();
|
||||
|
@ -131,6 +143,9 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
if (settings != null) {
|
||||
builder.field(TransformConfig.SETTINGS.getPreferredName(), settings);
|
||||
}
|
||||
if (metadata != null) {
|
||||
builder.field(TransformConfig.METADATA.getPreferredName(), metadata);
|
||||
}
|
||||
|
||||
builder.endObject();
|
||||
return builder;
|
||||
|
@ -153,12 +168,13 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
&& Objects.equals(this.frequency, that.frequency)
|
||||
&& Objects.equals(this.syncConfig, that.syncConfig)
|
||||
&& Objects.equals(this.description, that.description)
|
||||
&& Objects.equals(this.settings, that.settings);
|
||||
&& Objects.equals(this.settings, that.settings)
|
||||
&& Objects.equals(this.metadata, that.metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(source, dest, frequency, syncConfig, description, settings);
|
||||
return Objects.hash(source, dest, frequency, syncConfig, description, settings, metadata);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -182,6 +198,7 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
private SyncConfig syncConfig;
|
||||
private String description;
|
||||
private SettingsConfig settings;
|
||||
private Map<String, Object> metdata;
|
||||
private RetentionPolicyConfig retentionPolicyConfig;
|
||||
|
||||
public Builder setSource(SourceConfig source) {
|
||||
|
@ -214,13 +231,18 @@ public class TransformConfigUpdate implements ToXContentObject {
|
|||
return this;
|
||||
}
|
||||
|
||||
public Builder setMetadata(Map<String, Object> metadata) {
|
||||
this.metdata = metdata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setRetentionPolicyConfig(RetentionPolicyConfig retentionPolicyConfig) {
|
||||
this.retentionPolicyConfig = retentionPolicyConfig;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TransformConfigUpdate build() {
|
||||
return new TransformConfigUpdate(source, dest, frequency, syncConfig, description, settings, retentionPolicyConfig);
|
||||
return new TransformConfigUpdate(source, dest, frequency, syncConfig, description, settings, metdata, retentionPolicyConfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ import org.elasticsearch.client.transform.transforms.pivot.PivotConfig;
|
|||
import org.elasticsearch.client.transform.transforms.pivot.PivotConfigTests;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.core.TimeValue;
|
||||
import org.elasticsearch.core.Tuple;
|
||||
import org.elasticsearch.xcontent.NamedXContentRegistry;
|
||||
import org.elasticsearch.xcontent.XContentParser;
|
||||
import org.elasticsearch.search.SearchModule;
|
||||
|
@ -25,6 +26,7 @@ import java.io.IOException;
|
|||
import java.time.Instant;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import static org.elasticsearch.client.transform.transforms.DestConfigTests.randomDestConfig;
|
||||
|
@ -52,6 +54,7 @@ public class TransformConfigTests extends AbstractXContentTestCase<TransformConf
|
|||
latestConfig,
|
||||
randomBoolean() ? null : randomAlphaOfLengthBetween(1, 100),
|
||||
SettingsConfigTests.randomSettingsConfig(),
|
||||
randomMetadata(),
|
||||
randomBoolean() ? null : randomRetentionPolicyConfig(),
|
||||
randomBoolean() ? null : Instant.now(),
|
||||
randomBoolean() ? null : Version.CURRENT.toString()
|
||||
|
@ -66,6 +69,30 @@ public class TransformConfigTests extends AbstractXContentTestCase<TransformConf
|
|||
return TimeRetentionPolicyConfigTests.randomTimeRetentionPolicyConfig();
|
||||
}
|
||||
|
||||
public static Map<String, Object> randomMetadata() {
|
||||
return randomMap(0, 10, () -> {
|
||||
String key = randomAlphaOfLengthBetween(1, 10);
|
||||
Object value;
|
||||
switch (randomIntBetween(0, 3)) {
|
||||
case 0:
|
||||
value = null;
|
||||
break;
|
||||
case 1:
|
||||
value = randomLong();
|
||||
break;
|
||||
case 2:
|
||||
value = randomAlphaOfLengthBetween(1, 10);
|
||||
break;
|
||||
case 3:
|
||||
value = randomMap(0, 10, () -> Tuple.tuple(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10)));
|
||||
break;
|
||||
default:
|
||||
throw new AssertionError();
|
||||
}
|
||||
return Tuple.tuple(key, value);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TransformConfig createTestInstance() {
|
||||
return randomTransformConfig();
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.util.List;
|
|||
import static org.elasticsearch.client.transform.transforms.DestConfigTests.randomDestConfig;
|
||||
import static org.elasticsearch.client.transform.transforms.SettingsConfigTests.randomSettingsConfig;
|
||||
import static org.elasticsearch.client.transform.transforms.SourceConfigTests.randomSourceConfig;
|
||||
import static org.elasticsearch.client.transform.transforms.TransformConfigTests.randomMetadata;
|
||||
import static org.elasticsearch.client.transform.transforms.TransformConfigTests.randomRetentionPolicyConfig;
|
||||
import static org.elasticsearch.client.transform.transforms.TransformConfigTests.randomSyncConfig;
|
||||
|
||||
|
@ -36,6 +37,7 @@ public class TransformConfigUpdateTests extends AbstractXContentTestCase<Transfo
|
|||
randomBoolean() ? null : randomSyncConfig(),
|
||||
randomBoolean() ? null : randomAlphaOfLengthBetween(1, 1000),
|
||||
randomBoolean() ? null : randomSettingsConfig(),
|
||||
randomBoolean() ? null : randomMetadata(),
|
||||
randomBoolean() ? null : randomRetentionPolicyConfig()
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue