def execute_watcher_start_stop_restart(arbiter, props, watcher_function_name, watchers_function, arbiter_function): """base function to handle start/stop/restart watcher requests. since this is always the same procedure except some function names this function handles all watcher start/stop commands """ if 'name' in props: name = re.compile(fnmatch.translate(props['name'])) watchers = [watcher for watcher in arbiter.iter_watchers() if name.match(watcher.name.lower())] if not watchers: raise MessageError("program %s not found" % props['name']) if len(watchers) == 1: if props.get('waiting'): resp = TransformableFuture() func = getattr(watchers[0], watcher_function_name) resp.set_upstream_future(func()) resp.set_transform_function(lambda x: {"info": x}) return resp return getattr(watchers[0], watcher_function_name)() watcher_iter_func = lambda reverse=True: \ sorted(watchers, key=lambda a: a.priority, reverse=reverse) return watchers_function(watcher_iter_func=watcher_iter_func) else: return arbiter_function()
def execute(self, arbiter, props): graceful = props.get('graceful', True) sequential = props.get('sequential', False) if 'name' in props: watcher = self._get_watcher(arbiter, props['name']) if props.get('waiting'): resp = TransformableFuture() resp.set_upstream_future(watcher.reload( graceful=graceful, sequential=sequential)) resp.set_transform_function(lambda x: {"info": x}) return resp return watcher.reload(graceful=graceful, sequential=sequential) else: return arbiter.reload(graceful=graceful, sequential=sequential)
def execute_watcher_start_stop_restart(arbiter, props, watcher_function_name, watchers_function, arbiter_function): """base function to handle start/stop/restart watcher requests. since this is always the same procedure except some function names this function handles all watcher start/stop commands """ if 'name' in props: name = re.compile(fnmatch.translate(props['name'])) watchers = [watcher for watcher in arbiter.iter_watchers() if name.match(watcher.name.lower())] if not watchers: raise MessageError("program %s not found" % props['name']) if len(watchers) == 1: if props.get('waiting'): resp = TransformableFuture() func = getattr(watchers[0], watcher_function_name) resp.set_upstream_future(func()) resp.set_transform_function(lambda x: {"info": x}) return resp return getattr(watchers[0], watcher_function_name)() def watcher_iter_func(reverse=True): return sorted(watchers, key=lambda a: a.priority, reverse=reverse) return watchers_function(watcher_iter_func=watcher_iter_func) else: return arbiter_function()
def execute(self, arbiter, props): watcher = self._get_watcher(arbiter, props.get('name')) nb = props.get('nb', 1) resp = TransformableFuture() resp.set_upstream_future(watcher.decr(nb)) resp.set_transform_function(lambda x: {"numprocesses": x}) return resp
def execute(self, arbiter, props): watcher = self._get_watcher(arbiter, props.get('name')) if watcher.singleton: return {"numprocesses": watcher.numprocesses, "singleton": True} else: nb = props.get("nb", 1) resp = TransformableFuture() resp.set_upstream_future(watcher.incr(nb)) resp.set_transform_function(lambda x: {"numprocesses": x}) return resp
def execute(self, arbiter, props): if 'name' in props: watcher = self._get_watcher(arbiter, props['name']) if props.get('waiting'): resp = TransformableFuture() resp.set_upstream_future(watcher.start()) resp.set_transform_function(lambda x: {"info": x}) return resp return watcher.start() else: return arbiter.start_watchers()
def execute(self, arbiter, props): graceful = props.get('graceful', True) sequential = props.get('sequential', False) if 'name' in props: watcher = self._get_watcher(arbiter, props['name']) if props.get('waiting'): resp = TransformableFuture() resp.set_upstream_future( watcher.reload(graceful=graceful, sequential=sequential)) resp.set_transform_function(lambda x: {"info": x}) return resp return watcher.reload(graceful=graceful, sequential=sequential) else: return arbiter.reload(graceful=graceful, sequential=sequential)