Source code for api4jenkins.view

# encoding: utf-8

from .item import Item
from .mix import ConfigurationMixIn, DeletionMixIn, DescriptionMixIn


[docs]class Views(Item): ''' classdocs ''' def __init__(self, owner): ''' Constructor ''' self.owner = owner super().__init__(owner.jenkins, owner.url)
[docs] def get(self, name): for item in self.api_json(tree='views[name,url]')['views']: if name == item['name']: return self._new_instance_by_item(__name__, item) return None
[docs] def create(self, name, xml): self.handle_req('POST', 'createView', params={'name': name}, headers=self.headers, data=xml)
def __iter__(self): for item in self.api_json(tree='views[name,url]')['views']: yield self._new_instance_by_item(__name__, item)
[docs]class View(Item, ConfigurationMixIn, DescriptionMixIn, DeletionMixIn):
[docs] def get_job(self, name): for item in self.api_json(tree='jobs[name,url]')['jobs']: if name == item['name']: return self._new_instance_by_item('api4jenkins.job', item) return None
def __iter__(self): for item in self.api_json(tree='jobs[name,url]')['jobs']: yield self._new_instance_by_item('api4jenkins.job', item)
[docs] def include(self, name): self.handle_req('POST', 'addJobToView', params={'name': name})
[docs] def exclude(self, name): self.handle_req('POST', 'removeJobFromView', params={'name': name})
[docs]class AllView(View): def __init__(self, jenkins, url): # name of all view for jenkins is 'all', but for folder is 'All' name = 'view/all' if jenkins.url == url else 'view/All' super().__init__(jenkins, url + name)
[docs]class MyView(View): pass
[docs]class ListView(View): pass
[docs]class Dashboard(View): pass
[docs]class NestedView(View): @property def views(self): return Views(self)