# HG changeset patch # User Goffi # Date 1522307373 -7200 # Node ID 100563768196bbfa19163b9775255b5591b75257 # Parent 65695b9343d356747699a7a8f7dfd068c3a36805 jp (merge/get): "get" command first draft: get allows to retrieve a merge request, to display it. By default it only display "id", "title" and "body" ; verbosity must be augmented to display more. diff -r 65695b9343d3 -r 100563768196 frontends/src/jp/cmd_merge_request.py --- a/frontends/src/jp/cmd_merge_request.py Thu Mar 29 09:09:32 2018 +0200 +++ b/frontends/src/jp/cmd_merge_request.py Thu Mar 29 09:09:33 2018 +0200 @@ -21,6 +21,7 @@ import base from sat.core.i18n import _ from sat_frontends.jp.constants import Const as C +from sat_frontends.jp import xmlui_manager from functools import partial import os.path @@ -63,8 +64,43 @@ exit_code=C.EXIT_BRIDGE_ERRBACK)) +class Get(base.CommandBase): + + def __init__(self, host): + base.CommandBase.__init__(self, host, 'get', use_pubsub=True, pubsub_flags={C.MULTI_ITEMS}, use_verbose=True, help=_(u'get a merge request')) + self.need_loop=True + + def add_parser_options(self): + pass + + def mergeRequestGetCb(self, requests_data): + if self.verbosity >= 1: + whitelist = None + else: + whitelist = {'id', 'title', 'body'} + for request_xmlui in requests_data[0]: + xmlui = xmlui_manager.create(self.host, request_xmlui, whitelist=whitelist) + xmlui.show(values_only=True) + self.host.quit(C.EXIT_OK) + + def start(self): + extra = {} + self.host.bridge.mergeRequestsGet( + self.args.service, + self.args.node, + self.args.max, + self.args.items, + u'', + extra, + self.profile, + callback=self.mergeRequestGetCb, + errback=partial(self.errback, + msg=_(u"can't get merge request: {}"), + exit_code=C.EXIT_BRIDGE_ERRBACK)) + + class MergeRequest(base.CommandBase): - subcommands = (Set,) + subcommands = (Set, Get) def __init__(self, host): super(MergeRequest, self).__init__(host, 'merge-request', use_profile=False, help=_('merge-request management'))