Skip to content

Commit abc06d5

Browse files
authored
Expose master version in REST test context (#30623)
This commit exposes the master version to the REST test context. This will be needed in a follow-up where the master version will be used to determine whether or not a certain warning header is expected.
1 parent 869b639 commit abc06d5

File tree

6 files changed

+54
-38
lines changed

6 files changed

+54
-38
lines changed

docs/src/test/java/org/elasticsearch/smoketest/DocsClientYamlTestSuiteIT.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,13 @@ protected boolean randomizeContentType() {
8686
}
8787

8888
@Override
89-
protected ClientYamlTestClient initClientYamlTestClient(ClientYamlSuiteRestSpec restSpec, RestClient restClient,
90-
List<HttpHost> hosts, Version esVersion) throws IOException {
91-
return new ClientYamlDocsTestClient(restSpec, restClient, hosts, esVersion);
89+
protected ClientYamlTestClient initClientYamlTestClient(
90+
final ClientYamlSuiteRestSpec restSpec,
91+
final RestClient restClient,
92+
final List<HttpHost> hosts,
93+
final Version esVersion,
94+
final Version masterVersion) throws IOException {
95+
return new ClientYamlDocsTestClient(restSpec, restClient, hosts, esVersion, masterVersion);
9296
}
9397

9498
/**

test/framework/src/main/java/org/elasticsearch/test/rest/yaml/ClientYamlDocsTestClient.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,13 @@
4040
*/
4141
public final class ClientYamlDocsTestClient extends ClientYamlTestClient {
4242

43-
public ClientYamlDocsTestClient(ClientYamlSuiteRestSpec restSpec, RestClient restClient, List<HttpHost> hosts, Version esVersion)
44-
throws IOException {
45-
super(restSpec, restClient, hosts, esVersion);
43+
public ClientYamlDocsTestClient(
44+
final ClientYamlSuiteRestSpec restSpec,
45+
final RestClient restClient,
46+
final List<HttpHost> hosts,
47+
final Version esVersion,
48+
final Version masterVersion) throws IOException {
49+
super(restSpec, restClient, hosts, esVersion, masterVersion);
4650
}
4751

4852
public ClientYamlTestResponse callApi(String apiName, Map<String, String> params, HttpEntity entity, Map<String, String> headers)

test/framework/src/main/java/org/elasticsearch/test/rest/yaml/ClientYamlTestClient.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -59,19 +59,29 @@ public class ClientYamlTestClient {
5959
private final ClientYamlSuiteRestSpec restSpec;
6060
protected final RestClient restClient;
6161
private final Version esVersion;
62-
63-
public ClientYamlTestClient(ClientYamlSuiteRestSpec restSpec, RestClient restClient, List<HttpHost> hosts,
64-
Version esVersion) throws IOException {
62+
private final Version masterVersion;
63+
64+
public ClientYamlTestClient(
65+
final ClientYamlSuiteRestSpec restSpec,
66+
final RestClient restClient,
67+
final List<HttpHost> hosts,
68+
final Version esVersion,
69+
final Version masterVersion) throws IOException {
6570
assert hosts.size() > 0;
6671
this.restSpec = restSpec;
6772
this.restClient = restClient;
6873
this.esVersion = esVersion;
74+
this.masterVersion = masterVersion;
6975
}
7076

7177
public Version getEsVersion() {
7278
return esVersion;
7379
}
7480

81+
public Version getMasterVersion() {
82+
return masterVersion;
83+
}
84+
7585
/**
7686
* Calls an api with the provided parameters and body
7787
*/

test/framework/src/main/java/org/elasticsearch/test/rest/yaml/ClientYamlTestExecutionContext.java

+4
Original file line numberDiff line numberDiff line change
@@ -185,4 +185,8 @@ public Version esVersion() {
185185
return clientYamlTestClient.getEsVersion();
186186
}
187187

188+
public Version masterVersion() {
189+
return clientYamlTestClient.getMasterVersion();
190+
}
191+
188192
}

test/framework/src/main/java/org/elasticsearch/test/rest/yaml/ESClientYamlSuiteTestCase.java

+16-26
Original file line numberDiff line numberDiff line change
@@ -111,33 +111,19 @@ public void initAndResetContext() throws Exception {
111111
if (restTestExecutionContext == null) {
112112
assert adminExecutionContext == null;
113113
assert blacklistPathMatchers == null;
114-
ClientYamlSuiteRestSpec restSpec = ClientYamlSuiteRestSpec.load(SPEC_PATH);
114+
final ClientYamlSuiteRestSpec restSpec = ClientYamlSuiteRestSpec.load(SPEC_PATH);
115115
validateSpec(restSpec);
116-
List<HttpHost> hosts = getClusterHosts();
117-
RestClient restClient = client();
118-
Version infoVersion = readVersionsFromInfo(restClient, hosts.size());
119-
Version esVersion;
120-
try {
121-
Tuple<Version, Version> versionVersionTuple = readVersionsFromCatNodes(restClient);
122-
esVersion = versionVersionTuple.v1();
123-
Version masterVersion = versionVersionTuple.v2();
124-
logger.info("initializing yaml client, minimum es version: [{}] master version: [{}] hosts: {}",
125-
esVersion, masterVersion, hosts);
126-
} catch (ResponseException ex) {
127-
if (ex.getResponse().getStatusLine().getStatusCode() == 403) {
128-
logger.warn("Fallback to simple info '/' request, _cat/nodes is not authorized");
129-
esVersion = infoVersion;
130-
logger.info("initializing yaml client, minimum es version: [{}] hosts: {}", esVersion, hosts);
131-
} else {
132-
throw ex;
133-
}
134-
}
135-
ClientYamlTestClient clientYamlTestClient = initClientYamlTestClient(restSpec, restClient, hosts, esVersion);
116+
final List<HttpHost> hosts = getClusterHosts();
117+
Tuple<Version, Version> versionVersionTuple = readVersionsFromCatNodes(adminClient());
118+
final Version esVersion = versionVersionTuple.v1();
119+
final Version masterVersion = versionVersionTuple.v2();
120+
logger.info("initializing client, minimum es version [{}], master version, [{}], hosts {}", esVersion, masterVersion, hosts);
121+
final ClientYamlTestClient clientYamlTestClient = initClientYamlTestClient(restSpec, client(), hosts, esVersion, masterVersion);
136122
restTestExecutionContext = new ClientYamlTestExecutionContext(clientYamlTestClient, randomizeContentType());
137123
adminExecutionContext = new ClientYamlTestExecutionContext(clientYamlTestClient, false);
138-
String[] blacklist = resolvePathsProperty(REST_TESTS_BLACKLIST, null);
124+
final String[] blacklist = resolvePathsProperty(REST_TESTS_BLACKLIST, null);
139125
blacklistPathMatchers = new ArrayList<>();
140-
for (String entry : blacklist) {
126+
for (final String entry : blacklist) {
141127
blacklistPathMatchers.add(new BlacklistedPathPatternMatcher(entry));
142128
}
143129
}
@@ -151,9 +137,13 @@ public void initAndResetContext() throws Exception {
151137
restTestExecutionContext.clear();
152138
}
153139

154-
protected ClientYamlTestClient initClientYamlTestClient(ClientYamlSuiteRestSpec restSpec, RestClient restClient,
155-
List<HttpHost> hosts, Version esVersion) throws IOException {
156-
return new ClientYamlTestClient(restSpec, restClient, hosts, esVersion);
140+
protected ClientYamlTestClient initClientYamlTestClient(
141+
final ClientYamlSuiteRestSpec restSpec,
142+
final RestClient restClient,
143+
final List<HttpHost> hosts,
144+
final Version esVersion,
145+
final Version masterVersion) throws IOException {
146+
return new ClientYamlTestClient(restSpec, restClient, hosts, esVersion, masterVersion);
157147
}
158148

159149
/**

x-pack/docs/src/test/java/org/elasticsearch/smoketest/XDocsClientYamlTestSuiteIT.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,13 @@ protected boolean preserveTemplatesUponCompletion() {
5353
}
5454

5555
@Override
56-
protected ClientYamlTestClient initClientYamlTestClient(ClientYamlSuiteRestSpec restSpec, RestClient restClient,
57-
List<HttpHost> hosts, Version esVersion) throws IOException {
58-
return new ClientYamlDocsTestClient(restSpec, restClient, hosts, esVersion);
56+
protected ClientYamlTestClient initClientYamlTestClient(
57+
final ClientYamlSuiteRestSpec restSpec,
58+
final RestClient restClient,
59+
final List<HttpHost> hosts,
60+
final Version esVersion,
61+
final Version masterVersion) throws IOException {
62+
return new ClientYamlDocsTestClient(restSpec, restClient, hosts, esVersion, masterVersion);
5963
}
6064

6165
/**

0 commit comments

Comments
 (0)