@@ -95,11 +95,19 @@ def get_allocated_ports(self) -> List[int]:
95
95
return [port for port , _ in port_user_pairs ]
96
96
97
97
def get_allocated_port_user_pairs (self ) -> List [List [int ]]:
98
- return cast (List [List [int ]], orjson .loads (cast (bytes , self ._redis .get (self ._settings .redis_ports_key ))))
98
+ allocated_port_user_pairs = cast (bytes | None , self ._redis .get (self ._settings .redis_ports_key ))
99
+ logger .debug ("allocated port user pairs: %s" , allocated_port_user_pairs )
100
+ if allocated_port_user_pairs is None :
101
+ return []
102
+ return cast (List [List [int ]], orjson .loads (allocated_port_user_pairs ))
99
103
100
104
def allocate_port_for_user (self , port : int , test_user_id : int ) -> None :
101
105
new_allocated_ports = self .get_allocated_port_user_pairs ()
106
+ if [port , test_user_id ] in new_allocated_ports :
107
+ logger .debug ("port %s for user %s already in redis: %s" , port , test_user_id , new_allocated_ports )
108
+ return
102
109
new_allocated_ports .append ([port , test_user_id ])
110
+ logger .debug ("added port %s for user %s in redis: %s" , port , test_user_id , new_allocated_ports )
103
111
self ._redis .set (self ._settings .redis_ports_key , orjson .dumps (sorted (new_allocated_ports )))
104
112
105
113
def _is_port_in_use (self , port : int ) -> bool :
0 commit comments