Class Distributor
- java.lang.Object
-
- org.openqa.selenium.grid.distributor.Distributor
-
- All Implemented Interfaces:
java.util.function.Predicate<org.openqa.selenium.remote.http.HttpRequest>
,org.openqa.selenium.remote.http.HttpHandler
,org.openqa.selenium.remote.http.Routable
,HasReadyState
- Direct Known Subclasses:
LocalDistributor
,RemoteDistributor
public abstract class Distributor extends java.lang.Object implements HasReadyState, java.util.function.Predicate<org.openqa.selenium.remote.http.HttpRequest>, org.openqa.selenium.remote.http.Routable
Responsible for being the central place where theNode
s on whichSession
s run are determined.This class responds to the following URLs:
Verb URL Template Meaning POST /session This is exactly the same as the New Session command from the WebDriver spec. POST /se/grid/distributor/node Adds a new Node
to this distributor. Please read the javadocs forNode
for how the Node should be serialized.DELETE /se/grid/distributor/node/{nodeId} Remove the Node
identified bynodeId
from this distributor. It is expected that any sessions running on the Node are allowed to complete: this simply means that no new sessions will be scheduled on this Node.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.openqa.selenium.remote.tracing.Tracer
tracer
-
Constructor Summary
Constructors Modifier Constructor Description protected
Distributor(org.openqa.selenium.remote.tracing.Tracer tracer, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, SlotSelector slotSelector, SessionMap sessions, Secret registrationSecret)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Distributor
add(Node node)
abstract boolean
drain(NodeId nodeId)
org.openqa.selenium.remote.http.HttpResponse
execute(org.openqa.selenium.remote.http.HttpRequest req)
protected abstract java.util.Set<NodeStatus>
getAvailableNodes()
abstract DistributorStatus
getStatus()
boolean
matches(org.openqa.selenium.remote.http.HttpRequest req)
org.openqa.selenium.internal.Either<org.openqa.selenium.SessionNotCreatedException,CreateSessionResponse>
newSession(SessionRequest request)
abstract void
remove(NodeId nodeId)
protected abstract org.openqa.selenium.internal.Either<org.openqa.selenium.SessionNotCreatedException,CreateSessionResponse>
reserve(SlotId slot, CreateSessionRequest request)
boolean
test(org.openqa.selenium.remote.http.HttpRequest httpRequest)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openqa.selenium.status.HasReadyState
isReady
-
-
-
-
Constructor Detail
-
Distributor
protected Distributor(org.openqa.selenium.remote.tracing.Tracer tracer, org.openqa.selenium.remote.http.HttpClient.Factory httpClientFactory, SlotSelector slotSelector, SessionMap sessions, Secret registrationSecret)
-
-
Method Detail
-
newSession
public org.openqa.selenium.internal.Either<org.openqa.selenium.SessionNotCreatedException,CreateSessionResponse> newSession(SessionRequest request) throws org.openqa.selenium.SessionNotCreatedException
- Throws:
org.openqa.selenium.SessionNotCreatedException
-
add
public abstract Distributor add(Node node)
-
drain
public abstract boolean drain(NodeId nodeId)
-
remove
public abstract void remove(NodeId nodeId)
-
getStatus
public abstract DistributorStatus getStatus()
-
getAvailableNodes
protected abstract java.util.Set<NodeStatus> getAvailableNodes()
-
reserve
protected abstract org.openqa.selenium.internal.Either<org.openqa.selenium.SessionNotCreatedException,CreateSessionResponse> reserve(SlotId slot, CreateSessionRequest request)
-
test
public boolean test(org.openqa.selenium.remote.http.HttpRequest httpRequest)
- Specified by:
test
in interfacejava.util.function.Predicate<org.openqa.selenium.remote.http.HttpRequest>
-
matches
public boolean matches(org.openqa.selenium.remote.http.HttpRequest req)
- Specified by:
matches
in interfaceorg.openqa.selenium.remote.http.Routable
-
execute
public org.openqa.selenium.remote.http.HttpResponse execute(org.openqa.selenium.remote.http.HttpRequest req) throws java.io.UncheckedIOException
- Specified by:
execute
in interfaceorg.openqa.selenium.remote.http.HttpHandler
- Throws:
java.io.UncheckedIOException
-
-