@@ -37,6 +37,14 @@ class BrokenResourceError(ExporterError):
37
37
pass
38
38
39
39
40
+ class UnknownResourceError (ExporterError ):
41
+ pass
42
+
43
+
44
+ class InvalidResourceRequestError (ExporterError ):
45
+ pass
46
+
47
+
40
48
def log_subprocess_kernel_stack (logger , child ):
41
49
if child .poll () is not None : # nothing to check if no longer running
42
50
return
@@ -889,8 +897,9 @@ async def message_pump(self):
889
897
out_message .set_acquired_request .resource_name ,
890
898
)
891
899
success = True
892
- except BrokenResourceError as e :
900
+ except ( BrokenResourceError , InvalidResourceRequestError , UnknownResourceError ) as e :
893
901
reason = e .args [0 ]
902
+ logging .warning ("set_acquired_request failed: %s" , reason )
894
903
finally :
895
904
in_message = labgrid_coordinator_pb2 .ExporterInMessage ()
896
905
in_message .response .success = success
@@ -924,8 +933,14 @@ async def message_pump(self):
924
933
async def acquire (self , group_name , resource_name , place_name ):
925
934
resource = self .groups .get (group_name , {}).get (resource_name )
926
935
if resource is None :
927
- logging .error ("acquire request for unknown resource %s/%s by %s" , group_name , resource_name , place_name )
928
- return
936
+ raise UnknownResourceError (
937
+ f"acquire request for unknown resource { group_name } /{ resource_name } by { place_name } "
938
+ )
939
+
940
+ if resource .acquired :
941
+ raise InvalidResourceRequestError (
942
+ f"Resource { group_name } /{ resource_name } is already acquired by { resource .acquired } "
943
+ )
929
944
930
945
try :
931
946
resource .acquire (place_name )
@@ -935,8 +950,10 @@ async def acquire(self, group_name, resource_name, place_name):
935
950
async def release (self , group_name , resource_name ):
936
951
resource = self .groups .get (group_name , {}).get (resource_name )
937
952
if resource is None :
938
- logging .error ("release request for unknown resource %s/%s" , group_name , resource_name )
939
- return
953
+ raise UnknownResourceError (f"release request for unknown resource { group_name } /{ resource_name } " )
954
+
955
+ if not resource .acquired :
956
+ raise InvalidResourceRequestError (f"Resource { group_name } /{ resource_name } is not acquired" )
940
957
941
958
try :
942
959
resource .release ()
0 commit comments