diff options
author | Zuul <zuul@review.openstack.org> | 2018-03-07 14:55:54 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-03-07 14:55:55 +0000 |
commit | 489a8f5bf3e50944ced253283c15e77310a56e40 (patch) | |
tree | e4df0cd913cc1ac81623177a63b62d4cf3271d51 | |
parent | 450be218daa4363126a91a139324298fd579f1e6 (diff) | |
parent | 0c9225bece409809fdd60a710d0f313ded340a86 (diff) | |
download | nova-489a8f5bf3e50944ced253283c15e77310a56e40.tar.gz |
Merge "Add a nova-caching-scheduler job to the experimental queue"
-rw-r--r-- | .zuul.yaml | 9 | ||||
-rw-r--r-- | devstack/tempest-dsvm-caching-scheduler-rc | 30 | ||||
-rw-r--r-- | playbooks/legacy/nova-caching-scheduler/post.yaml | 15 | ||||
-rw-r--r-- | playbooks/legacy/nova-caching-scheduler/run.yaml | 59 |
4 files changed, 113 insertions, 0 deletions
diff --git a/.zuul.yaml b/.zuul.yaml index 4b25617ab5..2775843507 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -63,6 +63,14 @@ 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 description: | @@ -117,4 +125,5 @@ - nova-tox-functional-py35 experimental: jobs: + - nova-caching-scheduler - nova-lvm diff --git a/devstack/tempest-dsvm-caching-scheduler-rc b/devstack/tempest-dsvm-caching-scheduler-rc new file mode 100644 index 0000000000..cc09af6b82 --- /dev/null +++ b/devstack/tempest-dsvm-caching-scheduler-rc @@ -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" diff --git a/playbooks/legacy/nova-caching-scheduler/post.yaml b/playbooks/legacy/nova-caching-scheduler/post.yaml new file mode 100644 index 0000000000..e07f5510ae --- /dev/null +++ b/playbooks/legacy/nova-caching-scheduler/post.yaml @@ -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 diff --git a/playbooks/legacy/nova-caching-scheduler/run.yaml b/playbooks/legacy/nova-caching-scheduler/run.yaml new file mode 100644 index 0000000000..d3bc6e28fe --- /dev/null +++ b/playbooks/legacy/nova-caching-scheduler/run.yaml @@ -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 }}' |