1
from jenkinsapi.jenkinsbase import JenkinsBase
2
from jenkinsapi.job import Job
5
class View(JenkinsBase):
7
def __init__(self, url, name, jenkins_obj):
9
self.jenkins_obj = jenkins_obj
10
JenkinsBase.__init__(self, url)
15
def __getitem__(self, str_job_id ):
16
assert isinstance( str_job_id, str )
17
api_url = self.python_api_url( self.get_job_url( str_job_id ) )
18
return Job( api_url, str_job_id, self.jenkins_obj )
21
return self.get_job_dict().keys()
24
for name, url in self.get_job_dict().iteritems():
25
api_url = self.python_api_url( url )
26
yield name, Job( api_url, name, self.jenkins_obj )
29
return [ a[1] for a in self.iteritems() ]
32
return [ a for a in self.iteritems() ]
34
def _get_jobs( self ):
35
if not self._data.has_key( "jobs" ):
38
for viewdict in self._data["jobs"]:
39
yield viewdict["name"], viewdict["url"]
41
def get_job_dict(self):
42
return dict( self._get_jobs() )
45
return len( self.get_job_dict().keys() )
47
def get_job_url( self, str_job_name ):
49
job_dict = self.get_job_dict()
50
return job_dict[ str_job_name ]
52
#noinspection PyUnboundLocalVariable
53
all_views = ", ".join( job_dict.keys() )
54
raise KeyError("Job %s is not known - available: %s" % ( str_job_name, all_views ) )
56
def get_jenkins_obj(self):
57
return self.jenkins_obj
59
def add_job(self, str_job_name):
60
if str_job_name in self.get_job_dict():
61
return "Job %s has in View %s" %(str_job_name, self.name)
62
elif not self.get_jenkins_obj().has_job(str_job_name):
63
return "Job %s is not known - available: %s" % ( str_job_name, ", ".join(self.get_jenkins_obj().get_jobs_list()))
68
"useincluderegex":"on",
70
"columns": [{"stapler-class": "hudson.views.StatusColumn", "kind": "hudson.views.StatusColumn"},
71
{"stapler-class": "hudson.views.WeatherColumn", "kind": "hudson.views.WeatherColumn"},
72
{"stapler-class": "hudson.views.JobColumn", "kind": "hudson.views.JobColumn"},
73
{"stapler-class": "hudson.views.LastSuccessColumn", "kind": "hudson.views.LastSuccessColumn"},
74
{"stapler-class": "hudson.views.LastFailureColumn", "kind": "hudson.views.LastFailureColumn"},
75
{"stapler-class": "hudson.views.LastDurationColumn", "kind": "hudson.views.LastDurationColumn"},
76
{"stapler-class": "hudson.views.BuildButtonColumn", "kind": "hudson.views.BuildButtonColumn"}],
79
data["name"] = self.name
80
for job in self.get_job_dict().keys():
82
data[str_job_name] = "on"
83
data['json'] = data.copy()
84
self.post_data('%sconfigSubmit' % self.baseurl, urllib.urlencode(data))
85
return "Job %s is add in View %s successful" % (str_job_name, self.baseurl)
89
Calculate an ID for this object.
91
return "%s.%s" % ( self.className, self.name )
b'\\ No newline at end of file'