Source code for api4jenkins.mix

# encoding: utf-8

# pylint: disable=no-member

from collections import namedtuple


[docs]class DeletionMixIn:
[docs] def delete(self): self.handle_req('POST', 'doDelete', allow_redirects=False)
[docs]class ConfigurationMixIn:
[docs] def configure(self, xml=None): if not xml: return self.handle_req('GET', 'config.xml').text return self.handle_req('POST', 'config.xml', headers=self.headers, data=xml)
@property def name(self): return self.url.split('/')[-2]
[docs]class DescriptionMixIn:
[docs] def set_description(self, text): self.handle_req('POST', 'submitDescription', params={'description': text})
[docs]class RunScriptMixIn:
[docs] def run_script(self, script): return self.handle_req('POST', 'scriptText', data={'script': script}).text
[docs]class EnableMixIn:
[docs] def enable(self): return self.handle_req('POST', 'enable')
[docs] def disable(self): return self.handle_req('POST', 'disable')
[docs]class RawJsonMixIn:
[docs] def api_json(self, tree='', depth=0): return self.raw
Parameter = namedtuple('Parameter', ['class_name', 'name', 'value'])
[docs]class ActionsMixIn:
[docs] def get_parameters(self): parameters = [] for action in self.api_json()['actions']: if 'parameters' in action: for raw in action['parameters']: parameters.append(Parameter(raw['_class'], raw['name'], raw.get('value', ''))) break return parameters
[docs] def get_causes(self): for action in self.api_json()['actions']: if 'causes' in action: return action['causes'] return []