Skip to content

Commit b48784f

Browse files
committed
Merge remote-tracking branch 'es/master' into enrich
2 parents 2879e67 + 30a7bdf commit b48784f

File tree

178 files changed

+4575
-1373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

178 files changed

+4575
-1373
lines changed

.ci/bwcVersions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ BWC_VERSION:
77
- "7.2.1"
88
- "7.3.0"
99
- "7.3.1"
10+
- "7.3.2"
1011
- "7.4.0"
1112
- "8.0.0"

.ci/matrix-runtime-javas.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ES_RUNTIME_JAVA:
1010
- java12
1111
- openjdk12
1212
- openjdk13
13+
- openjdk14
1314
- zulu11
1415
- zulu12
1516
- corretto11

buildSrc/src/main/groovy/org/elasticsearch/gradle/test/DistroTestPlugin.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,12 @@ public void apply(Project project) {
9696
TaskProvider<Copy> copyUpgradeTask = configureCopyUpgradeTask(project, upgradeVersion, upgradeDir);
9797
TaskProvider<Copy> copyPluginsTask = configureCopyPluginsTask(project, pluginsDir);
9898

99-
Map<String, TaskProvider<?>> batsTests = new HashMap<>();
99+
TaskProvider<Task> destructiveDistroTest = project.getTasks().register("destructiveDistroTest");
100100
for (ElasticsearchDistribution distribution : distributions) {
101-
configureDistroTest(project, distribution);
101+
TaskProvider<?> destructiveTask = configureDistroTest(project, distribution);
102+
destructiveDistroTest.configure(t -> t.dependsOn(destructiveTask));
102103
}
104+
Map<String, TaskProvider<?>> batsTests = new HashMap<>();
103105
batsTests.put("bats oss", configureBatsTest(project, "oss", distributionsDir, copyDistributionsTask));
104106
batsTests.put("bats default", configureBatsTest(project, "default", distributionsDir, copyDistributionsTask));
105107
configureBatsTest(project, "plugins",distributionsDir, copyDistributionsTask, copyPluginsTask).configure(t ->
@@ -127,7 +129,6 @@ public void apply(Project project) {
127129
}
128130
}
129131

130-
131132
batsTests.forEach((desc, task) -> {
132133
configureVMWrapperTask(vmProject, desc, task.getName(), vmDependencies).configure(t -> {
133134
t.setProgressHandler(new BatsProgressLogger(project.getLogger()));

buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ public class ElasticsearchNode implements TestClusterConfiguration {
107107
"is a pre-release version of Elasticsearch",
108108
"max virtual memory areas vm.max_map_count"
109109
);
110+
private static final String HOSTNAME_OVERRIDE = "LinuxDarwinHostname";
111+
private static final String COMPUTERNAME_OVERRIDE = "WindowsComputername";
110112

111113
private final String path;
112114
private final String name;
@@ -643,6 +645,10 @@ private Map<String, String> getESEnvironment() {
643645
// Windows requires this as it defaults to `c:\windows` despite ES_TMPDIR
644646
defaultEnv.put("TMP", tmpDir.toString());
645647

648+
// Override the system hostname variables for testing
649+
defaultEnv.put("HOSTNAME", HOSTNAME_OVERRIDE);
650+
defaultEnv.put("COMPUTERNAME", COMPUTERNAME_OVERRIDE);
651+
646652
Set<String> commonKeys = new HashSet<>(environment.keySet());
647653
commonKeys.retainAll(defaultEnv.keySet());
648654
if (commonKeys.isEmpty() == false) {

buildSrc/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ slf4j = 1.6.2
2121
jna = 4.5.1
2222

2323
netty = 4.1.38.Final
24-
joda = 2.10.2
24+
joda = 2.10.3
2525

2626
# when updating this version, you need to ensure compatibility with:
2727
# - plugins/ingest-attachment (transitive dependency, check the upstream POM)

client/rest-high-level/src/main/java/org/elasticsearch/client/ml/EvaluateDataFrameRequest.java

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121

2222
import org.elasticsearch.client.Validatable;
2323
import org.elasticsearch.client.ValidationException;
24+
import org.elasticsearch.client.ml.dataframe.QueryConfig;
2425
import org.elasticsearch.client.ml.dataframe.evaluation.Evaluation;
26+
import org.elasticsearch.common.Nullable;
2527
import org.elasticsearch.common.ParseField;
2628
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
2729
import org.elasticsearch.common.xcontent.ToXContentObject;
@@ -37,20 +39,25 @@
3739
import java.util.Optional;
3840

3941
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg;
42+
import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg;
4043
import static org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken;
4144

4245
public class EvaluateDataFrameRequest implements ToXContentObject, Validatable {
4346

4447
private static final ParseField INDEX = new ParseField("index");
48+
private static final ParseField QUERY = new ParseField("query");
4549
private static final ParseField EVALUATION = new ParseField("evaluation");
4650

4751
@SuppressWarnings("unchecked")
4852
private static final ConstructingObjectParser<EvaluateDataFrameRequest, Void> PARSER =
4953
new ConstructingObjectParser<>(
50-
"evaluate_data_frame_request", true, args -> new EvaluateDataFrameRequest((List<String>) args[0], (Evaluation) args[1]));
54+
"evaluate_data_frame_request",
55+
true,
56+
args -> new EvaluateDataFrameRequest((List<String>) args[0], (QueryConfig) args[1], (Evaluation) args[2]));
5157

5258
static {
5359
PARSER.declareStringArray(constructorArg(), INDEX);
60+
PARSER.declareObject(optionalConstructorArg(), (p, c) -> QueryConfig.fromXContent(p), QUERY);
5461
PARSER.declareObject(constructorArg(), (p, c) -> parseEvaluation(p), EVALUATION);
5562
}
5663

@@ -67,14 +74,16 @@ public static EvaluateDataFrameRequest fromXContent(XContentParser parser) {
6774
}
6875

6976
private List<String> indices;
77+
private QueryConfig queryConfig;
7078
private Evaluation evaluation;
7179

72-
public EvaluateDataFrameRequest(String index, Evaluation evaluation) {
73-
this(Arrays.asList(index), evaluation);
80+
public EvaluateDataFrameRequest(String index, @Nullable QueryConfig queryConfig, Evaluation evaluation) {
81+
this(Arrays.asList(index), queryConfig, evaluation);
7482
}
7583

76-
public EvaluateDataFrameRequest(List<String> indices, Evaluation evaluation) {
84+
public EvaluateDataFrameRequest(List<String> indices, @Nullable QueryConfig queryConfig, Evaluation evaluation) {
7785
setIndices(indices);
86+
setQueryConfig(queryConfig);
7887
setEvaluation(evaluation);
7988
}
8089

@@ -87,6 +96,14 @@ public final void setIndices(List<String> indices) {
8796
this.indices = new ArrayList<>(indices);
8897
}
8998

99+
public QueryConfig getQueryConfig() {
100+
return queryConfig;
101+
}
102+
103+
public final void setQueryConfig(QueryConfig queryConfig) {
104+
this.queryConfig = queryConfig;
105+
}
106+
90107
public Evaluation getEvaluation() {
91108
return evaluation;
92109
}
@@ -111,18 +128,22 @@ public Optional<ValidationException> validate() {
111128

112129
@Override
113130
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
114-
return builder
115-
.startObject()
116-
.array(INDEX.getPreferredName(), indices.toArray())
117-
.startObject(EVALUATION.getPreferredName())
118-
.field(evaluation.getName(), evaluation)
119-
.endObject()
131+
builder.startObject();
132+
builder.array(INDEX.getPreferredName(), indices.toArray());
133+
if (queryConfig != null) {
134+
builder.field(QUERY.getPreferredName(), queryConfig.getQuery());
135+
}
136+
builder
137+
.startObject(EVALUATION.getPreferredName())
138+
.field(evaluation.getName(), evaluation)
120139
.endObject();
140+
builder.endObject();
141+
return builder;
121142
}
122143

123144
@Override
124145
public int hashCode() {
125-
return Objects.hash(indices, evaluation);
146+
return Objects.hash(indices, queryConfig, evaluation);
126147
}
127148

128149
@Override
@@ -131,6 +152,7 @@ public boolean equals(Object o) {
131152
if (o == null || getClass() != o.getClass()) return false;
132153
EvaluateDataFrameRequest that = (EvaluateDataFrameRequest) o;
133154
return Objects.equals(indices, that.indices)
155+
&& Objects.equals(queryConfig, that.queryConfig)
134156
&& Objects.equals(evaluation, that.evaluation);
135157
}
136158
}

client/rest-high-level/src/main/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfig.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public static Builder builder() {
4848
}
4949

5050
private static final ParseField ID = new ParseField("id");
51+
private static final ParseField DESCRIPTION = new ParseField("description");
5152
private static final ParseField SOURCE = new ParseField("source");
5253
private static final ParseField DEST = new ParseField("dest");
5354
private static final ParseField ANALYSIS = new ParseField("analysis");
@@ -60,6 +61,7 @@ public static Builder builder() {
6061

6162
static {
6263
PARSER.declareString(Builder::setId, ID);
64+
PARSER.declareString(Builder::setDescription, DESCRIPTION);
6365
PARSER.declareObject(Builder::setSource, (p, c) -> DataFrameAnalyticsSource.fromXContent(p), SOURCE);
6466
PARSER.declareObject(Builder::setDest, (p, c) -> DataFrameAnalyticsDest.fromXContent(p), DEST);
6567
PARSER.declareObject(Builder::setAnalysis, (p, c) -> parseAnalysis(p), ANALYSIS);
@@ -95,6 +97,7 @@ private static DataFrameAnalysis parseAnalysis(XContentParser parser) throws IOE
9597
}
9698

9799
private final String id;
100+
private final String description;
98101
private final DataFrameAnalyticsSource source;
99102
private final DataFrameAnalyticsDest dest;
100103
private final DataFrameAnalysis analysis;
@@ -103,10 +106,12 @@ private static DataFrameAnalysis parseAnalysis(XContentParser parser) throws IOE
103106
private final Instant createTime;
104107
private final Version version;
105108

106-
private DataFrameAnalyticsConfig(@Nullable String id, @Nullable DataFrameAnalyticsSource source, @Nullable DataFrameAnalyticsDest dest,
107-
@Nullable DataFrameAnalysis analysis, @Nullable FetchSourceContext analyzedFields,
108-
@Nullable ByteSizeValue modelMemoryLimit, @Nullable Instant createTime, @Nullable Version version) {
109+
private DataFrameAnalyticsConfig(@Nullable String id, @Nullable String description, @Nullable DataFrameAnalyticsSource source,
110+
@Nullable DataFrameAnalyticsDest dest, @Nullable DataFrameAnalysis analysis,
111+
@Nullable FetchSourceContext analyzedFields, @Nullable ByteSizeValue modelMemoryLimit,
112+
@Nullable Instant createTime, @Nullable Version version) {
109113
this.id = id;
114+
this.description = description;
110115
this.source = source;
111116
this.dest = dest;
112117
this.analysis = analysis;
@@ -120,6 +125,10 @@ public String getId() {
120125
return id;
121126
}
122127

128+
public String getDescription() {
129+
return description;
130+
}
131+
123132
public DataFrameAnalyticsSource getSource() {
124133
return source;
125134
}
@@ -154,6 +163,9 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
154163
if (id != null) {
155164
builder.field(ID.getPreferredName(), id);
156165
}
166+
if (description != null) {
167+
builder.field(DESCRIPTION.getPreferredName(), description);
168+
}
157169
if (source != null) {
158170
builder.field(SOURCE.getPreferredName(), source);
159171
}
@@ -189,6 +201,7 @@ public boolean equals(Object o) {
189201

190202
DataFrameAnalyticsConfig other = (DataFrameAnalyticsConfig) o;
191203
return Objects.equals(id, other.id)
204+
&& Objects.equals(description, other.description)
192205
&& Objects.equals(source, other.source)
193206
&& Objects.equals(dest, other.dest)
194207
&& Objects.equals(analysis, other.analysis)
@@ -200,7 +213,7 @@ public boolean equals(Object o) {
200213

201214
@Override
202215
public int hashCode() {
203-
return Objects.hash(id, source, dest, analysis, analyzedFields, modelMemoryLimit, createTime, version);
216+
return Objects.hash(id, description, source, dest, analysis, analyzedFields, modelMemoryLimit, createTime, version);
204217
}
205218

206219
@Override
@@ -211,6 +224,7 @@ public String toString() {
211224
public static class Builder {
212225

213226
private String id;
227+
private String description;
214228
private DataFrameAnalyticsSource source;
215229
private DataFrameAnalyticsDest dest;
216230
private DataFrameAnalysis analysis;
@@ -226,6 +240,11 @@ public Builder setId(String id) {
226240
return this;
227241
}
228242

243+
public Builder setDescription(String description) {
244+
this.description = description;
245+
return this;
246+
}
247+
229248
public Builder setSource(DataFrameAnalyticsSource source) {
230249
this.source = Objects.requireNonNull(source);
231250
return this;
@@ -262,7 +281,8 @@ public Builder setVersion(Version version) {
262281
}
263282

264283
public DataFrameAnalyticsConfig build() {
265-
return new DataFrameAnalyticsConfig(id, source, dest, analysis, analyzedFields, modelMemoryLimit, createTime, version);
284+
return new DataFrameAnalyticsConfig(id, description, source, dest, analysis, analyzedFields, modelMemoryLimit, createTime,
285+
version);
266286
}
267287
}
268288
}

client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.elasticsearch.client.ml.DeleteJobRequest;
3737
import org.elasticsearch.client.ml.DeleteModelSnapshotRequest;
3838
import org.elasticsearch.client.ml.EvaluateDataFrameRequest;
39+
import org.elasticsearch.client.ml.EvaluateDataFrameRequestTests;
3940
import org.elasticsearch.client.ml.FindFileStructureRequest;
4041
import org.elasticsearch.client.ml.FindFileStructureRequestTests;
4142
import org.elasticsearch.client.ml.FlushJobRequest;
@@ -85,9 +86,6 @@
8586
import org.elasticsearch.client.ml.dataframe.DataFrameAnalyticsConfig;
8687
import org.elasticsearch.client.ml.dataframe.MlDataFrameAnalysisNamedXContentProvider;
8788
import org.elasticsearch.client.ml.dataframe.evaluation.MlEvaluationNamedXContentProvider;
88-
import org.elasticsearch.client.ml.dataframe.evaluation.softclassification.BinarySoftClassification;
89-
import org.elasticsearch.client.ml.dataframe.evaluation.softclassification.PrecisionMetric;
90-
import org.elasticsearch.client.ml.dataframe.evaluation.softclassification.RecallMetric;
9189
import org.elasticsearch.client.ml.filestructurefinder.FileStructure;
9290
import org.elasticsearch.client.ml.job.config.AnalysisConfig;
9391
import org.elasticsearch.client.ml.job.config.Detector;
@@ -779,13 +777,7 @@ public void testDeleteDataFrameAnalytics() {
779777
}
780778

781779
public void testEvaluateDataFrame() throws IOException {
782-
EvaluateDataFrameRequest evaluateRequest =
783-
new EvaluateDataFrameRequest(
784-
Arrays.asList(generateRandomStringArray(1, 10, false, false)),
785-
new BinarySoftClassification(
786-
randomAlphaOfLengthBetween(1, 10),
787-
randomAlphaOfLengthBetween(1, 10),
788-
PrecisionMetric.at(0.5), RecallMetric.at(0.6, 0.7)));
780+
EvaluateDataFrameRequest evaluateRequest = EvaluateDataFrameRequestTests.createRandom();
789781
Request request = MLRequestConverters.evaluateDataFrame(evaluateRequest);
790782
assertEquals(HttpPost.METHOD_NAME, request.getMethod());
791783
assertEquals("/_ml/data_frame/_evaluate", request.getEndpoint());

0 commit comments

Comments
 (0)