| Total Complexity | 3 |
| Total Lines | 25 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | ''' |
||
| 21 | class ScriptLock(): |
||
| 22 | config = None |
||
| 23 | flock = None |
||
| 24 | |||
| 25 | def __init__(self, config): |
||
| 26 | ''' |
||
| 27 | Parse machine-local configuration file. |
||
| 28 | ''' |
||
| 29 | self.config = config |
||
| 30 | |||
| 31 | def __enter__(self): |
||
| 32 | ''' |
||
| 33 | Be a context manager. |
||
| 34 | ''' |
||
| 35 | fname = self.config.get("Execution", "pidfile") |
||
| 36 | self.flock = FilesystemLock(fname) |
||
| 37 | logger.debug("Obtaining script lock") |
||
| 38 | self.flock.lock() |
||
| 39 | |||
| 40 | def __exit__(self, exc_type, exc_value, traceback): |
||
| 41 | ''' |
||
| 42 | Be a context manager. |
||
| 43 | ''' |
||
| 44 | logger.debug("Releasing script lock") |
||
| 45 | self.flock.unlock() |
||
| 46 |