PATH:
usr
/
lib
/
python2.7
/
site-packages
/
vdo
/
vdomgmnt
# # Copyright (c) 2018 Red Hat, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # """ CommandLock - simple process locking $Id: //eng/vdo-releases/magnesium/src/python/vdo/vdomgmnt/CommandLock.py#1 $ """ from utils import Command, FileLock, Logger class CommandLockError(Exception): """Exception raised to indicate an error acquiring a CommandLock.""" ###################################################################### # Overridden methods ###################################################################### def __init__(self, message, *args): super(CommandLockError, self).__init__() self._message = message.format(*args) ###################################################################### def __str__(self): return self._message ######################################################################## class CommandLock(FileLock): """Simple process locking. """ log = Logger.getLogger(Logger.myname + '.CommandLock') ###################################################################### # Overridden methods ###################################################################### def __enter__(self): try: super(CommandLock, self).__enter__() except: raise CommandLockError("Could not lock file {0}", self.path) return self ###################################################################### def __init__(self, filePath, readonly=True): super(CommandLock, self).__init__(filePath, "r" if readonly else "r+", timeout = 20) ###################################################################### def __repr__(self): lst = [str(self), "["] lst.append(','.join('='.join([key, str(getattr(self, key))]) for key in self.__dict__)) lst.append("]") return "".join(lst) ###################################################################### def __str__(self): return "{0}({1})".format(type(self).__name__, self.path) ###################################################################### def _createFile(self): super(CommandLock, self)._createFile() # For now, we default to permitting shared locks from non-root # processes. The sysadmin may change this; we won't change the # permissions once the file has been created. # # N.B.: The names may not be sanitized for use with a shell! cmd = Command(["chmod", "644", self.path]) cmd.run() ###################################################################### # Protected methods ######################################################################
[+]
..
[-] CommandLock.py
[edit]
[-] Configuration.py
[edit]
[-] Configuration.pyc
[edit]
[-] Configuration.pyo
[edit]
[-] Constants.py
[edit]
[-] Defaults.py
[edit]
[-] KernelModuleService.py
[edit]
[-] MgmntLogger.py
[edit]
[-] MgmntUtils.py
[edit]
[-] Service.py
[edit]
[-] SizeString.py
[edit]
[-] Utils.py
[edit]
[-] VDOKernelModuleService.py
[edit]
[-] VDOOperation.py
[edit]
[-] VDOService.py
[edit]
[-] __init__.py
[edit]
[-] CommandLock.pyc
[edit]
[-] CommandLock.pyo
[edit]
[-] Constants.pyc
[edit]
[-] Constants.pyo
[edit]
[-] Defaults.pyc
[edit]
[-] Defaults.pyo
[edit]
[-] KernelModuleService.pyc
[edit]
[-] KernelModuleService.pyo
[edit]
[-] MgmntLogger.pyc
[edit]
[-] MgmntLogger.pyo
[edit]
[-] MgmntUtils.pyc
[edit]
[-] MgmntUtils.pyo
[edit]
[-] Service.pyc
[edit]
[-] Service.pyo
[edit]
[-] SizeString.pyc
[edit]
[-] SizeString.pyo
[edit]
[-] Utils.pyc
[edit]
[-] Utils.pyo
[edit]
[-] VDOKernelModuleService.pyc
[edit]
[-] VDOKernelModuleService.pyo
[edit]
[-] VDOOperation.pyc
[edit]
[-] VDOOperation.pyo
[edit]
[-] VDOService.pyc
[edit]
[-] VDOService.pyo
[edit]
[-] __init__.pyc
[edit]
[-] __init__.pyo
[edit]
[-] ExitStatusMixins.py
[edit]
[-] ExitStatusMixins.pyc
[edit]
[-] ExitStatusMixins.pyo
[edit]