示例#1
0
 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)
示例#2
0
    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)
示例#3
0
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()
示例#4
0
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
示例#5
0
 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
示例#6
0
 def __readlock(self):
     self.fl = FileLock(self.db_file)
     self.fl.lock(shared=True)
示例#7
0
 def __writelock(self):
     self.fl = FileLock(self.db_file)
     self.fl.lock(shared=False)
示例#8
0
 def __readLock(self):
     """
         Puts a read lock to file.
     """
     self.fl = FileLock(self.inifile)
     self.fl.lock(shared=True)
示例#9
0
 def __writeLock(self):
     """
         Puts a write lock to file.
     """
     self.fl = FileLock(self.inifile)
     self.fl.lock(shared=False)