Skip to content

Commit e5bbf1d

Browse files
Merge pull request #1685 from jonrebm/error-not-idle
client: Clarify error message when unlock is required
2 parents 33532bf + 9b4ccf9 commit e5bbf1d

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)