changeset 2542:100563768196

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.
author Goffi <goffi@goffi.org>
date Thu, 29 Mar 2018 09:09:33 +0200 (2018-03-29)
parents 65695b9343d3
children 60758de1c227
files frontends/src/jp/cmd_merge_request.py
diffstat 1 files changed, 37 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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'))