1717
1818package org .openqa .selenium .grid .distributor ;
1919
20- import static org .openqa .selenium .grid .data .Availability .DOWN ;
21- import static org .openqa .selenium .grid .data .Availability .DRAINING ;
22- import static org .openqa .selenium .grid .data .Availability .UP ;
23-
2420import com .google .common .collect .ImmutableSet ;
2521
2622import org .openqa .selenium .events .EventBus ;
5450import java .util .concurrent .locks .ReentrantReadWriteLock ;
5551import java .util .logging .Logger ;
5652
53+ import static org .openqa .selenium .grid .data .Availability .DOWN ;
54+ import static org .openqa .selenium .grid .data .Availability .DRAINING ;
55+ import static org .openqa .selenium .grid .data .Availability .UP ;
56+
5757public class GridModel {
5858
5959 private static final SessionId RESERVED = new SessionId ("reserved" );
@@ -244,7 +244,7 @@ public void purgeDeadNodes() {
244244 }
245245 }
246246
247- public Availability setAvailability (NodeId id , Availability availability ) {
247+ public void setAvailability (NodeId id , Availability availability ) {
248248 Require .nonNull ("Node ID" , id );
249249 Require .nonNull ("Availability" , availability );
250250
@@ -254,29 +254,26 @@ public Availability setAvailability(NodeId id, Availability availability) {
254254 NodeStatus node = getNode (id );
255255
256256 if (node == null ) {
257- return DOWN ;
257+ return ;
258258 }
259259
260260 if (availability .equals (node .getAvailability ())) {
261261 if (node .getAvailability () == UP ) {
262262 nodePurgeTimes .put (node .getNodeId (), Instant .now ());
263263 }
264- return availability ;
264+ } else {
265+ LOG .info (String .format (
266+ "Switching Node %s (uri: %s) from %s to %s" ,
267+ id ,
268+ node .getExternalUri (),
269+ node .getAvailability (),
270+ availability ));
271+
272+ NodeStatus refreshed = rewrite (node , availability );
273+ nodes .remove (node );
274+ nodes .add (refreshed );
275+ nodePurgeTimes .put (node .getNodeId (), Instant .now ());
265276 }
266-
267- LOG .info (String .format (
268- "Switching node %s (uri: %s) from %s to %s" ,
269- id ,
270- node .getExternalUri (),
271- node .getAvailability (),
272- availability ));
273-
274- Availability previous = node .getAvailability ();
275- NodeStatus refreshed = rewrite (node , availability );
276- nodes .remove (node );
277- nodes .add (refreshed );
278- nodePurgeTimes .put (node .getNodeId (), Instant .now ());
279- return previous ;
280277 } finally {
281278 writeLock .unlock ();
282279 }
@@ -361,12 +358,13 @@ public void release(SessionId id) {
361358 return ;
362359 }
363360
361+ LOG .info ("Releasing slot for session id " + id );
364362 Lock writeLock = lock .writeLock ();
365363 writeLock .lock ();
366364 try {
367365 for (NodeStatus node : nodes ) {
368366 for (Slot slot : node .getSlots ()) {
369- if (slot .getSession ()== null ) {
367+ if (slot .getSession () == null ) {
370368 continue ;
371369 }
372370
0 commit comments