diff options
| author | Barry Warsaw | 2017-07-22 03:02:06 +0000 |
|---|---|---|
| committer | Barry Warsaw | 2017-07-22 03:02:06 +0000 |
| commit | 02826321d0430d7ffc1f674eeff4221941689ef7 (patch) | |
| tree | 1a8e56dff0eab71e58e5fc9ecc5f3c614d7edca7 /src/mailman/commands/cli_status.py | |
| parent | f54c045519300f6f70947d1114f46c2b8ae0d368 (diff) | |
| parent | f00b94f18e1d82d1488cbcee6053f03423bc2f49 (diff) | |
| download | mailman-02826321d0430d7ffc1f674eeff4221941689ef7.tar.gz mailman-02826321d0430d7ffc1f674eeff4221941689ef7.tar.zst mailman-02826321d0430d7ffc1f674eeff4221941689ef7.zip | |
Diffstat (limited to 'src/mailman/commands/cli_status.py')
| -rw-r--r-- | src/mailman/commands/cli_status.py | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/src/mailman/commands/cli_status.py b/src/mailman/commands/cli_status.py index 8d29b058d..84b3ed6ab 100644 --- a/src/mailman/commands/cli_status.py +++ b/src/mailman/commands/cli_status.py @@ -17,43 +17,44 @@ """The `mailman status` subcommand.""" +import sys +import click import socket from mailman.bin.master import WatcherState, master_state from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from mailman.utilities.options import I18nCommand from public import public from zope.interface import implementer +@click.command( + cls=I18nCommand, + help=_('Show the current running status of the Mailman system.')) +def status(): + status, lock = master_state() + if status is WatcherState.none: + message = _('GNU Mailman is not running') + elif status is WatcherState.conflict: + hostname, pid, tempfile = lock.details + message = _('GNU Mailman is running (master pid: $pid)') + elif status is WatcherState.stale_lock: + hostname, pid, tempfile = lock.details + message = _('GNU Mailman is stopped (stale pid: $pid)') + else: + hostname, pid, tempfile = lock.details + fqdn_name = socket.getfqdn() # noqa: F841 + assert status is WatcherState.host_mismatch, ( + 'Invalid enum value: %s' % status) + message = _('GNU Mailman is in an unexpected state ' + '($hostname != $fqdn_name)') + print(message) + sys.exit(status.value) + + @public @implementer(ICLISubCommand) class Status: - """Status of the Mailman system.""" - name = 'status' - - def add(self, parser, command_parser): - """See `ICLISubCommand`.""" - pass - - def process(self, args): - """See `ICLISubCommand`.""" - status, lock = master_state() - if status is WatcherState.none: - message = _('GNU Mailman is not running') - elif status is WatcherState.conflict: - hostname, pid, tempfile = lock.details - message = _('GNU Mailman is running (master pid: $pid)') - elif status is WatcherState.stale_lock: - hostname, pid, tempfile = lock.details - message = _('GNU Mailman is stopped (stale pid: $pid)') - else: - hostname, pid, tempfile = lock.details - fqdn_name = socket.getfqdn() # noqa: F841 - assert status is WatcherState.host_mismatch, ( - 'Invalid enum value: %s' % status) - message = _('GNU Mailman is in an unexpected state ' - '($hostname != $fqdn_name)') - print(message) - return status.value + command = status |
