def convert_option(key, val): if key == "numprocesses": return int(val) elif key == "warmup_delay": return float(val) elif key == "working_dir": return val elif key == "uid": return val elif key == "gid": return val elif key == "send_hup": return util.to_bool(val) elif key == "shell": return util.to_bool(val) elif key == "env": return util.parse_env(val) elif key == "cmd": return val elif key == "flapping_attempts": return int(val) elif key == "flapping_window": return float(val) elif key == "retry_in": return float(val) elif key == "max_retry": return int(val) elif key == "graceful_timeout": return float(val) raise ArgumentError("unkown key %r" % key)
def message(self, *args, **opts): if len(args) < 3: raise ArgumentError("number of arguments invalid") args = list(args) watcher_name = args.pop(0) if len(args) % 2 != 0: raise ArgumentError("List of key/values is invalid") options = {} while len(args) > 0: kv, args = args[:2], args[2:] kvl = kv[0].lower() options[kvl] = convert_option(kvl, kv[1]) return self.make_message(name=watcher_name, options=options)
def _get_signal(self, sig): if sig.lower() in ('quit', 'hup', 'kill', 'term', 'ttin', 'ttou', 'usr1', 'usr2'): return getattr(signal, "SIG%s" % sig.upper()) elif sig.isdigit(): return int(sig) raise ArgumentError("signal %r not supported" % sig)
def message(self, *args, **opts): if len(args) < 1: raise ArgumentError("number of arguments invalid") options = {'name': args[0]} if len(args) > 1: options['nb'] = int(args[1]) return self.make_message(**options)
def dispatch(self, args): cmd, globalopts, opts, args = self._parse(args) if globalopts['help'] or cmd == "help": del globalopts["help"] return self.display_help(*args, **globalopts) elif globalopts['version'] or cmd == "version": return self.display_version() else: if cmd not in self.commands: raise ArgumentError('Unknown command %r' % cmd) cmd = self.commands[cmd] endpoint = globalopts.get('endpoint') if not endpoint: if cmd.msg_type == "sub": endpoint = "tcp://127.0.0.1:5556" else: endpoint = "tcp://127.0.0.1:5555" timeout = globalopts.get("timeout", 5.0) msg = cmd.message(*args, **opts) return getattr(self, "handle_%s" % cmd.msg_type)(cmd, globalopts, msg, endpoint, timeout)
def message(self, *args, **opts): if len(args) < 2: raise ArgumentError("Invalid number of arguments") return self.make_message(name=args[0], cmd=" ".join(args[1:]), start=opts.get('start', False))
def message(self, *args, **opts): if len(args) > 1: raise ArgumentError("invalid number of arguments") if len(args) == 1: return self.make_message(name=args[0]) else: return self.make_message()
def message(self, *args, **opts): if len(args) > 1: raise ArgumentError("invalid number of arguments") graceful = not opts.get("terminate", False) if len(args) == 1: return self.make_message(name=args[0], graceful=graceful) else: return self.make_message(graceful=graceful)
def message(self, *args, **opts): if len(args) > 2: raise ArgumentError("message invalid") if len(args) == 2: return self.make_message(name=args[0], process=int(args[1])) elif len(args) == 1: return self.make_message(name=args[0]) else: return self.make_message()
def validate(self, props): super(Signal, self).validate(props) if 'childpid' in props and not 'pid' in props: raise ArgumentError('cannot specify childpid without pid') try: props['signum'] = to_signum(props['signum']) except ValueError: raise MessageError('signal invalid')
def message(self, *args, **opts): numArgs = 3 if len(args) < numArgs: raise ArgumentError( 'Invalid number of arguments. Usage: <identifier> <address> <cluster>' ) if len(args) == numArgs: opts['identifier'] = args[0] opts['address'] = args[1] opts['cluster'] = args[2].split(',') return self.make_message(**opts)
def validate(self, props): super(Signal, self).validate(props) signum = props.get('signum') if 'statspid' in props and not 'pid' in props: raise ArgumentError('cannot specify childpid without pid') if 'children' in props and not 'pid' in props: raise ArgumentError('cannot specify children without pid') if isinstance(signum, int): if signum not in (signal.SIGQUIT, signal.SIGHUP, signal.SIGKILL, signal.SIGTERM, signal.SIGTTIN, signal.SIGTTOU, signal.SIGUSR1, signal.SIGUSR2): raise MessageError('signal invalid') elif isinstance(signum, string_types): if signum.lower() in ('quit', 'hup', 'kill', 'term', 'ttin', 'ttou', 'usr1', 'usr2'): props['signum'] = getattr(signal, "SIG%s" % signum.upper()) else: raise MessageError('signal invalid')
def message(self, *args, **opts): if len(args) < 1 or len(args) > 2: raise ArgumentError("Invalid number of arguments") props = {} props['name'] = args[0] if len(args) > 1: props['pid'] = args[1] if opts['signum'] is not None: props['signum'] = opts['signum'] if opts['graceful_timeout'] is not None: props['graceful_timeout'] = opts['graceful_timeout'] return self.make_message(**props)
def message(self, *args, **opts): if len(args) > 2: raise ArgumentError("message invalid") extended = opts.get("extended", False) if len(args) == 2: return self.make_message(name=args[0], process=int(args[1]), extended=extended) elif len(args) == 1: return self.make_message(name=args[0], extended=extended) else: return self.make_message(extended=extended)
def convert_option(key, val): if key == "numprocesses": return int(val) elif key == "warmup_delay": return float(val) elif key == "working_dir": return val elif key == "uid": return val elif key == "gid": return val elif key == "send_hup": return util.to_bool(val) elif key == "shell": return util.to_bool(val) elif key == "copy_env": return util.to_bool(val) elif key == "env": return util.parse_env_dict(val) elif key == "cmd": return val elif key == "flapping_attempts": return int(val) elif key == "flapping_window": return float(val) elif key == "retry_in": return float(val) elif key == "max_retry": return int(val) elif key == "graceful_timeout": return float(val) elif key == 'max_age': return int(val) elif key == 'max_age_variance': return int(val) elif key == 'respawn': return util.to_bool(val) elif key.startswith('stderr_stream.') or key.startswith('stdout_stream.'): subkey = key.split('.', 1)[-1] if subkey in ('max_bytes', 'backup_count'): return int(val) return val elif key.startswith('hooks.'): subkey = key.split('.', 1)[-1] if subkey in ('before_start', 'after_start', 'before_stop', 'after_stop', 'before_spawn'): return val raise ArgumentError("unknown key %r" % key)
def message(self, *args, **opts): largs = len(args) if largs < 2 or largs > 3: raise ArgumentError("Invalid number of arguments") props = { 'name': args[0], 'children': opts.get("children", False), 'recursive': opts.get("recursive", False), 'signum': args[-1], } if len(args) == 3: props['pid'] = int(args[1]) return self.make_message(**props)
def message(self, *args, **opts): if len(args) > 1: raise ArgumentError("invalid number of arguments") graceful = not opts.get("terminate", False) waiting = opts.get("waiting", False) sequential = opts.get("sequential", False) if len(args) == 1: return self.make_message(name=args[0], graceful=graceful, waiting=waiting, sequential=sequential) else: return self.make_message(graceful=graceful, waiting=waiting, sequential=sequential)
def message(self, *args, **opts): largs = len(args) if largs < 2 or largs > 4: raise ArgumentError("number of arguments invalid") if len(args) == 4: signum = self._get_signal(args[3]) return self.make_message(name=args[0], process=args[1], pid=args[2], signum=signum) elif len(args) == 3: signum = self._get_signal(args[2]) children = opts.get("children", False) return self.make_message(name=args[0], process=args[1], signum=signum, children=children) else: signum = self._get_signal(args[1]) return self.make_message(name=args[0], signum=signum)
def message(self, *args, **opts): if len(args) > 0: raise ArgumentError("message invalid") return self.make_message()
def message(self, *args, **opts): if len(args) < 1: raise ArgumentError("number of arguments invalid") return self.make_message(name=args[0])
def convert_option(key, val): if key == "numprocesses": return int(val) elif key == "warmup_delay": return float(val) elif key == "working_dir": return val elif key == "uid": return val elif key == "gid": return val elif key == "send_hup": return util.to_bool(val) elif key == "shell": return util.to_bool(val) elif key == "copy_env": return util.to_bool(val) elif key == "env": return util.parse_env_dict(val) elif key == "cmd": return val elif key == "flapping_attempts": return int(val) elif key == "flapping_window": return float(val) elif key == "retry_in": return float(val) elif key == "max_retry": return int(val) elif key == "graceful_timeout": return float(val) elif key == 'max_age': return int(val) elif key == 'max_age_variance': return int(val) elif key == 'respawn': return util.to_bool(val) elif key.startswith('stderr_stream.') or key.startswith('stdout_stream.'): subkey = key.split('.', 1)[-1] if subkey in ('max_bytes', 'backup_count'): return int(val) return val elif key == 'hooks': res = {} for hook in val.split(','): if hook == '': continue hook = hook.split(':') if len(hook) != 2: raise ArgumentError(hook) name, value = hook if name not in _HOOKS: raise ArgumentError(name) res[name] = value return res elif key.startswith('hooks.'): # we can also set a single hook name = key.split('.', 1)[-1] if name not in _HOOKS: raise ArgumentError(name) return val raise ArgumentError("unknown key %r" % key)
def message(self, *args, **opts): if len(args) > 0: raise ArgumentError("invalid number of arguments") return self.make_message()
def message(self, *args, **opts): if len(args) < 2: raise ArgumentError("Invalid number of arguments") return self.make_message(name=args[0], keys=args[1:])