def __init__(self, _file, shared=False): lockfile = os.path.join(os.path.dirname(_file), ".%s" % os.path.basename(_file)) try: self.lock = FileLock(_file) self.lock.lock(timeout=TIMEOUT, shared=shared) except IOError: fail(FAIL_TIMEOUT)
def __init__(self, _dir, write=False, timeout=-1): self.dir = _dir self.write = write self.grub_conf = os.path.join(_dir, "grub.conf") self.lock = FileLock("%s/.grub.lock" % _dir) try: self.lock.lock(write, timeout) except IOError: fail(FAIL_TIMEOUT) # Fail if grub is not installed if os.path.exists(self.grub_conf): self.config = grubConf() self.config.parseConf(self.grub_conf) else: self.fail(FAIL_NOGRUB)
def setConf(key, value=None): lock = FileLock(CONF) lock.lock(shared=False) data = file(CONF).read() lines = data.split("\n") for index, line in enumerate(lines): try: _key, _value = line.split("=", 1) except ValueError: continue _key = _key.strip() if key == _key or (_key.startswith("#") and _key[1:].strip() == key): if value: lines[index] = "%s = '%s'" % (key, value) elif not line.startswith("#"): lines[index] = "# %s" % line file(CONF, "w").write("\n".join(lines)) lock.unlock()
def getConf(key, default=None): lock = FileLock(CONF) lock.lock(shared=True) value = default for line in file(CONF): line = line.strip() try: _key, _value = line.split("=", 1) except ValueError: continue _key = _key.strip() if key == _key: value = _value.strip() if value.startswith('"') or value.startswith("'"): value = value[1:-1] break lock.unlock() return value
def __init__(self, for_read=False): self.lock = FileLock(self.lock_path) self.lock.lock(shared=for_read) self.users = {} self.users_by_name = {} self.groups = {} self.groups_by_name = {} for line in file(self.passwd_path): if line != "" and line != "\n": parts = line.rstrip("\n").split(":") user = User() user.name = parts[0] user.uid = int(parts[2]) user.gid = int(parts[3]) user.realname = parts[4] user.homedir = parts[5] user.shell = parts[6] self.users[user.uid] = user self.users_by_name[user.name] = user for line in file(self.shadow_path): if line != "" and line != "\n": parts = line.rstrip("\n").split(":") if self.users_by_name.has_key(parts[0]): user = self.users_by_name[parts[0]] user.password = parts[1] user.pwrest = parts[2:] for line in file(self.group_path): if line != "" and line != "\n": parts = line.rstrip("\n").split(":") group = Group() group.name = parts[0] group.gid = int(parts[2]) group.members = parts[3].split(",") if "" in group.members: group.members.remove("") self.groups[group.gid] = group self.groups_by_name[group.name] = group
def __readlock(self): self.fl = FileLock(self.db_file) self.fl.lock(shared=True)
def __writelock(self): self.fl = FileLock(self.db_file) self.fl.lock(shared=False)
def __readLock(self): """ Puts a read lock to file. """ self.fl = FileLock(self.inifile) self.fl.lock(shared=True)
def __writeLock(self): """ Puts a write lock to file. """ self.fl = FileLock(self.inifile) self.fl.lock(shared=False)