File: create_views.py

package info (click to toggle)
python-jenkinsapi 0.3.17-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,500 kB
  • sloc: python: 10,001; xml: 50; makefile: 31; sh: 26
file content (76 lines) | stat: -rw-r--r-- 2,422 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
"""
How to create views
"""

import logging
from pkg_resources import resource_string
from jenkinsapi.jenkins import Jenkins

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

jenkins_url = "http://localhost:8080/"

jenkins = Jenkins(jenkins_url, lazy=True)

# Create ListView in main view
logger.info("Attempting to create new view")
test_view_name = "SimpleListView"

# Views object appears as a dictionary of views
if test_view_name not in jenkins.views:
    new_view = jenkins.views.create(test_view_name)
    if new_view is None:
        logger.error("View %s was not created", test_view_name)
    else:
        logger.info(
            "View %s has been created: %s", new_view.name, new_view.baseurl
        )
else:
    logger.info("View %s already exists", test_view_name)

# No error is raised if view already exists
logger.info("Attempting to create view that already exists")
my_view = jenkins.views.create(test_view_name)

logger.info("Create job and assign it to a view")
job_name = "foo_job2"
xml = resource_string("examples", "addjob.xml")

my_job = jenkins.create_job(jobname=job_name, xml=xml)

# add_job supports two parameters: job_name and job object
# passing job object will remove verification calls to Jenkins
my_view.add_job(job_name, my_job)
assert len(my_view) == 1

logger.info("Attempting to delete view that already exists")
del jenkins.views[test_view_name]

if test_view_name in jenkins.views:
    logger.error("View was not deleted")
else:
    logger.info("View has been deleted")

# No error will be raised when attempting to remove non-existing view
logger.info("Attempting to delete view that does not exist")
del jenkins.views[test_view_name]

# Create CategorizedJobsView
config = """
<org.jenkinsci.plugins.categorizedview.CategorizedJobsView>
  <categorizationCriteria>
    <org.jenkinsci.plugins.categorizedview.GroupingRule>
      <groupRegex>.dev.</groupRegex>
      <namingRule>Development</namingRule>
    </org.jenkinsci.plugins.categorizedview.GroupingRule>
    <org.jenkinsci.plugins.categorizedview.GroupingRule>
      <groupRegex>.hml.</groupRegex>
      <namingRule>Homologation</namingRule>
    </org.jenkinsci.plugins.categorizedview.GroupingRule>
  </categorizationCriteria>
</org.jenkinsci.plugins.categorizedview.CategorizedJobsView>
"""
view = jenkins.views.create(
    "My categorized jobs view", jenkins.views.CATEGORIZED_VIEW, config=config
)