Merge "Add a nova-caching-scheduler job to the experimental queue"

This commit is contained in:
Zuul 2018-03-07 14:55:54 +00:00 committed by Gerrit Code Review
commit 489a8f5bf3
4 changed files with 113 additions and 0 deletions

View File

@ -62,6 +62,14 @@
tox_envlist: functional-py35
timeout: 3600
- job:
name: nova-caching-scheduler
parent: nova-dsvm-base
description: |
Run non-slow Tempest API and scenario tests using the CachingScheduler.
run: playbooks/legacy/nova-caching-scheduler/run.yaml
post-run: playbooks/legacy/nova-caching-scheduler/post.yaml
- job:
name: nova-lvm
parent: nova-dsvm-base
@ -117,4 +125,5 @@
- nova-tox-functional-py35
experimental:
jobs:
- nova-caching-scheduler
- nova-lvm

View File

@ -0,0 +1,30 @@
#
# This script is executed in the OpenStack CI nova-caching-scheduler job.
# It's used to configure which tempest tests actually get run. You can find
# the CI job configuration under playbooks/legacy/nova-caching-scheduler/.
#
# Construct a regex to use when limiting scope of tempest
# to avoid features unsupported by Nova's CachingScheduler support.
# When adding entries to the regex, add a comment explaining why
# since this list should not grow.
r="^(?!.*"
# exclude the slow tag
r="$r(?:.*\[.*\bslow\b.*\])"
# NOTE(mriedem): ServersAdminTestJSON.test_create_server_with_scheduling_hint
# is skipped because it relies on the SameHostFilter which relies on the
# HostState object which might be stale when that filter runs.
# tempest.api.compute.admin.test_servers.ServersAdminTestJSON.test_create_server_with_scheduling_hint
r="$r|(?:.*id\-fdcd9b33\-0903\-4e00\-a1f7\-b5f6543068d6.*)"
# NOTE(mriedem): AggregatesAdminTestJSON.test_aggregate_add_host_create_server_with_az
# is skipped because it creates an aggregate and adds a host to it, then
# creates a server in that aggregate but fails to schedule because the caching
# scheduler hasn't updated the host's aggregates view yet.
# tempest.api.compute.admin.test_aggregates.AggregatesAdminTestJSON.test_aggregate_add_host_create_server_with_az
r="$r|(?:.*id\-96be03c7\-570d\-409c\-90f8\-e4db3c646996.*)"
r="$r).*$"
export DEVSTACK_GATE_TEMPEST_REGEX="$r"

View File

@ -0,0 +1,15 @@
- hosts: primary
tasks:
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
synchronize:
src: '{{ ansible_user_dir }}/workspace/'
dest: '{{ zuul.executor.log_root }}'
mode: pull
copy_links: true
verify_host: true
rsync_opts:
- --include=/logs/**
- --include=*/
- --exclude=*
- --prune-empty-dirs

View File

@ -0,0 +1,59 @@
- hosts: all
name: nova-caching-scheduler
tasks:
- name: Ensure workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
- name: openstack-infra/devstack-gate
dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
git://git.openstack.org \
openstack-infra/devstack-gate
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
# The scheduler.periodic_task_interval must be less than the
# service_down_time (defaults to 60) otherwise the ComputeFilter
# will be using potentially stale compute service information and
# think that the compute service is down when it's really not.
cmd: |
set -e
set -x
cat << 'EOF' >>"/tmp/dg-local.conf"
[[local|localrc]]
SCHEDULER=caching_scheduler
[[post-config|$NOVA_CONF]]
[scheduler]
periodic_task_interval=30
EOF
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
export PYTHONUNBUFFERED=true
# Yes we want to run Tempest.
export DEVSTACK_GATE_TEMPEST=1
# Run with our blacklist.
export DEVSTACK_GATE_SETTINGS=/opt/stack/new/nova/devstack/tempest-dsvm-caching-scheduler-rc
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'