comparison frontends/src/jp/cmd_merge_request.py @ 2553:39b10475f56b

jp (merge-request): find URIs when --service and --node are not specified for get and import: local dir is used for get, as repository is not in options.
author Goffi <goffi@goffi.org>
date Sat, 31 Mar 2018 18:42:01 +0200
parents b27165bf160c
children 0062d3e79d12
comparison
equal deleted inserted replaced
2552:38e1e29c48e9 2553:39b10475f56b
79 79
80 80
81 class Get(base.CommandBase): 81 class Get(base.CommandBase):
82 82
83 def __init__(self, host): 83 def __init__(self, host):
84 base.CommandBase.__init__(self, host, 'get', use_pubsub=True, pubsub_flags={C.MULTI_ITEMS}, use_verbose=True, help=_(u'get a merge request')) 84 base.CommandBase.__init__(self, host, 'get', use_verbose=True,
85 use_pubsub=True, pubsub_flags={C.MULTI_ITEMS},
86 pubsub_defaults = {u'service': _(u'auto'), u'node': _(u'auto')},
87 help=_(u'get a merge request'))
85 self.need_loop=True 88 self.need_loop=True
86 89
87 def add_parser_options(self): 90 def add_parser_options(self):
88 pass 91 pass
89 92
93 else: 96 else:
94 whitelist = {'id', 'title', 'body'} 97 whitelist = {'id', 'title', 'body'}
95 for request_xmlui in requests_data[0]: 98 for request_xmlui in requests_data[0]:
96 xmlui = xmlui_manager.create(self.host, request_xmlui, whitelist=whitelist) 99 xmlui = xmlui_manager.create(self.host, request_xmlui, whitelist=whitelist)
97 xmlui.show(values_only=True) 100 xmlui.show(values_only=True)
101 self.disp(u'')
98 self.host.quit(C.EXIT_OK) 102 self.host.quit(C.EXIT_OK)
99 103
100 def start(self): 104 def getRequests(self):
101 extra = {} 105 extra = {}
102 self.host.bridge.mergeRequestsGet( 106 self.host.bridge.mergeRequestsGet(
103 self.args.service, 107 self.args.service,
104 self.args.node, 108 self.args.node,
105 self.args.max, 109 self.args.max,
110 callback=self.mergeRequestGetCb, 114 callback=self.mergeRequestGetCb,
111 errback=partial(self.errback, 115 errback=partial(self.errback,
112 msg=_(u"can't get merge request: {}"), 116 msg=_(u"can't get merge request: {}"),
113 exit_code=C.EXIT_BRIDGE_ERRBACK)) 117 exit_code=C.EXIT_BRIDGE_ERRBACK))
114 118
119 def start(self):
120 common.URIFinder(self, os.getcwd(), 'merge requests', self.getRequests)
115 121
116 122
117 class Import(base.CommandBase): 123 class Import(base.CommandBase):
118 124
119 def __init__(self, host): 125 def __init__(self, host):
120 base.CommandBase.__init__(self, host, 'import', use_pubsub=True, pubsub_flags={C.SINGLE_ITEM}, help=_(u'import a merge request')) 126 base.CommandBase.__init__(self, host, 'import',
127 use_pubsub=True, pubsub_flags={C.SINGLE_ITEM, C.ITEM},
128 pubsub_defaults = {u'service': _(u'auto'), u'node': _(u'auto')},
129 help=_(u'import a merge request'))
121 self.need_loop=True 130 self.need_loop=True
122 131
123 def add_parser_options(self): 132 def add_parser_options(self):
124 self.parser.add_argument("-r", "--repository", metavar="PATH", type=base.unicode_decoder, default=u'.', help=_(u"path of the repository (DEFAULT: current directory)")) 133 self.parser.add_argument("-r", "--repository", metavar="PATH", type=base.unicode_decoder, default=u'.', help=_(u"path of the repository (DEFAULT: current directory)"))
125 134
126 def mergeRequestImportCb(self): 135 def mergeRequestImportCb(self):
127 self.host.quit(C.EXIT_OK) 136 self.host.quit(C.EXIT_OK)
128 137
129 def start(self): 138 def importRequest(self):
130 repository = os.path.expanduser(os.path.abspath(self.args.repository))
131 extra = {} 139 extra = {}
132 self.host.bridge.mergeRequestsImport( 140 self.host.bridge.mergeRequestsImport(
133 repository, 141 self.repository,
134 self.args.item, 142 self.args.item,
135 self.args.service, 143 self.args.service,
136 self.args.node, 144 self.args.node,
137 extra, 145 extra,
138 self.profile, 146 self.profile,
139 callback=self.mergeRequestImportCb, 147 callback=self.mergeRequestImportCb,
140 errback=partial(self.errback, 148 errback=partial(self.errback,
141 msg=_(u"can't import merge request: {}"), 149 msg=_(u"can't import merge request: {}"),
142 exit_code=C.EXIT_BRIDGE_ERRBACK)) 150 exit_code=C.EXIT_BRIDGE_ERRBACK))
143 151
152 def start(self):
153 self.repository = os.path.expanduser(os.path.abspath(self.args.repository))
154 common.URIFinder(self, self.repository, 'merge requests', self.importRequest)
155
144 156
145 class MergeRequest(base.CommandBase): 157 class MergeRequest(base.CommandBase):
146 subcommands = (Set, Get, Import) 158 subcommands = (Set, Get, Import)
147 159
148 def __init__(self, host): 160 def __init__(self, host):