def run(self, *args, **kwargs): queues = len(self.app.amqp.queues) messages = self.app.control.purge() fmt = self.fmt_purged if messages else self.fmt_empty self.out(fmt.format( mnum=messages, qnum=queues, messages=text.pluralize(messages, 'message'), queues=text.pluralize(queues, 'queue')))
def run(self, *args, **kwargs): queues = len(self.app.amqp.queues.keys()) messages_removed = self.app.control.purge() if messages_removed: self.out('Purged %s %s from %s known task %s.' % ( messages_removed, text.pluralize(messages_removed, 'message'), queues, text.pluralize(queues, 'queue'))) else: self.out('No messages purged from %s known %s' % ( queues, text.pluralize(queues, 'queue')))
def run(self, *args, **kwargs): queues = len(current_app.amqp.queues.keys()) messages_removed = current_app.control.discard_all() if messages_removed: self.out("Purged %s %s from %s known task %s." % ( messages_removed, pluralize(messages_removed, "message"), queues, pluralize(queues, "queue"))) else: self.out("No messages purged from %s known %s" % ( queues, pluralize(queues, "queue")))
def run(self, *args, **kwargs): queues = len(self.app.amqp.queues.keys()) messages_removed = self.app.control.purge() if messages_removed: self.out("Purged %s %s from %s known task %s." % ( messages_removed, text.pluralize(messages_removed, "message"), queues, text.pluralize(queues, "queue"))) else: self.out("No messages purged from %s known %s" % ( queues, text.pluralize(queues, "queue")))
def note_waiting(): left = len(P) if left: pids = ', '.join(str(pid) for _, _, pid in P) self.note(self.colored.blue( '> Waiting for {0} {1} -> {2}...'.format( left, pluralize(left, 'node'), pids)), newline=False)
def run(self, force=False, **kwargs): names = list(sorted(self.app.amqp.queues.keys())) qnum = len(names) if not force: self.out(self.warn_prelude.format( warning=self.colored.red('WARNING'), queues=text.pluralize(qnum, 'queue'), names=', '.join(names), )) if self.ask(self.warn_prompt, ('yes', 'no'), 'no') != 'yes': return messages = self.app.control.purge() fmt = self.fmt_purged if messages else self.fmt_empty self.out(fmt.format( mnum=messages, qnum=qnum, messages=text.pluralize(messages, 'message'), queues=text.pluralize(qnum, 'queue')))
def on_still_waiting_for(self, nodes): num_left = len(nodes) if num_left: self.note(self.colored.blue( '> Waiting for {0} {1} -> {2}...'.format( num_left, pluralize(num_left, 'node'), ', '.join(str(node.pid) for node in nodes)), ), newline=False)
def note_waiting(): left = len(P) if left: pids = ", ".join(str(pid) for _, _, pid in P) self.note( self.colored.blue("> Waiting for {0} {1} -> {2}...".format(left, pluralize(left, "node"), pids)), newline=False, )
def verify_args(self, given, _index=0): S = getfullargspec(self.run) _index = 1 if S.args and S.args[0] == "self" else _index required = S.args[_index : -len(S.defaults) if S.defaults else None] missing = required[len(given) :] if missing: raise self.UsageError( "Missing required {0}: {1}".format(text.pluralize(len(missing), "argument"), ", ".join(missing)) )
def run(self, *args, **kwargs): replies = inspect( app=self.app, no_color=kwargs.get("no_color", False), stdout=self.stdout, stderr=self.stderr ).run("ping", **dict(kwargs, quiet=True, show_body=False)) if not replies: raise Error("No nodes replied within time constraint", status=EX_UNAVAILABLE) nodecount = len(replies) if not kwargs.get("quiet", False): self.out("\n%s %s online." % (nodecount, pluralize(nodecount, "node")))
def verify_args(self, given, _index=0): S = getargspec(self.run) _index = 1 if S.args and S.args[0] == 'self' else _index required = S.args[_index:-len(S.defaults) if S.defaults else None] missing = required[len(given):] if missing: raise self.UsageError('Missing required {0}: {1}'.format( text.pluralize(len(missing), 'argument'), ', '.join(missing) ))
def flatten_reply(reply): nodes, dupes = {}, set() for item in reply: [dupes.add(name) for name in item if name in nodes] nodes.update(item) if dupes: warnings.warn( DuplicateNodenameWarning(W_DUPNODE.format(pluralize(len(dupes), "name"), ", ".join(sorted(dupes)))) ) return nodes
def banner(self, tests): app = self.app return BANNER.format( app='{0}:0x{1:x}'.format(app.main or '__main__', id(app)), version=VERSION_BANNER, conninfo=app.connection().as_uri(), platform=platform.platform(), toc=self.testlist(tests), TESTS=pluralize(len(tests), 'test'), total=len(tests), )
def run(self, *args, **kwargs): replies = inspect(app=self.app, no_color=kwargs.get('no_color', False), stdout=self.stdout, stderr=self.stderr) \ .run('ping', **dict(kwargs, quiet=True, show_body=False)) if not replies: raise Error('No nodes replied within time constraint', status=EX_UNAVAILABLE) nodecount = len(replies) if not kwargs.get('quiet', False): self.out('\n%s %s online.' % (nodecount, text.pluralize(nodecount, 'node')))
def run(self, force=False, **kwargs): names = list(sorted(self.app.amqp.queues.keys())) qnum = len(names) if not force: self.out( self.warn_prelude.format( warning=self.colored.red("WARNING"), queues=text.pluralize(qnum, "queue"), names=", ".join(names) ) ) if self.ask(self.warn_prompt, ("yes", "no"), "no") != "yes": return messages = self.app.control.purge() fmt = self.fmt_purged if messages else self.fmt_empty self.out( fmt.format( mnum=messages, qnum=qnum, messages=text.pluralize(messages, "message"), queues=text.pluralize(qnum, "queue"), ) )
def banner(self, tests): app = self.app return BANNER.format( app='{0}:0x{1:x}'.format(app.main or '__main__', id(app)), version=cyanide.__version__, celery_version=celery.VERSION_BANNER, conninfo=app.connection().as_uri(), platform=platform.platform(), toc=self.testlist(tests), TESTS=pluralize(len(tests), 'test'), total=len(tests), suite=':'.join(qualname(self).rsplit('.', 1)), )
def run(self, force=False, queues=None, exclude_queues=None, **kwargs): queues = set(str_to_list(queues or [])) exclude = set(str_to_list(exclude_queues or [])) names = (queues or set(keys(self.app.amqp.queues))) - exclude qnum = len(names) messages = None if names: if not force: self.out(self.warn_prelude.format( warning=self.colored.red('WARNING'), queues=text.pluralize(qnum, 'queue'), names=', '.join(sorted(names)), )) if self.ask(self.warn_prompt, ('yes', 'no'), 'no') != 'yes': return with self.app.connection_for_write() as conn: messages = sum(self._purge(conn, queue) for queue in names) fmt = self.fmt_purged if messages else self.fmt_empty self.out(fmt.format( mnum=messages, qnum=qnum, messages=text.pluralize(messages, 'message'), queues=text.pluralize(qnum, 'queue')))
def run(self, *args, **kwargs): I = inspect( app=self.app, no_color=kwargs.get('no_color', False), stdout=self.stdout, stderr=self.stderr, show_reply=False, show_body=False, quiet=True, ) replies = I.run('ping', **kwargs) if not replies: raise self.Error('No nodes replied within time constraint', status=EX_UNAVAILABLE) nodecount = len(replies) if not kwargs.get('quiet', False): self.out('\n{0} {1} online.'.format( nodecount, text.pluralize(nodecount, 'node')))
def run(self, *args, **kwargs): I = inspect( app=self.app, no_color=kwargs.get("no_color", False), stdout=self.stdout, stderr=self.stderr, show_reply=False, show_body=False, quiet=True, ) replies = I.run("ping", **kwargs) if not replies: raise Error("No nodes replied within time constraint", status=EX_UNAVAILABLE) nodecount = len(replies) if not kwargs.get("quiet", False): self.out("\n{0} {1} online.".format(nodecount, text.pluralize(nodecount, "node")))
def flatten_reply(reply): """Flatten node replies. Convert from a list of replies in this format:: [{'*****@*****.**': reply}, {'*****@*****.**': reply}] into this format:: {'*****@*****.**': reply, '*****@*****.**': reply} """ nodes, dupes = {}, set() for item in reply: [dupes.add(name) for name in item if name in nodes] nodes.update(item) if dupes: warnings.warn(DuplicateNodenameWarning( W_DUPNODE.format( pluralize(len(dupes), 'name'), ', '.join(sorted(dupes)), ), )) return nodes
def purge_messages(self): count = self.app.control.discard_all() print("discard: Erased %d %s from the queue.\n" % (count, pluralize(count, "message")))
def note_waiting(): left = len(P) if left: pids = ', '.join(str(pid) for _, _, pid in P) self.note(self.colored.blue('> Waiting for %s %s -> %s...' % ( left, pluralize(left, 'node'), pids)), newline=False)
def purge_messages(self): count = self.app.control.purge() print("purge: Erased %d %s from the queue.\n" % (count, pluralize(count, "message")))
def purge_messages(self): count = self.app.control.purge() print('purge: Erased %d %s from the queue.\n' % ( count, pluralize(count, 'message')))
def purge_messages(self): with self.app.connection_for_write() as connection: count = self.app.control.purge(connection=connection) if count: # pragma: no cover print('purge: Erased {0} {1} from the queue.\n'.format( count, pluralize(count, 'message')))
def purge_messages(self): count = self.app.control.purge() print("purge: Erased %d %s from the queue.\n" % ( count, pluralize(count, "message")))
def note_waiting(): left = len(P) if left: self.note(self.colored.blue('> Waiting for {0} {1}...'.format( left, pluralize(left, 'node'))), newline=False)
def purge_messages(self): count = self.app.control.discard_all() print("discard: Erased %d %s from the queue.\n" % ( count, pluralize(count, "message")))
def note_waiting(): left = len(P) if left: self.note(self.colored.blue('> Waiting for %s %s...' % (left, pluralize(left, 'node'))), newline=False)
def purge_messages(self): count = self.app.control.purge() if count: print("purge: Erased {0} {1} from the queue.\n".format(count, pluralize(count, "message")))
def purge_messages(self): count = self.app.control.purge() if count: # pragma: no cover print('purge: Erased {0} {1} from the queue.\n'.format( count, pluralize(count, 'message')))
def note_waiting(): left = len(P) if left: self.note(self.colored.blue("> Waiting for %s %s..." % ( left, pluralize(left, "node"))), newline=False)