X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/2f404454931e0df0ba0d6e929c6ffedc6c7e6006..1017502ba4bfa740fd73812f11feea2e3476e71d:/pymin/procman.py diff --git a/pymin/procman.py b/pymin/procman.py index 115f3b4..554fdba 100644 --- a/pymin/procman.py +++ b/pymin/procman.py @@ -25,7 +25,7 @@ class ProcessInfo: def clear(self): self._dont_run = False self._signal = None - self.process = None + self._process = None self.error_count = 0 def start(self): assert self.process is None @@ -33,7 +33,8 @@ class ProcessInfo: def restart(self): self.clear() log.debug(u'ProcessInfo.restart(): executing %s', self.command) - self.process = subprocess.Popen(self.command, *self.args, **self.kwargs) + self._process = subprocess.Popen(self.command, + *self.args, **self.kwargs) def stop(self): assert self.process is not None self._dont_run = True @@ -55,6 +56,9 @@ class ProcessInfo: @property def name(self): return self._name + @property + def process(self): + return self._process def __repr__(self): pid = None if self.process is not None: @@ -181,6 +185,8 @@ class ProcessManager: if name in self.pidmap: return self.pidmap[name] raise KeyError, name + # Syntax sugar for self[name] + __getitem__ = get def has(self, name): if isinstance(name, basestring): # is a name @@ -192,12 +198,8 @@ class ProcessManager: if name in self.pidmap: return True return False - - def __getitem__(self, name): - return self.get(name) - - def __contains__(self, name): - return self.has(name) + # Syntax sugar for name in self + __contains__ = has if __name__ == '__main__': @@ -253,6 +255,9 @@ if __name__ == '__main__': assert 'test-service' in manager.services assert 'test-service' not in manager.namemap assert not get('test-service').running + assert manager['test-service'] == get('test-service') + assert has('test-service') + assert 'test-service' in manager register('test-service-2', ('sleep', '3'), notify, False) assert 'test-service-2' in manager.services