meta['git_tag'],
commit)
- for pkg in obs.get_source_packages(project):
- # Create SR
- try:
- reqid = obs.create_sr(project, pkg, str(meta['obs_target_prj']),
- message=str(message))
- except RepaException:
- if state == 'declined':
- # Broken sources. Try to avoid queryng source by
- # providing revision 1. It always exists and it doesn't
- # matter which revision to reject.
- reqid = obs.create_sr(project, pkg,
- str(meta['obs_target_prj']),
- message=str(message), revision=1)
- else:
- raise
-
- print 'package %s: created SR %s' % (pkg, reqid)
-
- # and immediately set its state
- message = "SR %s is set to %s" % (reqid, state)
- if comment:
- message += comment
- obs.set_sr_state(reqid, state=state,
- message=str(message), force=True)
- print 'set SR state to', state
+ # Create SR
+ reqid = obs.create_sr(project, obs.get_source_packages(project),
+ str(meta['obs_target_prj']), message=message)
+
+ print 'created SR %s' % reqid
+
+ # and immediately set its state
+ message = "SR %s is set to %s" % (reqid, state)
+ if comment:
+ message += comment
+ obs.set_sr_state(reqid, state=state,
+ message=str(message), force=True)
+ print 'set SR state to', state
# delete submit group
if submission.startswith('submitgroup'):
import sys
import re
+import cgi
from base64 import b64encode
from xml.etree import cElementTree as ET
sys.stdout = saved
- def create_sr(self, src_project, package, dst_project,
- message='', revision=None):
+ def create_sr(self, src_project, packages, tgt_project, message=''):
"""Create submit request for the project."""
- rev = revision
- if not rev:
- url = core.makeurl(self.apiurl, ['source', src_project, package],
- query="expand=1")
- try:
- answer = self.core_http(core.http_GET, url)
- except OSCError, err:
- raise RepaException("cat't query source %s from "
- "project %s: %s" % (package, src_project, err))
- rev = ET.parse(answer).getroot().get('rev')
- return core.create_submit_request(self.apiurl, src_project, package,
- dst_project, package, message=message,
- orev=rev)
+
+ content = '<request><description>%s</description>' % \
+ cgi.escape(str(message))
+ for package in packages:
+ content += '<action type="submit">'
+ content += '<source project="%s" package="%s"/>' % \
+ (src_project, package)
+ content += '<target project="%s" package="%s" />' % \
+ (tgt_project, package)
+ content += '</action>'
+ content += '</request>\n'
+ url = core.makeurl(self.apiurl, ['request'], query='cmd=create')
+ reply = self.core_http(core.http_POST, url, data=content)
+ return ET.parse(reply).getroot().get('id')
def set_sr_state(self, reqid, state, message='', force=False):
"""Set SR state."""