Skip to content

Commit f299fae

Browse files
committed
Fix review comment
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent c850aee commit f299fae

File tree

2 files changed

+14
-34
lines changed

2 files changed

+14
-34
lines changed

java/src/org/openqa/selenium/grid/node/Node.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,9 @@ protected Node(
199199
.to(() -> new Drain(this, json))
200200
.with(spanDecorator("node.drain").andThen(requiresSecret)),
201201
get("/se/grid/node/status")
202-
.to(() -> req -> new HttpResponse().setContent(asJson(getStatus())))
202+
.to(
203+
() ->
204+
req -> new HttpResponse().setContent(asJson(Map.of("value", getStatus()))))
203205
.with(spanDecorator("node.node_status")),
204206
get("/status").to(() -> new StatusHandler(this)).with(spanDecorator("node.status")));
205207
}

java/src/org/openqa/selenium/grid/router/HandleSession.java

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,13 @@
2121
import static org.openqa.selenium.remote.RemoteTags.SESSION_ID;
2222
import static org.openqa.selenium.remote.RemoteTags.SESSION_ID_EVENT;
2323
import static org.openqa.selenium.remote.http.Contents.asJson;
24-
import static org.openqa.selenium.remote.http.Contents.reader;
2524
import static org.openqa.selenium.remote.http.HttpMethod.GET;
2625
import static org.openqa.selenium.remote.tracing.Tags.EXCEPTION;
2726
import static org.openqa.selenium.remote.tracing.Tags.HTTP_REQUEST;
2827
import static org.openqa.selenium.remote.tracing.Tags.HTTP_REQUEST_EVENT;
2928
import static org.openqa.selenium.remote.tracing.Tags.HTTP_RESPONSE;
3029

3130
import java.io.Closeable;
32-
import java.io.Reader;
3331
import java.net.URI;
3432
import java.time.Duration;
3533
import java.time.Instant;
@@ -50,9 +48,8 @@
5048
import org.openqa.selenium.grid.data.NodeStatus;
5149
import org.openqa.selenium.grid.sessionmap.SessionMap;
5250
import org.openqa.selenium.grid.web.ReverseProxyHandler;
51+
import org.openqa.selenium.grid.web.Values;
5352
import org.openqa.selenium.internal.Require;
54-
import org.openqa.selenium.json.Json;
55-
import org.openqa.selenium.json.JsonInput;
5653
import org.openqa.selenium.remote.ErrorCodec;
5754
import org.openqa.selenium.remote.SessionId;
5855
import org.openqa.selenium.remote.http.ClientConfig;
@@ -237,7 +234,7 @@ private Callable<UsageCountingReverseProxyHandler> loadSessionId(
237234
return entry;
238235
}
239236

240-
ClientConfig config = fetchNodeSessionTimeout(sessionUri);
237+
ClientConfig config = fetchNodeSessionTimeout(sessionUri).withRetries();
241238
HttpClient httpClient = httpClientFactory.createClient(config);
242239

243240
return new CacheEntry(httpClient, 1);
@@ -254,37 +251,18 @@ private Callable<UsageCountingReverseProxyHandler> loadSessionId(
254251
}
255252

256253
private ClientConfig fetchNodeSessionTimeout(URI uri) {
257-
ClientConfig config = ClientConfig.defaultConfig().baseUri(uri).withRetries();
254+
ClientConfig config = ClientConfig.defaultConfig().baseUri(uri);
258255
Duration sessionTimeout = config.readTimeout();
259256
try (HttpClient httpClient = httpClientFactory.createClient(config)) {
260-
HttpRequest statusRequest = new HttpRequest(GET, "/status");
257+
HttpRequest statusRequest = new HttpRequest(GET, "/se/grid/node/status");
261258
HttpResponse res = httpClient.execute(statusRequest);
262-
Reader reader = reader(res);
263-
Json JSON = new Json();
264-
JsonInput in = JSON.newInput(reader);
265-
in.beginObject();
266-
// Skip everything until we find "value"
267-
while (in.hasNext()) {
268-
if ("value".equals(in.nextName())) {
269-
in.beginObject();
270-
while (in.hasNext()) {
271-
if ("node".equals(in.nextName())) {
272-
NodeStatus nodeStatus = in.read(NodeStatus.class);
273-
sessionTimeout = nodeStatus.getSessionTimeout();
274-
LOG.fine(
275-
"Fetched session timeout from node status (read timeout: "
276-
+ sessionTimeout.toSeconds()
277-
+ " seconds) for "
278-
+ uri);
279-
} else {
280-
in.skipValue();
281-
}
282-
}
283-
in.endObject();
284-
} else {
285-
in.skipValue();
286-
}
287-
}
259+
NodeStatus nodeStatus = Values.get(res, NodeStatus.class);
260+
sessionTimeout = nodeStatus.getSessionTimeout();
261+
LOG.fine(
262+
"Fetched session timeout from node status (read timeout: "
263+
+ sessionTimeout.toSeconds()
264+
+ " seconds) for "
265+
+ uri);
288266
} catch (Exception e) {
289267
LOG.fine(
290268
"Use default from ClientConfig (read timeout: "

0 commit comments

Comments
 (0)