summaryrefslogtreecommitdiff
path: root/obsapi/core.py
diff options
context:
space:
mode:
authorScott Bahling <sbahling@suse.com>2020-02-01 00:58:43 +0100
committerScott Bahling <sbahling@suse.com>2020-02-01 01:02:03 +0100
commit267040ddaad2075bd24c5f82352a30fcb0eef212 (patch)
treed94b52de4fb65960ad0fe6ca4d4a1ab3d2be742b /obsapi/core.py
parent1087f40bd3935fa149e77cfebd55224857aa37a2 (diff)
downloadobsapi-267040ddaad2075bd24c5f82352a30fcb0eef212.tar.gz
obsapi-267040ddaad2075bd24c5f82352a30fcb0eef212.tar.xz
obsapi-267040ddaad2075bd24c5f82352a30fcb0eef212.zip
Add set_flag method
Diffstat (limited to 'obsapi/core.py')
-rw-r--r--obsapi/core.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/obsapi/core.py b/obsapi/core.py
index 45d19c6..748044c 100644
--- a/obsapi/core.py
+++ b/obsapi/core.py
@@ -393,3 +393,27 @@ class ObsApi(object):
for srcfile in flist:
if srcfile.name.endswith('.spec'):
yield self.source.get(prj, pkg, srcfile.name)
+
+ def set_flag(self, prj, pkg=None, flag=None):
+ if flag is None:
+ return None
+
+ try:
+ flag_type = getattr(flag, 'flag', flag.get('flag', None))
+ if flag_type is None:
+ raise Exception('Invalid flag type: None')
+ except AttributeError:
+ raise Exception('flag type %s missing get function' % type(flag))
+
+ status = getattr(flag, 'status', flag.get('status', 'enable'))
+ if status not in ['enable', 'disable']:
+ raise ValueError('flag status expected "enable" or "disable" got %s' % status)
+
+ params = dict(cmd='set_flag',
+ flag=flag_type,
+ status=status,
+ repository=getattr(flag, 'repository', flag.get('repository', None)),
+ arch=getattr(flag, 'arch', flag.get('arch', None)),
+ )
+
+ return self.source.post(prj, pkg, **params)