- 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-net region: central type: network params: name: ext-net is_router_external: true provider_network_type: vlan provider_physical_network: extern availability_zone_hints: [RegionTwo] - task_id: ext-subnet region: central type: subnet depend: [ext-net] params: name: ext-subnet ip_version: 4 cidr: 163.3.124.0/24 is_dhcp_enabled: false network_id: ext-net@id - task_id: router region: central type: router params: name: router - task_id: add-gateway region: central type: router action: target: router@id method: update depend: - ext-net - ext-subnet - router params: external_gateway_info: network_id: ext-net@id enable_snat: true - task_id: net1 region: central type: network params: name: net1 - task_id: subnet1 region: central type: subnet depend: [net1] params: name: subnet1 ip_version: 4 cidr: 10.0.1.0/24 allocation_pools: - start: 10.0.1.10 end: 10.0.1.90 network_id: net1@id - task_id: net3 region: central type: network params: name: net3 - task_id: subnet3 region: central type: subnet depend: [net3] params: name: subnet3 ip_version: 4 cidr: 10.0.1.0/24 allocation_pools: - start: 10.0.1.110 end: 10.0.1.190 network_id: net3@id - task_id: port1 region: central type: port depend: - net1 - subnet1 params: network_id: net1@id - task_id: add-subnet1 region: central type: router depend: - subnet1 - router action: target: router@id method: add_interface_to_router params: subnet_id: subnet1@id - task_id: fip1 region: central type: fip depend: - ext-net - port1 - add-gateway - add-subnet1 params: port_id: port1@id floating_ip_address: 163.3.124.15 floating_network_id: ext-net@id - task_id: vm1 region: region1 type: server depend: - fip1 - port1 - image1 params: flavor_id: 1 image_id: image1@id name: vm1 networks: - port: port1@id - task_id: net2 region: central type: network params: name: net2 - 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: port2 region: central type: port depend: - net2 - subnet2 params: network_id: net2@id - task_id: fip2 region: central type: fip depend: - vm2 - ext-net - port2 - add-gateway - add-subnet2 params: port_id: port2@id floating_ip_address: 163.3.124.20 floating_network_id: ext-net@id - task_id: vm2 region: region2 type: server depend: - port2 - image2 - vm1 params: flavor_id: 1 image_id: image2@id name: vm2 networks: - port: port2@id - task_id: add-subnet2 region: central type: router depend: - vm2 - subnet2 - router action: target: router@id method: add_interface_to_router params: subnet_id: subnet2@id - task_id: net4 region: central type: network params: name: net4 - task_id: subnet4 region: central type: subnet depend: [net4] params: name: subnet4 ip_version: 4 cidr: 10.0.4.0/24 network_id: net4@id gateway_ip: null - task_id: vm3 region: region1 type: server depend: - net4 - subnet4 - image1 - vm2 params: flavor_id: 1 image_id: image1@id name: vm3 networks: - uuid: net4@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@router@id - task_id: router2 region: region2 type: router query: get_one: true params: name: preparation@router@id - task_id: check-servers1 region: region1 type: server validate: predicate: any condition: - status: ACTIVE name: vm1 - status: ACTIVE name: vm3 - 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: 100.0.0* params: device_id: router1@id - task_id: check-routers1 region: region1 type: router validate: predicate: any condition: - routes: - destination: 0.0.0.0/0 nexthop: 100.0.0.1 - destination: 10.0.2* nexthop: 100.0.0* - task_id: check-subnets1 region: region1 type: subnet validate: predicate: any condition: - cidr: 10.0.1.0/24 - cidr: 10.0.4.0/24 - cidr: 100.0.0.0/24 - task_id: check-servers2 region: region2 type: server validate: predicate: any condition: - status: ACTIVE name: vm2 - 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: 100.0.0* params: device_id: router2@id - task_id: check-routers2 region: region2 type: router validate: predicate: any condition: - routes: - destination: 0.0.0.0/0 nexthop: 100.0.0.1 - destination: 10.0.1* nexthop: 100.0.0* - task_id: check-subnets2 region: region2 type: subnet validate: predicate: any condition: - cidr: 10.0.1.0/24 - cidr: 10.0.2.0/24 - cidr: 100.0.0.0/24 - cidr: 163.3.124.0/24 - task_id: check-fips2 region: region2 type: fip validate: predicate: any condition: - floating_ip_address: 163.3.124.15 - floating_ip_address: 163.3.124.20 - task_set_id: clean depend: [preparation] tasks: - task_id: delete-fip1 region: central type: fip action: target: preparation@fip1@id method: delete - task_id: delete-fip2 region: central type: fip action: target: preparation@fip2@id method: delete - task_id: delete-vm1 region: region1 type: server depend: [delete-fip1] action: target: preparation@vm1@id method: delete - task_id: delete-vm3 region: region1 type: server action: target: preparation@vm3@id method: delete - task_id: delete-vm2 region: region2 type: server depend: [delete-fip2] action: target: preparation@vm2@id method: delete - task_id: remove-gateway region: central type: router action: target: preparation@router@id method: update depend: - delete-fip1 - delete-fip2 params: external_gateway_info: null - task_id: remove-subnet1 region: central type: router action: target: preparation@router@id method: remove_interface_from_router depend: [remove-gateway] params: subnet_id: preparation@subnet1@id - task_id: remove-subnet2 region: central type: router action: target: preparation@router@id method: remove_interface_from_router depend: [remove-gateway] params: subnet_id: preparation@subnet2@id - task_id: delete-router region: central type: router action: target: preparation@router@id method: delete retries: 3 depend: - remove-gateway - remove-subnet1 - remove-subnet2 - task_id: delete-port1 region: central type: port action: target: preparation@port1@id method: delete depend: [delete-router] - task_id: delete-port2 region: central type: port action: target: preparation@port2@id method: delete depend: [delete-router] - task_id: delete-subnet1 region: central type: subnet action: target: preparation@subnet1@id method: delete retries: 3 depend: [delete-port1] - task_id: delete-subnet2 region: central type: subnet action: target: preparation@subnet2@id method: delete retries: 3 depend: [delete-port2] - task_id: delete-subnet3 region: central type: subnet action: target: preparation@subnet3@id method: delete retries: 3 - task_id: delete-subnet4 region: central type: subnet action: target: preparation@subnet4@id method: delete retries: 3 depend: [delete-vm3] - 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-net3 region: central type: network action: target: preparation@net3@id method: delete depend: [delete-subnet3] - task_id: delete-net4 region: central type: network action: target: preparation@net4@id method: delete depend: [delete-subnet4] - task_id: delete-ext-subnet region: central type: subnet action: target: preparation@ext-subnet@id method: delete depend: [delete-router] - task_id: delete-ext-net region: central type: network action: target: preparation@ext-net@id method: delete depend: [delete-ext-subnet] - 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