3137
|
1 #!/usr/bin/env python3 |
|
2 |
2690
|
3 |
|
4 # jp: a SAT command line tool |
3479
|
5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
2690
|
6 |
|
7 # This program is free software: you can redistribute it and/or modify |
|
8 # it under the terms of the GNU Affero General Public License as published by |
|
9 # the Free Software Foundation, either version 3 of the License, or |
|
10 # (at your option) any later version. |
|
11 |
|
12 # This program is distributed in the hope that it will be useful, |
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
15 # GNU Affero General Public License for more details. |
|
16 |
|
17 # You should have received a copy of the GNU Affero General Public License |
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
19 |
3028
|
20 from . import base |
2690
|
21 from sat.core.i18n import _ |
3040
|
22 from sat_frontends.jp.constants import Const as C |
2690
|
23 |
|
24 __commands__ = ["Ping"] |
|
25 |
|
26 |
|
27 class Ping(base.CommandBase): |
|
28 |
|
29 def __init__(self, host): |
|
30 super(Ping, self).__init__(host, 'ping', help=_('ping XMPP entity')) |
|
31 |
|
32 def add_parser_options(self): |
|
33 self.parser.add_argument( |
3028
|
34 "jid", help=_("jid to ping") |
2690
|
35 ) |
|
36 self.parser.add_argument( |
3028
|
37 "-d", "--delay-only", action="store_true", help=_("output delay only (in s)") |
2690
|
38 ) |
|
39 |
3040
|
40 async def start(self): |
|
41 try: |
|
42 pong_time = await self.host.bridge.ping(self.args.jid, self.profile) |
|
43 except Exception as e: |
|
44 self.disp(msg=_(f"can't do the ping: {e}"), error=True) |
|
45 self.host.quit(C.EXIT_BRIDGE_ERRBACK) |
|
46 else: |
|
47 msg = pong_time if self.args.delay_only else f"PONG ({pong_time} s)" |
|
48 self.disp(msg) |
|
49 self.host.quit() |