Add a nova-caching-scheduler job to the experimental queue
This adds an experimental queue job to run non-slow tempest API and scenario tests using the CachingScheduler as the scheduler driver. A blacklist is added since there are a few tests that rely on filters which don't work well with the CachingScheduler. The CachingScheduler is deprecated, but this is useful to have when we're making changes to the scheduler or flows within the code that involve the scheduler, such as the alternate hosts work. Change-Id: I8630ea11c3067ed934de2ef27a63432418e98c33
This commit is contained in:
parent
3da85671a9
commit
0c9225bece
@ -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
|
||||
@ -100,4 +108,5 @@
|
||||
- nova-tox-functional-py35
|
||||
experimental:
|
||||
jobs:
|
||||
- nova-caching-scheduler
|
||||
- nova-lvm
|
||||
|
30
devstack/tempest-dsvm-caching-scheduler-rc
Normal file
30
devstack/tempest-dsvm-caching-scheduler-rc
Normal 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"
|
15
playbooks/legacy/nova-caching-scheduler/post.yaml
Normal file
15
playbooks/legacy/nova-caching-scheduler/post.yaml
Normal 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
|
59
playbooks/legacy/nova-caching-scheduler/run.yaml
Normal file
59
playbooks/legacy/nova-caching-scheduler/run.yaml
Normal 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 }}'
|
Loading…
Reference in New Issue
Block a user