From c0f4c40a9261b62ee041d8c9c0261a8662bf6e8f Mon Sep 17 00:00:00 2001 From: Scott Bahling Date: Fri, 31 Jan 2020 13:07:44 +0100 Subject: Enhance lock and unlock commands Use api 'cmd=lock' post parameter for locking. --- obsapi/core.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/obsapi/core.py b/obsapi/core.py index 8845016..cf2ec37 100644 --- a/obsapi/core.py +++ b/obsapi/core.py @@ -308,31 +308,23 @@ class ObsApi(object): return True return False - def lock(self, prj, pkg=None): - - xml = self.get_meta(prj, pkg) - meta = self.__xml2etree(xml) - if meta.tag not in ['project', 'package']: - if pkg: - raise Exception('Failed to lock package. %s/%s' % (prj, pkg)) - else: - raise Exception('Failed to lock project. %s' % prj) - + def lock(self, prj, pkg=None, comment=None): if self.locked(prj, pkg): - return 'Already Locked' + return - lock = etree.SubElement(meta, 'lock') - etree.SubElement(lock, 'enable') - r = self.put_meta(prj, pkg, etree.tostring(meta)) + if comment is None: + comment = 'Lock' - return r + return self.source.post(prj, pkg, cmd='lock', comment=comment) def unlock(self, prj, pkg=None, comment=None): if not self.locked(prj, pkg): return - comment = comment or 'Unlock' - self.source.post(prj, pkg, cmd='unlock', comment='Unlock') + if comment is None: + comment = 'Unlock' + + return self.source.post(prj, pkg, cmd='unlock', comment=comment) def get_users(self, prj, pkg=None, role=None): xml = self.get_meta(prj, pkg) -- cgit v1.2.3