Exemple #1
0
 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')))
Exemple #2
0
 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')))
Exemple #3
0
 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")))
Exemple #4
0
 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")))
Exemple #5
0
 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)
Exemple #6
0
 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')))
Exemple #7
0
 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)
Exemple #8
0
 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,
         )
Exemple #9
0
 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))
         )
Exemple #10
0
 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")))
Exemple #11
0
 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)
         ))
Exemple #12
0
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
Exemple #13
0
 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),
     )
Exemple #14
0
 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')))
Exemple #15
0
 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"),
         )
     )
Exemple #16
0
 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)),
     )
Exemple #17
0
    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')))
Exemple #18
0
 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')))
Exemple #19
0
 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")))
Exemple #20
0
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 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
Exemple #22
0
 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")))
Exemple #25
0
 def purge_messages(self):
     count = self.app.control.purge()
     print('purge: Erased %d %s from the queue.\n' % (
         count, pluralize(count, 'message')))
Exemple #26
0
 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')))
Exemple #27
0
 def purge_messages(self):
     count = self.app.control.purge()
     print("purge: Erased %d %s from the queue.\n" % (
             count, pluralize(count, "message")))
Exemple #28
0
 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')))
Exemple #29
0
 def note_waiting():
     left = len(P)
     if left:
         self.note(self.colored.blue('> Waiting for {0} {1}...'.format(
             left, pluralize(left, 'node'))), newline=False)
Exemple #30
0
 def purge_messages(self):
     count = self.app.control.discard_all()
     print("discard: Erased %d %s from the queue.\n" % (
             count, pluralize(count, "message")))
Exemple #31
0
 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 %s %s...' %
                                     (left, pluralize(left, 'node'))),
                   newline=False)
Exemple #33
0
 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")))
Exemple #34
0
 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')))
Exemple #35
0
 def note_waiting():
     left = len(P)
     if left:
         self.note(self.colored.blue("> Waiting for %s %s..." % (
             left, pluralize(left, "node"))), newline=False)