Add openstack_functions.py to zuul-dev.o.o
The zuul.o.o layout.yaml file references an openstack_functions.py This change duplicates that for zuul-dev.o.o. To do that zuul-dev.o.o needs it's own openstack_functions.py file. Change-Id: Ifb8bb921545f4ab4557e02c676c85ced20687ba3
This commit is contained in:
parent
d2de0c4dfe
commit
d76101a699
|
@ -0,0 +1,140 @@
|
|||
# Copyright 2013 OpenStack Foundation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import re
|
||||
|
||||
|
||||
def set_log_url(item, job, params):
|
||||
if hasattr(item.change, 'refspec'):
|
||||
path = "%s/%s/%s/%s/" % (
|
||||
params['ZUUL_CHANGE'][-2:], params['ZUUL_CHANGE'],
|
||||
params['ZUUL_PATCHSET'], params['ZUUL_PIPELINE'])
|
||||
elif hasattr(item.change, 'ref'):
|
||||
path = "%s/%s/%s/" % (
|
||||
params['ZUUL_NEWREV'][:2], params['ZUUL_NEWREV'],
|
||||
params['ZUUL_PIPELINE'])
|
||||
else:
|
||||
path = params['ZUUL_PIPELINE']
|
||||
params['BASE_LOG_PATH'] = path
|
||||
params['LOG_PATH'] = path + '%s/%s/' % (job.name,
|
||||
params['ZUUL_UUID'][:7])
|
||||
|
||||
|
||||
def reusable_node(item, job, params):
|
||||
if 'OFFLINE_NODE_WHEN_COMPLETE' in params:
|
||||
del params['OFFLINE_NODE_WHEN_COMPLETE']
|
||||
|
||||
|
||||
def devstack_params(item, job, params):
|
||||
change = item.change
|
||||
# Note we can't fallback on the default labels because
|
||||
# jenkins uses 'devstack-precise || devstack-trusty'.
|
||||
# This is necessary to get the gearman plugin to register
|
||||
# gearman jobs with both node labels.
|
||||
# Remove this when we are done doing prelimindary dib testing.
|
||||
if 'icehouse-dibtest' in job.name:
|
||||
params['ZUUL_NODE'] = 'devstack-precise-dib'
|
||||
elif 'dibtest' in job.name:
|
||||
params['ZUUL_NODE'] = 'devstack-trusty-dib'
|
||||
elif ((hasattr(change, 'branch') and
|
||||
change.branch == 'stable/icehouse') or
|
||||
('icehouse' in job.name or
|
||||
'precise' in job.name)):
|
||||
params['ZUUL_NODE'] = 'devstack-precise'
|
||||
elif 'centos7' in job.name:
|
||||
params['ZUUL_NODE'] = 'devstack-centos7'
|
||||
elif 'aiopcpu' in job.name:
|
||||
params['ZUUL_NODE'] = 'devstack-trusty-2-node'
|
||||
else:
|
||||
params['ZUUL_NODE'] = 'devstack-trusty'
|
||||
|
||||
|
||||
def default_params_precise(item, job, params):
|
||||
if 'trusty' in job.name:
|
||||
params['ZUUL_NODE'] = 'bare-trusty'
|
||||
else:
|
||||
params['ZUUL_NODE'] = 'bare-precise'
|
||||
|
||||
|
||||
def default_params_trusty(item, job, params):
|
||||
change = item.change
|
||||
# Note we can't fallback on the default labels because
|
||||
# jenkins uses 'bare-precise || bare-trusty'.
|
||||
# This is necessary to get the gearman plugin to register
|
||||
# gearman jobs with both node labels.
|
||||
if ((hasattr(change, 'branch') and
|
||||
change.branch == 'stable/icehouse') or
|
||||
('icehouse' in job.name or
|
||||
'precise' in job.name)):
|
||||
params['ZUUL_NODE'] = 'bare-precise'
|
||||
else:
|
||||
params['ZUUL_NODE'] = 'bare-trusty'
|
||||
|
||||
|
||||
def set_node_options(item, job, params, default):
|
||||
# Set up log url paramter for all jobs
|
||||
set_log_url(item, job, params)
|
||||
# Default to single use node. Potentially overriden below.
|
||||
# Select node to run job on.
|
||||
params['OFFLINE_NODE_WHEN_COMPLETE'] = '1'
|
||||
proposal_re = r'^.*(merge-release-tags|(propose|upstream)-(openstack-manuals|requirements|translation)-updates?)$' # noqa
|
||||
pypi_re = r'^.*-(jenkinsci|mavencentral|pypi-(both|wheel))-upload$'
|
||||
python26_re = r'^.*-(py(thon)?)?26.*$'
|
||||
centos6_re = r'^.*-centos6.*$'
|
||||
f20_re = r'^.*-f20.*$'
|
||||
f21_re = r'^.*-f21.*$'
|
||||
tripleo_re = r'^.*-tripleo.*$'
|
||||
devstack_re = r'^.*-dsvm.*$'
|
||||
puppetunit_re = r'^gate-puppet-.*-puppet-(lint|syntax|unit).*$'
|
||||
# jobs run on the proposal worker
|
||||
if re.match(proposal_re, job.name) or re.match(pypi_re, job.name):
|
||||
reusable_node(item, job, params)
|
||||
# Jobs needing python26
|
||||
elif re.match(python26_re, job.name):
|
||||
# Pass because job specified label is always correct.
|
||||
pass
|
||||
# Jobs needing centos6
|
||||
elif re.match(centos6_re, job.name):
|
||||
# Pass because job specified label is always correct.
|
||||
pass
|
||||
# Jobs needing fedora 20
|
||||
elif re.match(f20_re, job.name):
|
||||
# Pass because job specified label is always correct.
|
||||
pass
|
||||
# Jobs needing fedora 21
|
||||
elif re.match(f21_re, job.name):
|
||||
# Pass because job specified label is always correct.
|
||||
pass
|
||||
# Jobs needing tripleo slaves
|
||||
elif re.match(tripleo_re, job.name):
|
||||
# Pass because job specified label is always correct.
|
||||
pass
|
||||
# Puppet-OpenStack jobs
|
||||
elif re.match(puppetunit_re, job.name):
|
||||
pass
|
||||
# Jobs needing devstack slaves
|
||||
elif re.match(devstack_re, job.name):
|
||||
devstack_params(item, job, params)
|
||||
elif default == 'trusty':
|
||||
default_params_trusty(item, job, params)
|
||||
else:
|
||||
default_params_precise(item, job, params)
|
||||
|
||||
|
||||
def set_node_options_default_precise(item, job, params):
|
||||
set_node_options(item, job, params, 'precise')
|
||||
|
||||
|
||||
def set_node_options_default_trusty(item, job, params):
|
||||
set_node_options(item, job, params, 'trusty')
|
Loading…
Reference in New Issue