heat_template_version: 2013-05-23

description: heat template that creates multiple PCRF OAM nodes stack

parameters:
  pcrf_oam_server_names:
    type: comma_delimited_list
    label: PCRF OAM server names
    description: name of the PCRF OAM instance
  pcrf_oam_image_name:
    type: string
    label: PCRF OAM image name
    description: PCRF OAM image name
  pcrf_oam_flavor_name:
    type: string
    label: PCRF OAM flavor name
    description: flavor name of PCRF OAM instance
  availabilityzone_name:
    type: string
    label: availabilityzone name
    description: availabilityzone name
  pcrf_cps_net_name:
    type: string
    label: CPS network name
    description: CPS network name
  pcrf_cps_net_ips:
    type: comma_delimited_list
    label: CPS network ips
    description: CPS network ips
  pcrf_cps_net_mask:
    type: string
    label: CPS network mask
    description: CPS network mask
  pcrf_arbiter_vip:
    type: string
    label: OAM Arbiter LB VIP
    description: OAM Arbiter LB VIP
  pcrf_oam_net_name:
    type: string
    label: OAM network name
    description: OAM network name
  pcrf_oam_net_ips:
    type: comma_delimited_list
    label: OAM network ips
    description: OAM network ips
  pcrf_oam_net_gw:
    type: string
    label: CPS network gateway
    description: CPS network gateway
  pcrf_oam_net_mask:
    type: string
    label: CPS network mask
    description: CPS network mask
  pcrf_oam_volume_id_1:
    type: string
    label: CPS OAM 001 Cinder Volume
    description: CPS OAM 001 Cinder Volumes
  pcrf_oam_volume_id_2:
    type: string
    label: CPS OAM 002 Cinder Volume
    description: CPS OAM 002 Cinder Volumes
  pcrf_security_group_name:
    type: string
    label: security group name
    description: the name of security group
  pcrf_vnf_id:
    type: string
    label: PCRF VNF Id
    description: PCRF VNF Id

resources:
  server_pcrf_oam_001:
    type: nested-oam_v1.0.yaml
    properties:
      pcrf_oam_server_name: { get_param: [pcrf_oam_server_names, 0] }
      pcrf_oam_image_name: { get_param: pcrf_oam_image_name }
      pcrf_oam_flavor_name: { get_param: pcrf_oam_flavor_name }
      availabilityzone_name: { get_param: availabilityzone_name }
      pcrf_security_group_name: { get_param: pcrf_security_group_name }
      pcrf_oam_volume_id: { get_param: pcrf_oam_volume_id_1 }
      pcrf_cps_net_name: { get_param: pcrf_cps_net_name }
      pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 0] }
      pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask }
      pcrf_oam_net_name: { get_param: pcrf_oam_net_name }
      pcrf_oam_net_ip: { get_param: [pcrf_oam_net_ips, 0] }
      pcrf_oam_net_mask: { get_param: pcrf_oam_net_mask }
      pcrf_oam_net_gw: { get_param: pcrf_oam_net_gw }
      pcrf_arbiter_vip: { get_param: pcrf_arbiter_vip }
      pcrf_vnf_id: {get_param: pcrf_vnf_id}

  server_pcrf_oam_002:
    type: nested-oam_v1.0.yaml
    depends_on: [server_pcrf_oam_001]
    properties:
      pcrf_oam_server_name: { get_param: [pcrf_oam_server_names, 1] }
      pcrf_oam_image_name: { get_param: pcrf_oam_image_name }
      pcrf_oam_flavor_name: { get_param: pcrf_oam_flavor_name }
      availabilityzone_name: { get_param: availabilityzone_name }
      pcrf_security_group_name: { get_param: pcrf_security_group_name }
      pcrf_oam_volume_id: { get_param: pcrf_oam_volume_id_2 }
      pcrf_cps_net_name: { get_param: pcrf_cps_net_name }
      pcrf_cps_net_ip: { get_param: [pcrf_cps_net_ips, 1] }
      pcrf_cps_net_mask: { get_param: pcrf_cps_net_mask }
      pcrf_oam_net_name: { get_param: pcrf_oam_net_name }
      pcrf_oam_net_ip: { get_param: [pcrf_oam_net_ips, 1] }
      pcrf_oam_net_mask: { get_param: pcrf_oam_net_mask }
      pcrf_oam_net_gw: { get_param: pcrf_oam_net_gw }
      pcrf_arbiter_vip: { get_param: pcrf_arbiter_vip }
      pcrf_vnf_id: {get_param: pcrf_vnf_id}