From 4dab61739b9c0f3f0535e84fa9294d040583fa34 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Fri, 14 Oct 2011 18:38:31 +0200 Subject: [PATCH] [eit.commands.command] add _call_unlocked() method --- server/eit/commands/command.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/server/eit/commands/command.py b/server/eit/commands/command.py index fe3cd52d2..b347fdc04 100644 --- a/server/eit/commands/command.py +++ b/server/eit/commands/command.py @@ -83,6 +83,24 @@ class EitCommand(object): entropy.tools.release_entropy_locks(server) server.shutdown() + def _call_unlocked(self, func, repo): + """ + Execute the given function at func after acquiring Entropy + Resources Lock, for given repository at repo. + The signature of func is: int func(entropy_server). + """ + server = None + try: + try: + server = self._entropy(default_repository=repo) + except PermissionDenied as err: + print_error(err.value) + return 1 + return func(server) + finally: + if server is not None: + server.shutdown() + def _settings(self): """ Return a SystemSettings instance.