Skip to content

Commit 9b4ccf9

Browse files
committed
client: Clarify error message when unlock is required
Adding/removing aliases and matches requires a place to be idle. The error when message when not minding this, is misleading in these cases where really the place needs to be unlocked before the specific operation. Mention that the specific operation needs the place be idle. Instruct the user to unlock if it's acquired by them. Signed-off-by: Jonas Rebmann <[email protected]>
1 parent 4d86c3b commit 9b4ccf9

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

labgrid/remote/client.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,10 +481,11 @@ def get_place(self, place=None):
481481
def get_idle_place(self, place=None):
482482
place = self.get_place(place)
483483
if place.acquired:
484-
_, user = place.acquired.split("/")
485-
raise UserError(
486-
f"place {place.name} is not idle (acquired by {place.acquired}). To work simultaneously, {user} can execute labgrid-client -p {place.name} allow {self.gethostname()}/{self.getuser()}"
487-
)
484+
err = "This operation requires the place to be idle."
485+
if place.acquired == self.gethostname() + "/" + self.getuser():
486+
raise UserError(f"{err} Please release {place.name}.")
487+
else:
488+
raise UserError(f"{err} Place {place.name} is acquired by {place.acquired}.")
488489
return place
489490

490491
def get_acquired_place(self, place=None):
@@ -681,7 +682,21 @@ def check_matches(self, place):
681682

682683
async def acquire(self):
683684
"""Acquire a place, marking it unavailable for other clients"""
684-
place = self.get_idle_place()
685+
place = self.get_place()
686+
if place.acquired:
687+
host, user = place.acquired.split("/")
688+
allowhelp = f"'labgrid-client -p {place.name} allow {self.gethostname()}/{self.getuser()}' on {host}."
689+
if self.getuser() == user:
690+
if self.gethostname() == host:
691+
raise UserError("You have already acquired this place.")
692+
else:
693+
raise UserError(
694+
f"You have already acquired this place on {host}. To work simultaneously, execute {allowhelp}"
695+
)
696+
else:
697+
raise UserError(
698+
f"Place {place.name} is already acquired by {place.acquired}. To work simultaneously, {user} can execute {allowhelp}"
699+
)
685700
if not self.args.allow_unmatched:
686701
self.check_matches(place)
687702

0 commit comments

Comments
 (0)