
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>
110 lines
2.9 KiB
YAML
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
|