/
config.py
283 lines (269 loc) · 14.8 KB
/
config.py
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
import logging
import os
from flask import Markup
logging.basicConfig(
format=('%(asctime)s - %(name)s - %(levelname)s - '
'%(module)s.%(funcName)s:%(lineno)d - %(message)s'))
log = logging.getLogger('watchcat')
log.setLevel(logging.DEBUG)
DIR = os.path.dirname(os.path.realpath(__file__))
TEMPLATE_DIR = os.path.abspath(os.path.join(DIR, '..', 'html'))
PATTERN_FILE = os.path.join(DIR, 'data', 'patterns.yml')
# https://github.com/openstack-infra/project-config/blob/master/
# gerritbot/channels.yaml
PROJECTS = (
'openstack/tripleo-quickstart',
'openstack/tripleo-quickstart-extras',
'openstack/tripleo-heat-templates',
'openstack/dib-utils',
'openstack/diskimage-builder',
'openstack/instack',
'openstack/instack-undercloud',
'openstack/os-apply-config',
'openstack/os-cloud-config',
'openstack/os-collect-config',
'openstack/os-net-config',
'openstack/os-refresh-config',
'openstack/python-tripleoclient',
'openstack-infra/tripleo-ci',
'openstack/tripleo-common',
'openstack/tripleo-image-elements',
'openstack/tripleo-puppet-elements',
'openstack/tripleo-docs',
'openstack/tripleo-quickstart',
'openstack/tripleo-specs',
'openstack/tripleo-ui',
'openstack/tripleo-upgrade',
'^openstack/puppet-.*',
# # Non-TripleO repositories
# 'openstack/neutron',
'openstack/paunch',
# 'openstack/nova',
'openstack/aodh',
'openstack/barbican',
'openstack/ceilometer',
'openstack/congress',
# 'openstack/ec2api',
'openstack/gnocchi',
'openstack/heat',
'openstack/ironic',
'openstack/keystone',
'openstack/mistral',
'openstack/osc-lib',
'openstack/panko',
'openstack/python-openstackclient',
'openstack/python-neutronclient',
'openstack/tacker',
'openstack/zaqar',
)
PERIODIC_LOGS_URL = [
('https://review.rdoproject.org/zuul/api/'
'builds?pipeline=openstack-periodic'),
('https://review.rdoproject.org/zuul/api/'
'builds?pipeline=openstack-periodic-24hr'),
('https://review.rdoproject.org/zuul/api/'
'builds?pipeline=openstack-periodic-master'),
('https://review.rdoproject.org/zuul/api/'
'builds?pipeline=openstack-periodic-latest-released'),
]
PERIODIC_URLS = []
DOWNLOAD_PATH = os.environ.get('OPENSHIFT_DATA_DIR',
os.path.join(os.environ["HOME"], "ci_status"))
# For running in container
if os.access("/cidata", os.W_OK):
DOWNLOAD_PATH = "/cidata"
if not os.path.exists(DOWNLOAD_PATH):
os.makedirs(DOWNLOAD_PATH)
TMP_DIR = os.environ.get('OPENSHIFT_TMP_DIR', "/tmp/")
if os.path.exists(os.path.join(DIR, "..", "robi_id_rsa")):
SSH_PRIV_KEY = os.path.join(DIR, "..", "robi_id_rsa")
elif os.path.exists(os.path.join(os.environ.get('OPENSHIFT_DATA_DIR', "./"),
"robi_id_rsa")):
SSH_PRIV_KEY = os.path.join(os.environ.get('OPENSHIFT_DATA_DIR', "./"),
"robi_id_rsa")
elif os.path.exists(os.path.join(DOWNLOAD_PATH, "robi_id_rsa")):
SSH_PRIV_KEY = os.path.join(DOWNLOAD_PATH, "robi_id_rsa")
else:
SSH_PRIV_KEY = None
INDEX_HTML = os.path.join(DOWNLOAD_PATH, "index.html")
SSH_TIMEOUT = 120
WEB_TIMEOUT = (6.05, 15)
GERRIT_REQ_TIMEOUT = 2
GERRIT_PATCH_LIMIT = 200
GERRIT_HOST = "review.openstack.org"
GERRIT_PORT = 29418
GERRIT_USER = "robo"
GERRIT_BRANCHES = ("master", "stable/pike",
"stable/queens", "stable/rocky", "stable/stein")
PERIODIC_DAYS = 14
PERIODIC_PAGES = 25
GATE_DAYS = 7
CIRCLE = 3
# A brief note about the column titles below...
#
# The bootstrap nav tab class swallows click events, so adding an onclick
# handler within the <a> tag
# allows for primary click to have expected behavior, while leaving the href=
# in place allows for
# right click (open in new tab/window) to also work.
#
# The Markup() class is part of flask that is the preferred way to annotate
# HTML to not be escaped
# http://flask.pocoo.org/docs/0.12/templating/#controlling-autoescaping
# http://flask.pocoo.org/docs/0.12/api/#flask.Markup
COLUMNED_TRACKED_JOBS = {
Markup('''<a href="http://dashboards.rdoproject.org/master" onclick="window.location.href='http://dashboards.rdoproject.org/master'">Master-promotion</a>'''): [ # noqa
'periodic-tripleo-centos-7-master-promote-consistent-to-tripleo-ci-testing',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset010-master',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset030-master',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset037-updates-master',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-master-upload',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset020-master',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset021-master',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-master',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset035-master',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp_1supp-featureset039-master',
'periodic-tripleo-ci-centos-7-singlenode-featureset027-master',
'periodic-tripleo-ci-centos-7-singlenode-featureset050-upgrades-master',
'periodic-tripleo-ci-centos-7-standalone-master',
'periodic-tripleo-ci-centos-7-standalone-upgrade-master',
'periodic-tripleo-ci-centos-7-standalone-full-tempest-master',
'periodic-tripleo-ci-centos-7-scenario001-standalone-master',
'periodic-tripleo-ci-centos-7-scenario002-standalone-master',
'periodic-tripleo-ci-centos-7-scenario003-standalone-master',
'periodic-tripleo-ci-centos-7-scenario004-standalone-master',
"periodic-tripleo-ci-centos-7-scenario007-standalone-master",
"periodic-tripleo-ci-centos-7-scenario010-standalone-master",
'periodic-tripleo-ci-rhel-8-ovb-3ctlr_1comp-featureset001-master',
'periodic-tripleo-ci-rhel-8-scenario001-standalone-master',
'periodic-tripleo-ci-rhel-8-scenario002-standalone-master',
'periodic-tripleo-centos-7-master-containers-build-push',
'periodic-tripleo-rhel-8-master-containers-build-push',
'periodic-tripleo-ci-rhel-8-standalone-master',
'periodic-tripleo-ci-rhel-8-ovb-3ctlr_1comp-featureset001-master',
'periodic-tripleo-rhel-8-buildimage-ironic-python-agent-master',
'periodic-tripleo-rhel-8-buildimage-overcloud-full-master',
"periodic-tripleo-ci-rhel-8-scenario001-standalone-master",
"periodic-tripleo-ci-rhel-8-scenario002-standalone-master",
"periodic-tripleo-ci-rhel-8-scenario003-standalone-master",
"periodic-tripleo-ci-rhel-8-scenario004-standalone-master",
],
Markup('''<a href="http://dashboards.rdoproject.org/train" onclick="window.location.href='http://dashboards.rdoproject.org/train'">Train-promotion</a>'''): [ # noqa
"periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset021-train",
"periodic-tripleo-centos-7-train-promote-consistent-to-tripleo-ci-testing",
"periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset010-train",
"periodic-tripleo-ci-centos-7-scenario003-standalone-train",
"periodic-tripleo-rhel-8-train-containers-build-push",
"periodic-tripleo-rhel-8-buildimage-overcloud-full-train",
"periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset035-train",
"periodic-tripleo-ci-rhel-8-standalone-train",
"periodic-tripleo-ci-rhel-8-scenario004-standalone-train",
"periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset037-updates-train",
"periodic-tripleo-ci-centos-7-singlenode-featureset027-train",
"periodic-tripleo-ci-rhel-8-ovb-3ctlr_1comp-featureset001-train",
"periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset020-train",
"periodic-tripleo-rhel-8-buildimage-ironic-python-agent-train",
"periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-train-upload",
"periodic-tripleo-ci-rhel-8-scenario001-standalone-train",
"periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset030-train",
"periodic-tripleo-ci-centos-7-scenario001-standalone-train",
"periodic-tripleo-ci-centos-7-singlenode-featureset050-upgrades-train",
"periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp_1supp-featureset039-train",
"periodic-tripleo-ci-centos-7-standalone-train",
"periodic-tripleo-ci-rhel-8-scenario003-standalone-train",
"periodic-tripleo-ci-centos-7-scenario010-standalone-train",
"periodic-tripleo-ci-rhel-8-scenario002-standalone-train",
"periodic-tripleo-ci-centos-7-scenario004-standalone-train",
"periodic-tripleo-ci-centos-7-standalone-full-tempest-train",
"periodic-tripleo-ci-centos-7-scenario002-standalone-train",
"periodic-tripleo-ci-centos-7-standalone-upgrade-train",
"periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-train",
"periodic-tripleo-centos-7-train-containers-build-push",
],
Markup('''<a href="http://dashboards.rdoproject.org/stein" onclick="window.location.href='http://dashboards.rdoproject.org/stein'">Stein-promotion</a>'''): [ # noqa
'periodic-tripleo-centos-7-stein-promote-consistent-to-tripleo-ci-testing',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset010-stein',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset030-stein',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset037-updates-stein',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-stein-upload',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset020-stein',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset021-stein',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-stein',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset035-stein',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp_1supp-featureset039-stein',
'periodic-tripleo-ci-centos-7-singlenode-featureset027-stein',
'periodic-tripleo-ci-centos-7-singlenode-featureset050-upgrades-stein',
'periodic-tripleo-ci-centos-7-standalone-stein',
'periodic-tripleo-ci-centos-7-standalone-upgrade-stein',
'periodic-tripleo-ci-centos-7-scenario001-standalone-stein',
'periodic-tripleo-ci-centos-7-scenario002-standalone-stein',
'periodic-tripleo-ci-centos-7-scenario003-standalone-stein',
'periodic-tripleo-ci-centos-7-scenario004-standalone-stein',
'periodic-tripleo-centos-7-stein-containers-build-push',
],
Markup('''<a href="http://dashboards.rdoproject.org/rocky" onclick="window.location.href='http://dashboards.rdoproject.org/rocky'">Rocky-promotion</a>'''): [ # noqa
'periodic-tripleo-centos-7-rocky-promote-consistent-to-tripleo-ci-testing',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset010-rocky',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset016-rocky',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset017-rocky',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset018-rocky',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset019-rocky',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset030-rocky',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset037-updates-rocky',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-rocky-upload',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset020-rocky',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset021-rocky',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-rocky',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset035-rocky',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp_1supp-featureset039-rocky',
'periodic-tripleo-ci-centos-7-singlenode-featureset027-rocky',
'periodic-tripleo-ci-centos-7-singlenode-featureset050-upgrades-rocky',
'periodic-tripleo-centos-7-rocky-containers-build-push'
],
Markup('''<a href="http://dashboards.rdoproject.org/queens" onclick="window.location.href='http://dashboards.rdoproject.org/queens'">Queens-promotion</a>'''): [ # noqa
'periodic-tripleo-centos-7-queens-containers-build',
'periodic-tripleo-centos-7-queens-promote-consistent-to-tripleo-ci-testing',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset010-queens',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset016-queens',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset017-queens',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset018-queens',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset019-queens',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset030-queens',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset037-updates-queens',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-queens-upload',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset021-queens',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-queens',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset035-queens',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset020-queens',
],
Markup('''<a href="http://dashboards.rdoproject.org/pike" onclick="window.location.href='http://dashboards.rdoproject.org/pike'">Pike-promotion</a>'''): [ # noqa
'periodic-tripleo-centos-7-pike-containers-build',
'periodic-tripleo-centos-7-pike-promote-consistent-to-tripleo-ci-testing',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset010-pike',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset016-pike',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset017-pike',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset018-pike',
'periodic-tripleo-ci-centos-7-multinode-1ctlr-featureset019-pike',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp_1ceph-featureset024-pike',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset002-pike-upload',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset021-pike',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_1comp-featureset022-pike',
'periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-pike',
'periodic-tripleo-ci-centos-7-ovb-1ctlr_2comp-featureset020-pike',
],
}
RDOCI = {
'console': '/job-output.txt',
'ironic-conductor': '/logs/undercloud/var/log/ironic/ironic-conductor.txt.gz',
'syslog': '/logs/undercloud/var/log/journal.txt.gz',
'logstash': '/logs/undercloud/var/log/extra/logstash.txt.gz',
'errors': '/logs/undercloud/var/log/extra/errors.txt.gz',
'bmc': '/logs/bmc-console.log',
}
PLUGIN = RDOCI
TRACKED_JOBS = [k for i in COLUMNED_TRACKED_JOBS.values() for k in i]
PLUGIN_JOBS = TRACKED_JOBS
class PLUGIN_RDOCI_CONFIG:
console_name = 'job-output.txt.gz'
main_index_timeout = 1100
ACTIVE_PLUGIN_CONFIG = PLUGIN_RDOCI_CONFIG