openstack-ansible-os_neutron/tests/test-neutron-functional.yml
Jean-Philippe Evrard 3a8b9ffc79 Ensure the nets, subnets and ports are present
This changes the tests to make sure everything is setup correctly.
It also outputs the available namespaces to make debugging easier,
because it was one of source of failures in the past.

Change-Id: I1d98ca4a7c4b3c8965a730f2df210809a5484b66
Signed-off-by: Jean-Philippe Evrard <jean-philippe.evrard@rackspace.co.uk>
2016-09-14 12:20:51 +01:00

110 lines
2.9 KiB
YAML

---
# Copyright 2015, Rackspace US, Inc.
#
# 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.
# Packages need to be installed outside
# of venv to be usable by Ansible
- name: Install testing pip packages
pip:
name: "{{ item }}"
with_items:
- python-neutronclient
- httplib2
- name: Check the neutron api
uri:
url: "http://localhost:9696"
status_code: 200
# No assertion around this yet, just useful for debug purposes
# TODO(automagically) - Test for all expected agents and agent status
- name: Neutron agents status
shell: |
. /root/openrc
neutron agent-list
register: agent_list
- name: Ensure that the DHCP agent is alive
shell: |
. /root/openrc
neutron agent-list | grep DHCP
register: neutron_dhcp_agent
until: neutron_dhcp_agent.stdout.find(':-)') != -1
retries: 5
delay: 10
- name: Create test network
neutron:
command: create_network
openrc_path: /root/openrc
net_name: test-network
- name: Ensuring network is created correctly
shell: |
. /root/openrc
neutron net-list | grep test-network
register: neutron_net_list
until: neutron_net_list.rc == 0
retries: 10
delay: 3
- name: Create test subnet
neutron:
command: create_subnet
openrc_path: /root/openrc
net_name: test-network
subnet_name: test-subnet
cidr: "192.168.74.0/24"
- name: Ensuring subnet is created correctly
shell: |
. /root/openrc
neutron subnet-list -c id -c name -f value | grep test-subnet
register: neutron_subnet_list
until: neutron_subnet_list.rc == 0
retries: 10
delay: 3
- name: Ensuring dhcp port is present
shell: |
. /root/openrc
neutron port-list -c device_owner -c id -c fixed_ips -f value | egrep 'dhcp.*{{ neutron_subnet_list.stdout_lines[0].split(' ')[0] }}'
register: neutron_port_list_dhcp
until: neutron_port_list_dhcp.rc == 0
retries: 10
delay: 3
- name: Check for dhcp network namespace
shell: ip netns ls
register: dhcp_namespace
- name: List the namespaces
debug:
msg: "{{ dhcp_namespace }}"
- name: Make sure the dhcp namespace is present
assert:
that:
- "'qdhcp' in dhcp_namespace.stdout"
- name: Check for iptables checksum rule
shell: |
ip netns exec {{ dhcp_namespace.stdout.split(' ')[0] }} iptables -C neutron-dhcp-age-POSTROUTING -t mangle -p udp --dport 68 -j CHECKSUM --checksum-fill
register: checksum_rule
until : checksum_rule.rc == 0
retries: 5
delay: 10
when:
- groups['neutron_linuxbridge_agent'] | length > 0