"""
name_worker_lock.acquire()
try:
- if name not in name_worker: name_worker[name] = Worker(name)
+ if name not in name_worker:
+ name_worker[name] = Worker(name)
return name_worker[name]
- finally: name_worker_lock.release()
+ finally:
+ name_worker_lock.release()
class Account:
Write <rec['keys']> to my authorized_keys file.
"""
new_keys = rec['keys']
- logger.verbose('account: configuring {} with {} keys'.format(self.name, len(new_keys)))
+ nb_keys = len(new_keys) if isinstance(new_keys, list) else 1
+ logger.verbose('account: configuring {} with {} keys'.format(self.name, nb_keys))
if new_keys != self.keys:
# get the unix account info
gid = grp.getgrnam("slices")[2]
# which is a static method, they need to become static as well
# needs to be done before sliver starts (checked with vs and lxc)
@staticmethod
- def mount_ssh_dir (slicename): return Account._manage_ssh_dir (slicename, do_mount=True)
+ def mount_ssh_dir (slicename):
+ return Account._manage_ssh_dir (slicename, do_mount=True)
@staticmethod
- def umount_ssh_dir (slicename): return Account._manage_ssh_dir (slicename, do_mount=False)
+ def umount_ssh_dir (slicename):
+ return Account._manage_ssh_dir (slicename, do_mount=False)
# bind mount / umount root side dir to sliver side
@staticmethod
def _manage_ssh_dir (slicename, do_mount):
- logger.log("_manage_ssh_dir, requested to "+("mount" if do_mount else "umount")+" ssh dir for "+ slicename)
+ logger.log("_manage_ssh_dir, requested to " +
+ ( "mount" if do_mount else "umount" ) +
+ " ssh dir for "+ slicename)
try:
root_ssh = "/home/{}/.ssh".format(slicename)
sliver_ssh = "/vservers/{}/home/{}/.ssh".format(slicename, slicename)
msg = "OK" if umounted else "WARNING: FAILED"
logger.log("_manage_ssh_dir: umounted {} - {}"
.format(sliver_ssh, msg))
- except:
- logger.log_exc("_manage_ssh_dir failed", name=slicename)
+ except Exception as e:
+ logger.log_exc("_manage_ssh_dir failed : {}".format(e), name=slicename)
class Worker:
# this sliver has the lease, it is safe to start it
if not self.is_running():
self.start(rec)
- else: self.configure(rec)
+ else:
+ self.configure(rec)
else:
# not having the lease, do not start it
self.configure(rec)
else:
account_needs_reimage = self._acct.needs_reimage(target_slicefamily)
if account_needs_reimage:
- logger.log("Worker.needs_reimage ({}) - account needs reimage (tmp: DRY RUN)".format(self.name))
+ logger.log("Worker.needs_reimage ({}) - account needs reimage (tmp: DRY RUN)"
+ .format(self.name))
else:
- logger.verbose("Worker.needs_reimage ({}) - everything fine".format(self.name))
+ logger.verbose("Worker.needs_reimage ({}) - everything fine"
+ .format(self.name))
return account_needs_reimage
def _destroy(self, curr_class):
self._acct = None
if curr_class:
destroy_sem.acquire()
- try: curr_class.destroy(self.name)
- finally: destroy_sem.release()
+ try:
+ logger.verbose("account._destroy is callling destroy from {}"
+ .format(curr_class.__name__))
+ curr_class.destroy(self.name)
+ finally:
+ destroy_sem.release()
def _get_class(self):
- try: shell = pwd.getpwnam(self.name)[6]
- except KeyError: return None
+ try:
+ shell = pwd.getpwnam(self.name)[6]
+ except KeyError:
+ return None
return shell_acct_class[shell]