Add multi-gateway topology smoke test
1. What is the problem Smoke test engine has been implemented[1] and a smoke test for single north-south gateway topology has also been added. But we still lack test for multiple north-south gateway topology. 2. What is the solution for the problem Define the test using YAML file. 3. What features need to be implemented to the Tricircle to realize the solution N/A [1] https://review.openstack.org/#/c/477500/ Implements: blueprint smoke-test-engine Change-Id: Ied0693add47d479e7c6a01e09928d601635b1438 Depends-On: Ice098ce020c85f74d008c1952dd1dd36350dec1d
This commit is contained in:
parent
d93333d39b
commit
428310fcc4
|
@ -0,0 +1,573 @@
|
|||
- task_set_id: preparation
|
||||
tasks:
|
||||
- task_id: image1
|
||||
region: region1
|
||||
type: image
|
||||
query:
|
||||
get_one: true
|
||||
- task_id: image2
|
||||
region: region2
|
||||
type: image
|
||||
query:
|
||||
get_one: true
|
||||
- task_id: ext-net1
|
||||
region: central
|
||||
type: network
|
||||
params:
|
||||
name: ext-net1
|
||||
is_router_external: true
|
||||
provider_network_type: vlan
|
||||
provider_physical_network: bridge
|
||||
availability_zone_hints: [RegionOne]
|
||||
- task_id: ext-subnet1
|
||||
region: central
|
||||
type: subnet
|
||||
depend: [ext-net1]
|
||||
params:
|
||||
name: ext-subnet1
|
||||
ip_version: 4
|
||||
cidr: 163.3.124.0/24
|
||||
is_dhcp_enabled: false
|
||||
network_id: ext-net1@id
|
||||
- task_id: ext-net2
|
||||
region: central
|
||||
type: network
|
||||
params:
|
||||
name: ext-net2
|
||||
is_router_external: true
|
||||
provider_network_type: flat
|
||||
provider_physical_network: extern
|
||||
availability_zone_hints: [RegionTwo]
|
||||
- task_id: ext-subnet2
|
||||
region: central
|
||||
type: subnet
|
||||
depend: [ext-net2]
|
||||
params:
|
||||
name: ext-subnet2
|
||||
ip_version: 4
|
||||
cidr: 163.3.125.0/24
|
||||
is_dhcp_enabled: false
|
||||
network_id: ext-net2@id
|
||||
- task_id: router1
|
||||
region: central
|
||||
type: router
|
||||
params:
|
||||
name: router1
|
||||
availability_zone_hints: [RegionOne]
|
||||
- task_id: router2
|
||||
region: central
|
||||
type: router
|
||||
params:
|
||||
name: router2
|
||||
availability_zone_hints: [RegionTwo]
|
||||
- task_id: router3
|
||||
region: central
|
||||
type: router
|
||||
params:
|
||||
name: router3
|
||||
- task_id: net1
|
||||
region: central
|
||||
type: network
|
||||
params:
|
||||
name: net1
|
||||
availability_zone_hints: [RegionOne]
|
||||
- task_id: subnet1
|
||||
region: central
|
||||
type: subnet
|
||||
depend: [net1]
|
||||
params:
|
||||
name: subnet1
|
||||
ip_version: 4
|
||||
cidr: 10.0.1.0/24
|
||||
network_id: net1@id
|
||||
- task_id: net2
|
||||
region: central
|
||||
type: network
|
||||
params:
|
||||
name: net2
|
||||
availability_zone_hints: [RegionTwo]
|
||||
- task_id: subnet2
|
||||
region: central
|
||||
type: subnet
|
||||
depend: [net2]
|
||||
params:
|
||||
name: subnet2
|
||||
ip_version: 4
|
||||
cidr: 10.0.2.0/24
|
||||
network_id: net2@id
|
||||
- task_id: add-gateway1
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: router1@id
|
||||
method: update
|
||||
depend:
|
||||
- ext-net1
|
||||
- ext-subnet1
|
||||
- router1
|
||||
params:
|
||||
external_gateway_info:
|
||||
network_id: ext-net1@id
|
||||
enable_snat: true
|
||||
- task_id: add-gateway2
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: router2@id
|
||||
method: update
|
||||
depend:
|
||||
- ext-net2
|
||||
- ext-subnet2
|
||||
- router2
|
||||
params:
|
||||
external_gateway_info:
|
||||
network_id: ext-net2@id
|
||||
enable_snat: true
|
||||
- task_id: add-subnet1
|
||||
region: central
|
||||
type: router
|
||||
depend:
|
||||
- subnet1
|
||||
- router1
|
||||
action:
|
||||
target: router1@id
|
||||
method: add_interface_to_router
|
||||
params:
|
||||
subnet_id: subnet1@id
|
||||
- task_id: add-subnet2
|
||||
region: central
|
||||
type: router
|
||||
depend:
|
||||
- subnet2
|
||||
- router2
|
||||
action:
|
||||
target: router2@id
|
||||
method: add_interface_to_router
|
||||
params:
|
||||
subnet_id: subnet2@id
|
||||
- task_id: inf-net1
|
||||
region: central
|
||||
type: port
|
||||
depend:
|
||||
- net1
|
||||
- subnet1
|
||||
params:
|
||||
network_id: net1@id
|
||||
- task_id: inf-net2
|
||||
region: central
|
||||
type: port
|
||||
depend:
|
||||
- net2
|
||||
- subnet2
|
||||
params:
|
||||
network_id: net2@id
|
||||
- task_id: add-inf1
|
||||
region: central
|
||||
type: router
|
||||
depend:
|
||||
- inf-net1
|
||||
- router3
|
||||
action:
|
||||
target: router3@id
|
||||
method: add_interface_to_router
|
||||
params:
|
||||
port_id: inf-net1@id
|
||||
- task_id: add-inf2
|
||||
region: central
|
||||
type: router
|
||||
depend:
|
||||
- inf-net2
|
||||
- router3
|
||||
action:
|
||||
target: router3@id
|
||||
method: add_interface_to_router
|
||||
params:
|
||||
port_id: inf-net2@id
|
||||
- task_id: vm1
|
||||
region: region1
|
||||
type: server
|
||||
depend:
|
||||
- net1
|
||||
- image1
|
||||
- add-gateway1
|
||||
- add-subnet1
|
||||
- add-inf1
|
||||
params:
|
||||
flavor_id: 1
|
||||
image_id: image1@id
|
||||
name: vm1
|
||||
networks:
|
||||
- uuid: net1@id
|
||||
- task_id: vm2
|
||||
region: region2
|
||||
type: server
|
||||
depend:
|
||||
- net2
|
||||
- image2
|
||||
- add-gateway2
|
||||
- add-subnet2
|
||||
- add-inf2
|
||||
params:
|
||||
flavor_id: 1
|
||||
image_id: image2@id
|
||||
name: vm2
|
||||
networks:
|
||||
- uuid: net2@id
|
||||
- task_set_id: wait-for-job
|
||||
tasks:
|
||||
- task_id: check-job
|
||||
region: central
|
||||
type: job
|
||||
validate:
|
||||
predicate: all
|
||||
retries: 10
|
||||
condition:
|
||||
- status: SUCCESS
|
||||
- task_set_id: check
|
||||
depend: [preparation]
|
||||
tasks:
|
||||
- task_id: router1
|
||||
region: region1
|
||||
type: router
|
||||
query:
|
||||
get_one: true
|
||||
params:
|
||||
name: preparation@router1@id
|
||||
- task_id: router2
|
||||
region: region2
|
||||
type: router
|
||||
query:
|
||||
get_one: true
|
||||
params:
|
||||
name: preparation@router2@id
|
||||
- task_id: router3-1
|
||||
region: region1
|
||||
type: router
|
||||
query:
|
||||
get_one: true
|
||||
params:
|
||||
name: preparation@router3@id
|
||||
- task_id: router3-2
|
||||
region: region2
|
||||
type: router
|
||||
query:
|
||||
get_one: true
|
||||
params:
|
||||
name: preparation@router3@id
|
||||
- task_id: check-subnets1
|
||||
region: region1
|
||||
type: subnet
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- cidr: 10.0.1.0/24
|
||||
host_routes:
|
||||
- destination: 10.0.2.0/24
|
||||
nexthop: 10.0.1.*
|
||||
- cidr: 100.0.0.0/24
|
||||
- cidr: 163.3.124.0/24
|
||||
- task_id: check-subnets2
|
||||
region: region2
|
||||
type: subnet
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- cidr: 10.0.2.0/24
|
||||
host_routes:
|
||||
- destination: 10.0.1.0/24
|
||||
nexthop: 10.0.2.*
|
||||
- cidr: 100.0.0.0/24
|
||||
- cidr: 163.3.125.0/24
|
||||
- task_id: check-ports1
|
||||
region: region1
|
||||
type: port
|
||||
depend: [router1]
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- fixed_ips:
|
||||
- ip_address: 10.0.1*
|
||||
- fixed_ips:
|
||||
- ip_address: 163.3.124*
|
||||
params:
|
||||
device_id: router1@id
|
||||
- task_id: check-ports2
|
||||
region: region2
|
||||
type: port
|
||||
depend: [router2]
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- fixed_ips:
|
||||
- ip_address: 10.0.2*
|
||||
- fixed_ips:
|
||||
- ip_address: 163.3.125*
|
||||
params:
|
||||
device_id: router2@id
|
||||
- task_id: check-ports3-1
|
||||
region: region1
|
||||
type: port
|
||||
depend: [router3-1]
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- fixed_ips:
|
||||
- ip_address: 10.0.1*
|
||||
- fixed_ips:
|
||||
- ip_address: 100.0.0*
|
||||
params:
|
||||
device_id: router3-1@id
|
||||
- task_id: check-ports3-2
|
||||
region: region2
|
||||
type: port
|
||||
depend: [router3-2]
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- fixed_ips:
|
||||
- ip_address: 10.0.2*
|
||||
- fixed_ips:
|
||||
- ip_address: 100.0.0*
|
||||
params:
|
||||
device_id: router3-2@id
|
||||
- task_id: check-routers3-1
|
||||
region: region1
|
||||
type: router
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- routes:
|
||||
- destination: 10.0.2*
|
||||
nexthop: 100.0.0*
|
||||
- task_id: check-routers3-2
|
||||
region: region2
|
||||
type: router
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- routes:
|
||||
- destination: 10.0.1*
|
||||
nexthop: 100.0.0*
|
||||
- task_id: check-servers1
|
||||
region: region1
|
||||
type: server
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- status: ACTIVE
|
||||
name: vm1
|
||||
- task_id: check-servers2
|
||||
region: region2
|
||||
type: server
|
||||
validate:
|
||||
predicate: any
|
||||
condition:
|
||||
- status: ACTIVE
|
||||
name: vm2
|
||||
- task_set_id: clean
|
||||
depend: [preparation]
|
||||
tasks:
|
||||
- task_id: delete-vm1
|
||||
region: region1
|
||||
type: server
|
||||
action:
|
||||
target: preparation@vm1@id
|
||||
method: delete
|
||||
- task_id: delete-vm2
|
||||
region: region2
|
||||
type: server
|
||||
action:
|
||||
target: preparation@vm2@id
|
||||
method: delete
|
||||
- task_id: remove-gateway1
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router1@id
|
||||
method: update
|
||||
params:
|
||||
external_gateway_info: null
|
||||
- task_id: remove-gateway2
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router2@id
|
||||
method: update
|
||||
params:
|
||||
external_gateway_info: null
|
||||
- task_id: remove-subnet1
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router1@id
|
||||
method: remove_interface_from_router
|
||||
params:
|
||||
subnet_id: preparation@subnet1@id
|
||||
- task_id: remove-subnet2
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router2@id
|
||||
method: remove_interface_from_router
|
||||
params:
|
||||
subnet_id: preparation@subnet2@id
|
||||
- task_id: remove-inf1
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router3@id
|
||||
method: remove_interface_from_router
|
||||
params:
|
||||
port_id: preparation@inf-net1@id
|
||||
- task_id: remove-inf2
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router3@id
|
||||
method: remove_interface_from_router
|
||||
params:
|
||||
port_id: preparation@inf-net2@id
|
||||
- task_id: delete-router1
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router1@id
|
||||
method: delete
|
||||
retries: 3
|
||||
depend:
|
||||
- remove-gateway1
|
||||
- remove-subnet1
|
||||
- task_id: delete-router2
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router2@id
|
||||
method: delete
|
||||
retries: 3
|
||||
depend:
|
||||
- remove-gateway2
|
||||
- remove-subnet2
|
||||
- task_id: delete-router3
|
||||
region: central
|
||||
type: router
|
||||
action:
|
||||
target: preparation@router3@id
|
||||
method: delete
|
||||
retries: 3
|
||||
depend:
|
||||
- remove-inf1
|
||||
- remove-inf2
|
||||
# router3 must be the last router to delete, otherwise bridge
|
||||
# resources will not be deleted, this is a known issue
|
||||
- delete-router1
|
||||
- delete-router2
|
||||
- task_id: delete-inf1
|
||||
region: central
|
||||
type: port
|
||||
action:
|
||||
target: preparation@inf-net1@id
|
||||
method: delete
|
||||
depend: [delete-router3]
|
||||
- task_id: delete-inf2
|
||||
region: central
|
||||
type: port
|
||||
action:
|
||||
target: preparation@inf-net2@id
|
||||
method: delete
|
||||
depend: [delete-router3]
|
||||
- task_id: delete-subnet1
|
||||
region: central
|
||||
type: subnet
|
||||
action:
|
||||
target: preparation@subnet1@id
|
||||
method: delete
|
||||
retries: 3
|
||||
depend: [delete-inf1]
|
||||
- task_id: delete-subnet2
|
||||
region: central
|
||||
type: subnet
|
||||
action:
|
||||
target: preparation@subnet2@id
|
||||
method: delete
|
||||
retries: 3
|
||||
depend: [delete-inf2]
|
||||
- task_id: delete-net1
|
||||
region: central
|
||||
type: network
|
||||
action:
|
||||
target: preparation@net1@id
|
||||
method: delete
|
||||
depend: [delete-subnet1]
|
||||
- task_id: delete-net2
|
||||
region: central
|
||||
type: network
|
||||
action:
|
||||
target: preparation@net2@id
|
||||
method: delete
|
||||
depend: [delete-subnet2]
|
||||
- task_id: delete-ext-subnet1
|
||||
region: central
|
||||
type: subnet
|
||||
action:
|
||||
target: preparation@ext-subnet1@id
|
||||
method: delete
|
||||
depend: [delete-router1]
|
||||
- task_id: delete-ext-net1
|
||||
region: central
|
||||
type: network
|
||||
action:
|
||||
target: preparation@ext-net1@id
|
||||
method: delete
|
||||
depend: [delete-ext-subnet1]
|
||||
- task_id: delete-ext-subnet2
|
||||
region: central
|
||||
type: subnet
|
||||
action:
|
||||
target: preparation@ext-subnet2@id
|
||||
method: delete
|
||||
depend: [delete-router2]
|
||||
- task_id: delete-ext-net2
|
||||
region: central
|
||||
type: network
|
||||
action:
|
||||
target: preparation@ext-net2@id
|
||||
method: delete
|
||||
depend: [delete-ext-subnet2]
|
||||
- task_set_id: clean-check
|
||||
tasks:
|
||||
- task_id: check-no-routers1
|
||||
region: region1
|
||||
type: router
|
||||
validate:
|
||||
predicate: all
|
||||
condition:
|
||||
- name: invalid-name
|
||||
- task_id: check-no-routers2
|
||||
region: region2
|
||||
type: router
|
||||
validate:
|
||||
predicate: all
|
||||
condition:
|
||||
- name: invalid-name
|
||||
- task_id: check-no-networks1
|
||||
region: region1
|
||||
type: network
|
||||
validate:
|
||||
predicate: all
|
||||
condition:
|
||||
- name: invalid-name
|
||||
- task_id: check-no-networks2
|
||||
region: region2
|
||||
type: network
|
||||
validate:
|
||||
predicate: all
|
||||
condition:
|
||||
- name: invalid-name
|
||||
- task_id: check-jobs
|
||||
region: central
|
||||
type: job
|
||||
validate:
|
||||
predicate: all
|
||||
retries: 10
|
||||
condition:
|
||||
- status: SUCCESS
|
|
@ -9,3 +9,7 @@ python run_yaml_test.py single_gw_topology_test.yaml "$OS_AUTH_URL" "$OS_TENANT_
|
|||
if [ $? != 0 ]; then
|
||||
die $LINENO "Smoke test fails, error in single gateway topology test"
|
||||
fi
|
||||
python run_yaml_test.py multi_gw_topology_test.yaml "$OS_AUTH_URL" "$OS_TENANT_NAME" "$OS_USERNAME" "$OS_PASSWORD"
|
||||
if [ $? != 0 ]; then
|
||||
die $LINENO "Smoke test fails, error in multi gateway topology test"
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue