LOG.info(_("Trying to create lockfile {fn!r} in directory {d!r} ...").format(
fn=lockfile, d=str(self.locker.lockdir)))
- LOG.info(_("Deploying working directory {f!r} for project {p!r} ...").format(
- f=full_path, p=full_name))
-
- if not os.access(parent_dir, os.F_OK):
- msg = _("Parent directory {d!r} of project {p!r} does not exists.").format(
- d=parent_dir, p=full_name)
- LOG.error(msg)
- self.error_data.append(msg)
- return True
-
- if not os.path.isdir(parent_dir):
- msg = _(
- "Path for parent directory {d!r} for project {p!r} "
- "is not a directory.").format(d=parent_dir, p=full_name)
- LOG.error(msg)
- self.error_data.append(msg)
- return True
-
- self.ensure_workingdir(parent_dir, workdir, branch)
- self.compile_i18n_msgs(os.path.join(parent_dir, workdir))
+ lock = self.locker.create_lockfile(lockfile)
+
+ try:
+ lock.autoremove = True
+
+ LOG.info(_("Deploying working directory {f!r} for project {p!r} ...").format(
+ f=full_path, p=full_name))
+
+ if not os.access(parent_dir, os.F_OK):
+ msg = _("Parent directory {d!r} of project {p!r} does not exists.").format(
+ d=parent_dir, p=full_name)
+ LOG.error(msg)
+ self.error_data.append(msg)
+ return True
+
+ if not os.path.isdir(parent_dir):
+ msg = _(
+ "Path for parent directory {d!r} for project {p!r} "
+ "is not a directory.").format(d=parent_dir, p=full_name)
+ LOG.error(msg)
+ self.error_data.append(msg)
+ return True
+
+ self.ensure_workingdir(parent_dir, workdir, branch)
+ self.compile_i18n_msgs(os.path.join(parent_dir, workdir))
+
+ finally:
+ lock = None
# -------------------------------------------------------------------------
def ensure_workingdir(self, parent_dir, workdir, branch=None):