# HG changeset patch # User Goffi # Date 1483651346 -3600 # Node ID dc5d214f0a3bfdf696a16d2350bf3e6abe548dbc # Parent 9c861d07b5b68c8076ed88ae58185da7eea19f38 jp (info/session): added a command to get data on current session diff -r 9c861d07b5b6 -r dc5d214f0a3b frontends/src/jp/base.py --- a/frontends/src/jp/base.py Thu Jan 05 22:22:13 2017 +0100 +++ b/frontends/src/jp/base.py Thu Jan 05 22:22:26 2017 +0100 @@ -512,7 +512,7 @@ @param host: Jp instance @param name(unicode): name of the new command @param use_profile(bool): if True, add profile selection/connection commands - @param use_output(bool, dict): if not False, add --output option + @param use_output(bool, unicode): if not False, add --output option @param need_connect(bool, None): True if profile connection is needed False else (profile session must still be started) None to set auto value (i.e. True if use_profile is set) diff -r 9c861d07b5b6 -r dc5d214f0a3b frontends/src/jp/cmd_info.py --- a/frontends/src/jp/cmd_info.py Thu Jan 05 22:22:13 2017 +0100 +++ b/frontends/src/jp/cmd_info.py Thu Jan 05 22:22:26 2017 +0100 @@ -19,6 +19,7 @@ import base from sat.core.i18n import _ +from sat_frontends.jp.constants import Const as C __commands__ = ["Info"] @@ -26,11 +27,11 @@ class Disco(base.CommandBase): def __init__(self, host): - super(Disco, self).__init__(host, 'disco', help=_('Service discovery')) + super(Disco, self).__init__(host, 'disco', help=_('service discovery')) self.need_loop=True def add_parser_options(self): - self.parser.add_argument("jid", type=str, help=_("Entity to discover")) + self.parser.add_argument("jid", type=str, help=_("entity to discover")) def start(self): jids = self.host.check_jids([self.args.jid]) @@ -104,7 +105,7 @@ class Version(base.CommandBase): def __init__(self, host): - super(Version, self).__init__(host, 'version', help=_('Client version')) + super(Version, self).__init__(host, 'version', help=_('running session')) self.need_loop=True def add_parser_options(self): @@ -133,8 +134,29 @@ self.host.quit() +class Session(base.CommandBase): + + def __init__(self, host): + super(Session, self).__init__(host, 'session', use_output='dict', help=_('client version')) + self.need_loop=True + + def add_parser_options(self): + pass + + def start(self): + self.host.bridge.sessionInfosGet(self.host.profile, callback=self._sessionInfoGetCb, errback=self._sessionInfoGetEb) + + def _sessionInfoGetCb(self, data): + self.output(data) + self.host.quit() + + def _sessionInfoGetEb(self, error_data): + self.disp(_(u'Error getting session infos: {}').format(error_data), error=True) + self.host.quit(C.EXIT_BRIDGE_ERRBACK) + + class Info(base.CommandBase): - subcommands = (Disco, Version) + subcommands = (Disco, Version, Session) def __init__(self, host): super(Info, self).__init__(host, 'info', use_profile=False, help=_('Get various pieces of information on entities'))