From 2a976434fcaec9ebd3e06bab3cbaf9ddb481fa27 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Sat, 17 Aug 2013 12:02:19 +0300 Subject: [PATCH] OBS: Added 2 new APIs create_sr and set_sr_state APIs have been added to OBS class. Both APIs are generic enough to go to oscapi. They are going to be used by repa accept and repa reject subcommands. Change-Id: Ifca34c9b655fdb1065adc178ce0252ce38b28365 Signed-off-by: Ed Bartosh --- repa/obs.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/repa/obs.py b/repa/obs.py index e0d1ef0..174a1d8 100644 --- a/repa/obs.py +++ b/repa/obs.py @@ -22,7 +22,7 @@ from StringIO import StringIO from osc import core -from gitbuildsys.oscapi import OSC +from gitbuildsys.oscapi import OSC, ObsError, OSCError from gitbuildsys.utils import Temp @@ -110,3 +110,26 @@ class OBS(OSC): dst_project, dst_package) finally: sys.stdout = saved + + + def create_sr(self, src_project, package, dst_project, + message='', revision=None): + """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 ObsError("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) + + def set_sr_state(self, reqid, state, message='', force=False): + """Set SR state.""" + return core.change_request_state(self.apiurl, reqid, state, + message=message, force=force) -- 2.7.4