From 267040ddaad2075bd24c5f82352a30fcb0eef212 Mon Sep 17 00:00:00 2001 From: Scott Bahling Date: Sat, 1 Feb 2020 00:58:43 +0100 Subject: Add set_flag method --- obsapi/core.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'obsapi') 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) -- cgit v1.2.3