diff --git a/dev/zuul/openstack_functions.py b/dev/zuul/openstack_functions.py index e86322a34c..92c24ec302 100644 --- a/dev/zuul/openstack_functions.py +++ b/dev/zuul/openstack_functions.py @@ -12,8 +12,6 @@ # 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'): @@ -29,100 +27,3 @@ def set_log_url(item, job, params): 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 '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 'multinode' 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)-(.*?)-updates?)$' # noqa - release_re = r'^.*-(jenkinsci|mavencentral|pypi-(both|wheel))-upload$' - 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(release_re, job.name): - reusable_node(item, job, params) - # 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') diff --git a/zuul/layout.yaml b/zuul/layout.yaml index a95a63c244..baebf3368f 100644 --- a/zuul/layout.yaml +++ b/zuul/layout.yaml @@ -686,28 +686,16 @@ project-templates: jobs: - name: ^.*$ - parameter-function: set_node_options_default_trusty + parameter-function: set_node_options swift: - name: logs - # The infra puppet configs predominantly run on precise nodes. - # Test puppet for infra by default on precise nodes until that changes. - - name: ^gate-system-config-puppet.*$ - parameter-function: set_node_options_default_precise - # Berkshelf 3.x requires GeCode 3.x on precise. - name: ^gate-.*-chef-(lint|style|unit|repo)$ - parameter-function: set_node_options_default_precise branch: ^stable/(icehouse|juno)$ - name: ^gate-.*-chef-rake-integration$ branch: ^(?!stable/(icehouse|juno)).*$ voting: false - name: ^gate-.*-chef-rake.*$ branch: ^(?!stable/(icehouse|juno)).*$ - # openstackid doesn't work with php5-mcrypt on trusty - - name: ^.*openstackid-(unittests|release).*$ - parameter-function: set_node_options_default_precise - # groups works with php5.3 on precise - - name: ^.*groups-(unittests|release).*$ - parameter-function: set_node_options_default_precise # -nv jobs are never voting. - name: ^.*-nv$ voting: false @@ -1395,7 +1383,6 @@ jobs: branch: ^(?!stable/(kilo|liberty)).*$ - name: ^gate-.*-js-draft - parameter-function: set_node_options_default_trusty success-pattern: http://docs-draft.openstack.org/{build.parameters[LOG_PATH]}/dist/ - name: infra-publications-publish diff --git a/zuul/openstack_functions.py b/zuul/openstack_functions.py index cfae7fe0aa..e101a936a2 100644 --- a/zuul/openstack_functions.py +++ b/zuul/openstack_functions.py @@ -36,54 +36,6 @@ def reusable_node(item, job, 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 'multinode' in job.name and 'dibtest' in job.name: - params['ZUUL_NODE'] = 'ubuntu-trusty-2-node' - elif 'dibtest' in job.name: - params['ZUUL_NODE'] = 'ubuntu-trusty' - 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 'multinode' 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' - elif job.name == 'bindep-nova-python27': - params['ZUUL_NODE'] = 'ubuntu-trusty' - else: - params['ZUUL_NODE'] = 'bare-trusty' - - def set_node_options(item, job, params, default): # Set up log url parameter for all jobs set_log_url(item, job, params) @@ -93,49 +45,7 @@ def set_node_options(item, job, params, default): proposal_re = r'^.*(merge-release-tags|(propose|upstream)-(.*?)-(constraints-.*|updates?|update-liberty))$' # noqa release_re = r'^.*-(forge|jenkinsci|mavencentral|pypi-(both|wheel)|npm)-upload$' hook_re = r'^hook-(.*?)-(rtfd)$' - fedora_re = r'^.*-f(edora-)?2(1|2|3).*$' - tripleo_re = r'^.*-tripleo-ci.*$' - kolla_image_re = r'^.*-kolla-dsvm-(build|deploy)-.*$' - openstack_ansible_re = r'^.*-openstack-ansible-.*$' - devstack_re = r'^.*-dsvm.*$' - puppetunit_re = ( - r'^gate-(puppet-.*|system-config)-puppet-(lint|syntax|unit).*$') - # jobs run on the proposal worker + # jobs run on the persistent proposal and release workers if (re.match(proposal_re, job.name) or re.match(release_re, job.name) or re.match(hook_re, job.name)): reusable_node(item, job, params) - # Kolla build image jobs always have the correct node label. - # Put before distro specific overrides as they list distros in - # the jobs names unrelated to where job should run. - elif re.match(kolla_image_re, job.name): - pass - # Jobs needing fedora 2[1|2|3] - elif re.match(fedora_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 - # openstack-ansible jobs - elif re.match(openstack_ansible_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')