deb-heat/heat_integrationtests/scenario/templates/test_neutron_loadbalancer.yaml
Rabi Mishra 7436a003b1 Fix NeutronLoadBalancerTest.test_neutron_loadbalancer timeout
NeutronLoadBalancerTest.test_neutron_loadbalancer timeout
happens occasionally. Added WaitCondition resource to
signal back after SimpleHTTPServer is started.

Change-Id: I73085d1b20277fba9f28460abaa991d489d2447a
Closes-Bug: #1437203
2015-04-08 19:04:34 +05:30

128 lines
3.1 KiB
YAML

heat_template_version: 2014-10-16
description: |
Template which tests neutron load balancing resources
parameters:
key_name:
type: string
flavor:
type: string
image:
type: string
private_subnet_id:
type: string
external_network_id:
type: string
port:
type: string
default: '80'
timeout:
type: number
resources:
sec_group:
type: OS::Neutron::SecurityGroup
properties:
description: Add security group rules for servers
name: security-group
rules:
- remote_ip_prefix: 0.0.0.0/0
protocol: tcp
port_range_min: { get_param: port }
port_range_max: { get_param: port }
- remote_ip_prefix: 0.0.0.0/0
protocol: icmp
wait_condition:
type: OS::Heat::WaitCondition
properties:
handle: { get_resource: wait_condition_handle }
count: 2
timeout: { get_param: timeout }
wait_condition_handle:
type: OS::Heat::WaitConditionHandle
config:
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config:
str_replace:
template: |
#!/bin/bash -v
echo $(hostname) > index.html
python -m SimpleHTTPServer port &
wc_notify --data-binary '{"status": "SUCCESS"}'
params:
wc_notify: { get_attr: ['wait_condition_handle', 'curl_cli'] }
port: { get_param: port }
server1:
type: OS::Nova::Server
properties:
name: Server1
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key_name }
security_groups: [{ get_resource: sec_group }]
user_data_format: SOFTWARE_CONFIG
user_data: { get_resource: config }
server2:
type: OS::Nova::Server
properties:
name: Server2
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key_name }
security_groups: [{ get_resource: sec_group }]
user_data_format: SOFTWARE_CONFIG
user_data: { get_resource: config }
health_monitor:
type: OS::Neutron::HealthMonitor
properties:
delay: 3
type: HTTP
timeout: 3
max_retries: 3
test_pool:
type: OS::Neutron::Pool
properties:
lb_method: ROUND_ROBIN
protocol: HTTP
subnet: { get_param: private_subnet_id }
monitors:
- { get_resource: health_monitor }
vip:
protocol_port: { get_param: port }
floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: external_network_id }
port_id:
{ get_attr: [test_pool, vip, 'port_id'] }
LBaaS:
type: OS::Neutron::LoadBalancer
depends_on: wait_condition
properties:
pool_id: { get_resource: test_pool }
protocol_port: { get_param: port }
members:
- { get_resource: server1 }
outputs:
serv1_ip:
value: {get_attr: [server1, networks, private, 0]}
serv2_ip:
value: {get_attr: [server2, networks, private, 0]}
vip:
value: {get_attr: [test_pool, vip, address]}
fip:
value: {get_attr: [floating_ip, floating_ip_address]}