push addional code
[sdc.git] / openecomp-be / lib / openecomp-sdc-translator-lib / openecomp-sdc-translator-core / src / test / resources / mock / multiHeat / allHeatsAreBase / inputs / MMSC_Capacity_Line.yml
1 heat_template_version: 2013-05-23
2
3 description: >
4   HOT template that creates internal networks, load balancers and servers for vMMSC capacity Line 1.
5   #11/23: updated the network definition to meet the juniper best practices way of defining the gateway, DHCP enable for internal networks (L457-L547)
6
7 parameters:
8   vnf_id:
9     type: string
10     description: Unique ID for this VNF instance
11     default: This_is_the_MMSC_id
12   oam_net_name:
13     type: string
14     label: UID of OAM network
15     description: UID of OAM network
16   oam_network_netmask:
17     type: string
18     label: oam network netmask
19     description: oam network gateway
20   oam_network_gateway:
21     type: string
22     label: oam network gateway
23     description: oam network gateway
24   oam_network_route_1:
25     type: string
26     label: oam network route 1
27     description: oam network route 1
28   oam_network_route_2:
29     type: string
30     label: oam network route 2
31     description:  oam network route 2
32   external_dns:
33     type: string
34     label: dns server
35     description: dns server for MMSC
36   external_ntp:
37     type: string
38     label: ntp server 
39     description: ntp server for MMSC
40   lb_oam_ips:
41     type: comma_delimited_list
42     label: management network ips for mmsc lb
43     description: the ips of the management network for mmsc lb
44   dmz_protected_net_name:
45     type: string
46     label: UID of dmz_protected network
47     description: UID of dmz_protected network
48   lb_dmz_protected_ips:
49     type: comma_delimited_list
50     label: dmz protected network local ips for lb VM
51     description: local ips of the dmz protected network for lb VM
52   cor_direct_net_name:
53     type: string
54     label: cor direct net UID
55     description: cor direct net
56   lb_cor_direct_ips:
57     type: comma_delimited_list
58     label:  cor direct network local ips for lb VM
59     description: local ips of cor direct network for lb VM
60   mms_traffic_net_name:
61     type: string
62     label: Name of MMS traffic network
63     description: Name of MMS traffic network
64   mms_traffic_net_cidr:
65     type: string
66     label: MMS traffic network address (CIDR notation)
67     description: MMS traffic network address (CIDR notation)
68   mms_traffic_netmask:
69     type: string
70     label: MMS traffic network subnet mask
71     description: MMS traffic network subnet mask  
72   mms_traffic_net_gateway:
73     type: string
74     label: MMS traffic network gateway address
75     description: MMS traffic network gateway address
76   mms_traffic_start:
77     type: string
78     label: mmsc traffic start IP
79     description: mmsc traffic start IP
80   mms_traffic_end:
81     type: string
82     label: mmsc traffic end IP
83     description: mmsc traffic end IP
84   mms_traffic_net_local_ip1:
85     type: string
86     label: mmsc traffic network local ip1
87     description: the local ip1 of the mmsc traffic network
88   mms_traffic_net_local_ip2:
89     type: string
90     label: mmsc traffic network local ip2
91     description: the local ip2 of the mmsc traffic network
92   mms_traffic_net_floating_ip:
93     type: string
94     label: mmsc traffic floating ip
95     description: mmsc traffic floating ip
96   nems_internal_name:
97     type: string
98     label: nems internal network name
99     description: nems internal network name
100   nems_internal_start:
101     type: string
102     label: nems internal start
103     description: nems internal start
104   nems_internal_end:
105     type: string
106     label: nems internal end
107     description: nems internal end
108   nems_internal_cidr:
109     type: string
110     label: nems ineternal cidr
111     description: nems internal cidr
112   nems_internal_netmask:
113     type: string
114     label: NEMS internal network subnet mask
115     description: NEMS internal network subnet mask
116   nems_internal_gateway:
117     type: string
118     label: nems internal gw
119     description: nems internal gw
120   nems_traffic_name:
121     type: string
122     label: nems traffic name
123     description: nems traffic name
124   nems_traffic_start:
125     type: string
126     label: nems traffic start
127     description: nems traffic start
128   nems_traffic_end:
129     type: string
130     label: nems traffic end
131     description: nems traffic end
132   nems_traffic_cidr:
133     type: string
134     label: nems traffic cidr
135     description: nems traffic cidr
136   nems_traffic_netmask:
137     type: string
138     label: NEMS traffic network subnet mask
139     description: NEMS traffic network subnet mask
140   nems_traffic_gateway:
141     type: string
142     label: NEMS traffic network gateway
143     description: NEMS traffic network gateway  
144   nems_traffic_net_local_ip1:
145     type: string
146     label: nems traffic network local ip1
147     description: the local ip1 of the nems traffic network
148   nems_traffic_net_local_ip2:
149     type: string
150     label: nems traffic network local ip2
151     description: the local ip2 of the nems traffic network
152   nems_traffic_net_floating_ip:
153     type: string
154     label: nems traffic floating ip
155     description: nems traffic floating ip
156   nems_user_web_name:
157     type: string
158     label: nems user web name
159     description: nems user web name
160   nems_user_web_start:
161     type: string
162     label: nems user web start
163     description: nems user web end
164   nems_user_web_end:
165     type: string
166     label: nems user web end
167     description: nems user web end
168   nems_user_web_cidr:
169     type: string
170     label: nems user web cidr
171     description: nems user web cidr
172   nems_user_web_netmask:
173     type: string
174     label: NEMS user web network subnet mask
175     description: NEMS user web network subnet mask
176   nems_user_web_gateway:
177     type: string
178     label: NEMS user web network gateway
179     description: NEMS user web network gateway
180   nems_user_web_net_local_ip1:
181     type: string
182     label: nems user web network local ip1
183     description: the local ip1 of the nems user web network
184   nems_user_web_net_local_ip2:
185     type: string
186     label: nems user web network local ip2
187     description: the local ip2 of the nems user web network
188   nems_user_web_net_floating_ip:
189     type: string
190     label: nems user web floating ip
191     description: nems user web floating ip 
192   nems_imap_name:
193     type: string
194     label: nems imap name
195     description: nems imap name
196   nems_imap_netmask:
197     type: string
198     label: nems imap subnet mask
199     description: nems imap subnet mask  
200   nems_imap_start:
201     type: string
202     label: nems imap start
203     description: nems imap start
204   nems_imap_end:
205     type: string
206     label: nems imap end
207     description: nems imap end
208   nems_imap_cidr:
209     type: string
210     label: nems imap cidr
211     description: nems imap cidr
212   nems_imap_gateway:
213     type: string
214     label: nems imap gateway
215     description: nems imap gateway  
216   eca_traffic_name:
217     type: string
218     label: eca traffic name
219     description: eca traffic name
220   eca_traffic_start:
221     type: string
222     label: eca traffic start
223     description: eca traffic start
224   eca_traffic_end:
225     type: string
226     label: eca traffic end
227     description: eca traffic end
228   eca_traffic_cidr:
229     type: string
230     label: eca traffic cidr
231     description: eca traffic cidr
232   eca_traffic_netmask:
233     type: string
234     label: ECA traffic network subnet mask
235     description: ECA traffic network subnet mask
236   eca_traffic_net_gateway:
237     type: string
238     label: eca_traffic network gateway
239     description: eca_traffic network gateway  
240   eca_traffic_net_local_ip1:
241     type: string
242     label: eca traffic network local ip1
243     description: the local ip1 of the eca traffic network
244   eca_traffic_net_local_ip2:
245     type: string
246     label: eca traffic network local ip2
247     description: the local ip2 of the eca traffic network
248   eca_traffic_net_floating_ip:
249     type: string
250     label: eca traffic floating ip
251     description: eca traffic floating ip
252   ha_net_name:
253     type: string
254     label: ha_failover network name
255     description: ha_failover network name
256   ha_net_start:
257     type: string
258     label: ha net start
259     description: ha net start
260   ha_net_end:
261     type: string
262     label: ha net end
263     description: ha net end
264   ha_net_cidr:
265     type: string
266     label: ha net cidr
267     description: ha net cidr
268   ha_net_local_ip1:
269     type: string
270     label: ha net network local ip1
271     description: the local ip1 of the ha network
272   ha_net_local_ip2:
273     type: string
274     label: ha net network local ip2
275     description: the local ip2 of the ha network
276   lb_names:
277     type: comma_delimited_list
278     label: MMSC load balancer instance names
279     description: MMSC load balancer instance names
280   lb_image_name:
281     type: string
282     label: MMSC load balancer image name
283     description: MMSC load balancer image name
284   lb_flavor_name:
285     type: string
286     label: Load balancer flavor name
287     description: the flavor name of MMSC load balancer instance
288   availability_zone_0:
289     type: string
290     label: MMSC availabilityzone name
291     description: MMSC availabilityzone name
292   security_group_name:
293     type: string
294     label: MMSC security group name
295     description: MMSC security group name
296   mmsc_image:
297     type: string
298     label: Image for MMSC server
299     description: Image for MMSC server
300   mmsc_flavor:
301     type: string
302     label: Flavor for MMSC server
303     description: Flavor for MMSC server
304   mmsc_cinder_volume_size:
305     type: number
306     label: MMSC Cinder volume size
307     description: the size of the MMSC Cinder volume
308   nems_fe_image:
309     type: string
310     label: Image for NEMS FE server
311     description: Image for NEMS FE server
312   nems_fe_flavor:
313     type: string
314     label: Flavor for NEMS FE server
315     description: Flavor for NEMS FE server
316   nems_be_image:
317     type: string
318     label: Image for NEMS BE server
319     description: Image for NEMS BE server
320   nems_be_flavor:
321     type: string
322     label: Flavor for NEMS BE server
323     description: Flavor for NEMS BE server
324   eca_trx_image:
325     type: string
326     label: Image for ECA TRX server
327     description: Image for ECA TRX server
328   eca_trx_flavor:
329     type: string
330     label: Flavor for ECA TRX server
331     description: Flavor for ECA TRX server
332   mmsc_oam_ips:
333     type: comma_delimited_list
334     label: MMSC oam_net IP addresses
335     description: MMSC oam_net IP addresses
336   mmsc_mms_traffic_net_ips:
337     type: comma_delimited_list
338     label: MMSC mms_traffic_net IP addresses
339     description: MMSC mms_traffic_net IP addresses
340   nems_fe_names:
341     type: comma_delimited_list
342     label: NEMS_FE server names
343     description: NEMS_FE server names
344   nems_fe_node_roles:
345     type: comma_delimited_list
346     label: nems fe node roles
347     description: nems fe node roles
348   nems_fe_oam_ips:
349     type: comma_delimited_list
350     label: OAM_net IP for NEMS_FE
351     description: OAM_net IP for NEMS_FE
352   nems_fe_nems_traffic_net_ips:
353     type: comma_delimited_list
354     label: nems_traffic_net IPs for NEMS_FE
355     description: nems_traffic_net IPs for NEMS_FE
356   nems_fe_nems_user_web_net_ips:
357     type: comma_delimited_list
358     label: nems_web_user_net IPs for NEMS_FE
359     description: nems_web_user_net IPs for NEMS_FE
360   nems_fe_nems_internal_net_ips:
361     type: comma_delimited_list
362     label: nems_internal_net IPs for NEMS_FE
363     description: nems_internal_net IPs for NEMS_FE
364   nems_fe_nems_imap_net_ips:
365     type: comma_delimited_list
366     label: nems_imap_net IPs for NEMS_FE
367     description: nems_imap_net IPs for NEMS_FE  
368   nems_be_names:
369     type: string
370     label: NEMS_BE server names
371     description: NEMS_BE server names
372   nems_be_node_roles:
373     type: string
374     label: nems node roles
375     description: nems node roles
376   nems_be_oam_ips:
377     type: string
378     label: OAM net IPs for NEMS_BE
379     description: OAM net IPs for NEMS_BE
380   nems_be_nems_internal_net_ips:
381     type: string
382     label: nems internal net IPs for NEMS_BE
383     description: nems internal net IPs for NEMS_BE
384   nems_be_nems_imap_net_ips:
385     type: string
386     label: nems imap_net IPs for NEMS_BE
387     description: nems imap net IPs for NEMS_BE 
388   eca_trx_oam_ips:
389     type: comma_delimited_list
390     label: OAM net IP for ECA_TRX
391     description: OAM net IP for ECA_TRX
392   eca_trx_mgmt_ips:
393     type: comma_delimited_list
394     label: eca mgmt net IP for ECA_TRX
395     description: eca mgmt net IP for ECA_TRX
396   timezone:
397     type: string
398     label: timezone
399     description: timezone
400   eca_trx_names:
401     type: comma_delimited_list
402     label: ECA_TRX server names
403     description: ECA_TRX server names
404   eca_trx_eca_traffic_net_ips:
405     type: comma_delimited_list
406     label: eca traffic net IPs for ECA_TRX
407     description: eca traffic net IPs for ECA_TRX
408   mmsc_names:
409     type: comma_delimited_list
410     label: MMSC server names
411     description: MMSC server names
412   nems_volume_size:
413     type: number
414     label: nems fe volume size
415     description: nems fe volume size
416   nems_be_volume_size:
417     type: number
418     label: nems be volume size
419     description: nems be volume size
420   MMSC_volume_type:
421     type: string
422     label: MMSC vm volume type
423     description: the name of the target volume backend
424   NEMS_FE_volume_type:
425     type: string
426     label: nems fe vm volume type
427     description: the name of the target volume backend
428   NEMS_BE_volume_type:
429     type: string
430     label: nems be vm volume type
431     description: the name of the target volume backend
432   mmsc_core_virtual_server_ips:
433     type: comma_delimited_list
434     label: mmsc core virtual server ips
435     description: mmsc core virtual server ips
436   mmsc_core_snat_ips:
437     type: comma_delimited_list
438     label: mmsc core snat ips
439     description: mmsc core snat ips
440   mmsc_dmz_protected_virtual_server_ips:
441     type: comma_delimited_list
442     label: mmsc dmz_protected virtual server ips
443     description: mmsc dmz_protected virtual server ips
444   mmsc_dmz_protected_snat_ips:
445     type: comma_delimited_list
446     label: mmsc dmz_protected snat ips
447     description: mmsc dmz_protected snat ips
448   eca_mgmt_net_name:
449     type: string
450     label: eca management network ID
451     description: Network ID for eca management
452
453 resources:
454   mms_traffic_net:
455     type: OS::Contrail::VirtualNetwork
456     properties:
457       name: { get_param: mms_traffic_net_name }
458
459   mms_traffic_ip_subnet:
460     type: OS::Neutron::Subnet
461     properties:
462       name: {get_param: mms_traffic_net_name}      
463       network_id: { get_resource: mms_traffic_net }
464       cidr: { get_param: mms_traffic_net_cidr }
465       allocation_pools: [{"start": {get_param: mms_traffic_start}, "end": {get_param: mms_traffic_end}}]
466
467   nems_internal_net:
468     type: OS::Contrail::VirtualNetwork
469     properties:
470       name: {get_param: nems_internal_name}
471
472   nems_internal_network_ip_subnet:
473     type: OS::Neutron::Subnet
474     properties:
475       name: {get_param: nems_internal_name}
476       allocation_pools: [{"start": {get_param: nems_internal_start}, "end": {get_param: nems_internal_end}}]
477       cidr: {get_param: nems_internal_cidr}
478       network_id: {get_resource: nems_internal_net}
479
480   nems_traffic_net:
481     type: OS::Contrail::VirtualNetwork
482     properties:
483       name: {get_param: nems_traffic_name}
484
485   nems_traffic_network_ip_subnet:
486     type: OS::Neutron::Subnet
487     properties:
488       name: {get_param: nems_traffic_name}
489       allocation_pools: [{"start": {get_param: nems_traffic_start}, "end": {get_param: nems_traffic_end}}]
490       cidr: {get_param: nems_traffic_cidr}
491       network_id: {get_resource: nems_traffic_net}
492
493   nems_user_web_net:
494     type: OS::Contrail::VirtualNetwork
495     properties:
496       name: {get_param: nems_user_web_name}
497
498   nems_user_web_network_ip_subnet:
499     type: OS::Neutron::Subnet
500     properties:
501       name: {get_param: nems_user_web_name}
502       allocation_pools: [{"start": {get_param: nems_user_web_start}, "end": {get_param: nems_user_web_end}}]
503       cidr: {get_param: nems_user_web_cidr}
504       network_id: {get_resource: nems_user_web_net}
505
506   nems_imap_net:
507     type: OS::Contrail::VirtualNetwork
508     properties:
509       name: {get_param: nems_imap_name}
510
511   nems_imap_network_ip_subnet:
512     type: OS::Neutron::Subnet
513     properties:
514       name: {get_param: nems_imap_name}
515       allocation_pools: [{"start": {get_param: nems_imap_start}, "end": {get_param: nems_imap_end}}]
516       cidr: {get_param: nems_imap_cidr}
517       network_id: {get_resource: nems_imap_net}
518
519   eca_traffic_net:
520     type: OS::Contrail::VirtualNetwork
521     properties:
522       name: {get_param: eca_traffic_name}
523
524   eca_traffic_ip_subnet:
525     type: OS::Neutron::Subnet
526     properties:
527       name: {get_param: eca_traffic_name}
528       allocation_pools: [{"start": {get_param: eca_traffic_start}, "end": {get_param: eca_traffic_end}}]
529       cidr: {get_param: eca_traffic_cidr}
530       network_id: {get_resource: eca_traffic_net}
531
532   ha_net:
533     type: OS::Contrail::VirtualNetwork
534     properties:
535       name: {get_param: ha_net_name}
536
537   ha_net_ip_subnet:
538     type: OS::Neutron::Subnet
539     properties:
540       name: {get_param: ha_net_name}
541       allocation_pools: [{"start": {get_param: ha_net_start}, "end": {get_param: ha_net_end}}]
542       cidr: {get_param: ha_net_cidr}
543       network_id: {get_resource: ha_net}
544
545   lb1_instance:
546     type: OS::Nova::Server
547     properties:
548       name: {get_param: [lb_names, 0]}
549       image: {get_param: lb_image_name}
550       flavor: {get_param: lb_flavor_name}
551       availability_zone: {get_param: availability_zone_0}
552       networks:
553         - port: {get_resource: lb1_mgmt_port}
554         - port: {get_resource: lb1_dmz_protected_port}
555         - port: {get_resource: lb1_cor_direct_port}
556         - port: {get_resource: lb1_mms_traffic_port}
557         - port: {get_resource: lb1_nems_traffic_port}
558         - port: {get_resource: lb1_nems_user_web_port}
559         - port: {get_resource: lb1_eca_traffic_port}
560         - port: {get_resource: lb1_ha_net_port}
561       metadata:
562         vnf_id: { get_param: vnf_id }
563
564   lb1_mgmt_port:
565     type: OS::Neutron::Port
566     properties:
567       network: {get_param: oam_net_name}
568       fixed_ips: [{"ip_address": {get_param: [lb_oam_ips, 0]}}]
569       security_groups: [{get_param: security_group_name}]
570       replacement_policy: AUTO
571
572   lb1_mms_traffic_port:
573     type: OS::Neutron::Port
574     properties:
575       network_id: {get_resource: mms_traffic_net}
576       fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip1}}]
577       allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }]
578       security_groups: [{get_param: security_group_name}]
579       replacement_policy: AUTO
580
581   lb1_dmz_protected_port:
582     type: OS::Neutron::Port
583     properties:
584       network: {get_param: dmz_protected_net_name}
585       fixed_ips: [{"ip_address": {get_param: [lb_dmz_protected_ips, 0]}}]
586       allowed_address_pairs: [{"ip_address": {get_param: [mmsc_dmz_protected_virtual_server_ips, 0]}}, {"ip_address": {get_param: [mmsc_dmz_protected_virtual_server_ips, 1]}}, {"ip_address": {get_param: [mmsc_dmz_protected_virtual_server_ips, 2]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 0]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 1]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 2]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 3]}}]
587       security_groups: [{get_param: security_group_name}]
588       replacement_policy: AUTO
589
590   lb1_cor_direct_port:
591     type: OS::Neutron::Port
592     properties:
593       network: {get_param: cor_direct_net_name}
594       fixed_ips: [{"ip_address": {get_param: [lb_cor_direct_ips, 0]}}]
595       allowed_address_pairs: [{"ip_address": {get_param: [mmsc_core_virtual_server_ips, 0]}}, {"ip_address": {get_param: [mmsc_core_virtual_server_ips, 1]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 0]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 1]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 2]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 3]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 4]}} ]
596       security_groups: [{get_param: security_group_name}]
597       replacement_policy: AUTO
598
599   lb1_nems_traffic_port:
600     type: OS::Neutron::Port
601     properties:
602       network_id: {get_resource: nems_traffic_net}
603       fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip1}}]
604       allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }]
605       security_groups: [{get_param: security_group_name}]
606       replacement_policy: AUTO
607
608   lb1_nems_user_web_port:
609     type: OS::Neutron::Port
610     properties:
611       network_id: {get_resource: nems_user_web_net}
612       fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip1}}]
613       allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }]
614       security_groups: [{get_param: security_group_name}]
615       replacement_policy: AUTO
616
617   lb1_ha_net_port:
618     type: OS::Neutron::Port
619     properties:
620       network_id: {get_resource: ha_net}
621       fixed_ips: [{"ip_address": {get_param: ha_net_local_ip1}}]
622       security_groups: [{get_param: security_group_name}]
623       replacement_policy: AUTO
624
625   lb1_eca_traffic_port:
626     type: OS::Neutron::Port
627     properties:
628       network_id: {get_resource: eca_traffic_net}
629       fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip1}}]
630       allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }]
631       security_groups: [{get_param: security_group_name}]
632       replacement_policy: AUTO
633
634   lb2_instance:
635     type: OS::Nova::Server
636     properties:
637       name: {get_param: [lb_names, 1]}
638       image: {get_param: lb_image_name}
639       flavor: {get_param: lb_flavor_name}
640       availability_zone: {get_param: availability_zone_0}
641       networks:
642         - port: {get_resource: lb2_mgmt_port}
643         - port: {get_resource: lb2_dmz_protected_port}
644         - port: {get_resource: lb2_cor_direct_port}
645         - port: {get_resource: lb2_mms_traffic_port}
646         - port: {get_resource: lb2_nems_traffic_port}
647         - port: {get_resource: lb2_nems_user_web_port}
648         - port: {get_resource: lb2_eca_traffic_port}
649         - port: {get_resource: lb2_ha_net_port}
650       metadata:
651         vnf_id: { get_param: vnf_id }
652
653   lb2_mgmt_port:
654     type: OS::Neutron::Port
655     properties:
656       network: {get_param: oam_net_name}
657       fixed_ips: [{"ip_address": {get_param: [lb_oam_ips, 1]}}]
658       security_groups: [{get_param: security_group_name}]
659       replacement_policy: AUTO
660
661   lb2_mms_traffic_port:
662     type: OS::Neutron::Port
663     properties:
664       network_id: {get_resource: mms_traffic_net}
665       fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip2}}]
666       allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip}}]
667       security_groups: [{get_param: security_group_name}]
668       replacement_policy: AUTO
669
670   lb2_dmz_protected_port:
671     type: OS::Neutron::Port
672     properties:
673       network: {get_param: dmz_protected_net_name}
674       fixed_ips: [{"ip_address": {get_param: [lb_dmz_protected_ips, 1]}}]
675       allowed_address_pairs: [{"ip_address": {get_param: [mmsc_dmz_protected_virtual_server_ips, 0]}}, {"ip_address": {get_param: [mmsc_dmz_protected_virtual_server_ips, 1]}}, {"ip_address": {get_param: [mmsc_dmz_protected_virtual_server_ips, 2]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 0]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 1]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 2]}}, {"ip_address": {get_param: [mmsc_dmz_protected_snat_ips, 3]}}]
676       security_groups: [{get_param: security_group_name}]
677       replacement_policy: AUTO
678
679   lb2_cor_direct_port:
680     type: OS::Neutron::Port
681     properties:
682       network: {get_param: cor_direct_net_name}
683       fixed_ips: [{"ip_address": {get_param: [lb_cor_direct_ips, 1]}}]
684       allowed_address_pairs: [{"ip_address": {get_param: [mmsc_core_virtual_server_ips, 0]}}, {"ip_address": {get_param: [mmsc_core_virtual_server_ips, 1]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 0]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 1]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 2]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 3]}}, {"ip_address": {get_param: [mmsc_core_snat_ips, 4]}} ]
685       security_groups: [{get_param: security_group_name}]
686       replacement_policy: AUTO
687
688   lb2_nems_traffic_port:
689     type: OS::Neutron::Port
690     properties:
691       network_id: {get_resource: nems_traffic_net}
692       fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip2}}]
693       allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip}}]
694       security_groups: [{get_param: security_group_name}]
695       replacement_policy: AUTO
696
697   lb2_nems_user_web_port:
698     type: OS::Neutron::Port
699     properties:
700       network_id: {get_resource: nems_user_web_net}
701       fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip2}}]
702       allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip}}]
703       security_groups: [{get_param: security_group_name}]
704       replacement_policy: AUTO
705
706   lb2_ha_net_port:
707     type: OS::Neutron::Port
708     properties:
709       network_id: {get_resource: ha_net}
710       fixed_ips: [{"ip_address": {get_param: ha_net_local_ip2}}]
711       security_groups: [{get_param: security_group_name}]
712       replacement_policy: AUTO
713
714   lb2_eca_traffic_port:
715     type: OS::Neutron::Port
716     properties:
717       network_id: {get_resource: eca_traffic_net}
718       fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip2}}]
719       allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }]
720       security_groups: [{get_param: security_group_name}]
721       replacement_policy: AUTO
722
723   server_mmsc1:
724     type: OS::Nova::Server
725     properties:
726       name: { get_param: [mmsc_names, 0]}
727       image: { get_param: mmsc_image }
728       availability_zone: { get_param: availability_zone_0 }
729       flavor: { get_param: mmsc_flavor }
730       networks:
731       - port: { get_resource: mmsc1_port_0 }
732       - port: { get_resource: mmsc1_port_1 }
733       metadata:
734         vnf_id: { get_param: vnf_id }
735       user_data:
736         str_replace:
737           template: |
738             mmsc.mgmt.ip=${mmsc.mgmt.ip}
739             mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
740             mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
741             mmsc.traffic.ip=${mmsc.traffic.ip}
742             mmsc.traffic.netmask=${mmsc.traffic.netmask}
743             mmsc.traffic.gateway=${mmsc.traffic.gateway}
744             mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
745             mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
746             mmsc.external.dns=${mmsc.external.dns}
747             mmsc.external.ntp=${mmsc.external.ntp}
748             mmsc.hostname=${mmsc.hostname}
749             mmsc.timezone=${mmsc.timezone}
750           params:
751             ${mmsc.mgmt.ip}: {get_param: [mmsc_oam_ips, 0]}
752             ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
753             ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
754             ${mmsc.traffic.ip}: {get_param:  [mmsc_mms_traffic_net_ips, 0]}
755             ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
756             ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
757             ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
758             ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
759             ${mmsc.external.dns}: {get_param: external_dns}
760             ${mmsc.external.ntp}: {get_param: external_ntp}
761             ${mmsc.hostname}: {get_param: [mmsc_names, 0]}
762             ${mmsc.timezone}: {get_param: timezone}
763       user_data_format: RAW
764
765   mmsc1_volume:
766     type: OS::Cinder::Volume
767     properties:
768       size: {get_param: mmsc_cinder_volume_size}
769       volume_type: {get_param: MMSC_volume_type}
770
771   mmsc1_volume_attachment:
772     type: OS::Cinder::VolumeAttachment
773     properties:
774       volume_id: {get_resource: mmsc1_volume}
775       instance_uuid: {get_resource: server_mmsc1}
776
777   mmsc1_port_0:
778     type: OS::Neutron::Port
779     properties:
780       network: {get_param: oam_net_name}
781       fixed_ips: [
782         "ip_address": {get_param: [mmsc_oam_ips, 0]}
783       ]
784       security_groups: [{get_param: security_group_name}]
785       replacement_policy: AUTO
786
787   mmsc1_port_1:
788     type: OS::Neutron::Port
789     properties:
790       network_id: {get_resource: mms_traffic_net}
791       fixed_ips: [
792         "ip_address": {get_param: [mmsc_mms_traffic_net_ips, 0]}
793       ]
794       security_groups: [{get_param: security_group_name}]
795       replacement_policy: AUTO
796   
797   server_mmsc2:
798     type: OS::Nova::Server
799     properties:
800       name: { get_param: [mmsc_names, 1]}
801       image: { get_param: mmsc_image }
802       availability_zone: { get_param: availability_zone_0 }
803       flavor: { get_param: mmsc_flavor }
804       networks:
805       - port: { get_resource: mmsc2_port_0 }
806       - port: { get_resource: mmsc2_port_1 }
807       metadata:
808         vnf_id: { get_param: vnf_id }
809       user_data:
810         str_replace:
811           template: |
812             mmsc.mgmt.ip=${mmsc.mgmt.ip}
813             mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
814             mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
815             mmsc.traffic.ip=${mmsc.traffic.ip}
816             mmsc.traffic.netmask=${mmsc.traffic.netmask}
817             mmsc.traffic.gateway=${mmsc.traffic.gateway}
818             mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
819             mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
820             mmsc.external.dns=${mmsc.external.dns}
821             mmsc.external.ntp=${mmsc.external.ntp}
822             mmsc.hostname=${mmsc.hostname}
823             mmsc.timezone=${mmsc.timezone}
824           params:
825             ${mmsc.mgmt.ip}: {get_param: [mmsc_oam_ips, 1]}
826             ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
827             ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
828             ${mmsc.traffic.ip}: {get_param: [mmsc_mms_traffic_net_ips, 1]}
829             ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
830             ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
831             ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
832             ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
833             ${mmsc.external.dns}: {get_param: external_dns}
834             ${mmsc.external.ntp}: {get_param: external_ntp} 
835             ${mmsc.hostname}: {get_param: [mmsc_names, 1]}
836             ${mmsc.timezone}: {get_param: timezone}
837       user_data_format: RAW
838
839   mmsc2_volume:
840     type: OS::Cinder::Volume
841     properties:
842       size: {get_param: mmsc_cinder_volume_size}
843       volume_type: {get_param: MMSC_volume_type}
844
845   mmsc2_volume_attachment:
846     type: OS::Cinder::VolumeAttachment
847     properties:
848       volume_id: {get_resource: mmsc2_volume}
849       instance_uuid: {get_resource: server_mmsc2}
850
851   mmsc2_port_0:
852     type: OS::Neutron::Port
853     properties:
854       network: {get_param: oam_net_name}
855       fixed_ips: [
856         "ip_address": {get_param: [mmsc_oam_ips, 1]}
857       ]
858       security_groups: [{get_param: security_group_name}]
859       replacement_policy: AUTO
860  
861   mmsc2_port_1:
862     type: OS::Neutron::Port
863     properties:
864       network_id: {get_resource: mms_traffic_net}
865       fixed_ips: [
866         "ip_address": {get_param: [mmsc_mms_traffic_net_ips, 1]}
867       ]
868       security_groups: [{get_param: security_group_name}]
869       replacement_policy: AUTO
870
871   server_mmsc3:
872     type: OS::Nova::Server
873     properties:
874       name: { get_param: [mmsc_names, 2]}
875       image: { get_param: mmsc_image }
876       availability_zone: { get_param: availability_zone_0 }
877       flavor: { get_param: mmsc_flavor }
878       networks:
879       - port: { get_resource: mmsc3_port_0 }
880       - port: { get_resource: mmsc3_port_1 }
881       metadata:
882         vnf_id: { get_param: vnf_id }
883       user_data:
884         str_replace:
885           template: |
886             mmsc.mgmt.ip=${mmsc.mgmt.ip}
887             mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
888             mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
889             mmsc.traffic.ip=${mmsc.traffic.ip}
890             mmsc.traffic.netmask=${mmsc.traffic.netmask}
891             mmsc.traffic.gateway=${mmsc.traffic.gateway}
892             mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
893             mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
894             mmsc.external.dns=${mmsc.external.dns}
895             mmsc.external.ntp=${mmsc.external.ntp}
896             mmsc.hostname=${mmsc.hostname}
897             mmsc.timezone=${mmsc.timezone}
898           params:
899             ${mmsc.mgmt.ip}: {get_param: [mmsc_oam_ips, 2]}
900             ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
901             ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
902             ${mmsc.traffic.ip}: {get_param:  [mmsc_mms_traffic_net_ips, 2]}
903             ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
904             ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
905             ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
906             ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
907             ${mmsc.external.dns}: {get_param: external_dns}
908             ${mmsc.external.ntp}: {get_param: external_ntp}
909             ${mmsc.hostname}: {get_param: [mmsc_names, 2]}
910             ${mmsc.timezone}: {get_param: timezone}
911       user_data_format: RAW
912
913   mmsc3_volume:
914     type: OS::Cinder::Volume
915     properties:
916       size: {get_param: mmsc_cinder_volume_size}
917       volume_type: {get_param: MMSC_volume_type}
918
919   mmsc3_volume_attachment:
920     type: OS::Cinder::VolumeAttachment
921     properties:
922       volume_id: {get_resource: mmsc3_volume}
923       instance_uuid: {get_resource: server_mmsc3}
924
925   mmsc3_port_0:
926     type: OS::Neutron::Port
927     properties:
928       network: {get_param: oam_net_name}
929       fixed_ips: [
930         "ip_address": {get_param: [mmsc_oam_ips, 2]}
931       ]
932       security_groups: [{get_param: security_group_name}]
933       replacement_policy: AUTO
934
935   mmsc3_port_1:
936     type: OS::Neutron::Port
937     properties:
938       network_id: {get_resource: mms_traffic_net}
939       fixed_ips: [
940         "ip_address": {get_param: [mmsc_mms_traffic_net_ips, 2]}
941       ]
942       security_groups: [{get_param: security_group_name}]
943       replacement_policy: AUTO
944   
945   server_mmsc4:
946     type: OS::Nova::Server
947     properties:
948       name: { get_param: [mmsc_names, 3]}
949       image: { get_param: mmsc_image }
950       availability_zone: { get_param: availability_zone_0 }
951       flavor: { get_param: mmsc_flavor }
952       networks:
953       - port: { get_resource: mmsc4_port_0 }
954       - port: { get_resource: mmsc4_port_1 }
955       metadata:
956         vnf_id: { get_param: vnf_id }
957       user_data:
958         str_replace:
959           template: |
960             mmsc.mgmt.ip=${mmsc.mgmt.ip}
961             mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
962             mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
963             mmsc.traffic.ip=${mmsc.traffic.ip}
964             mmsc.traffic.netmask=${mmsc.traffic.netmask}
965             mmsc.traffic.gateway=${mmsc.traffic.gateway}
966             mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
967             mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
968             mmsc.external.dns=${mmsc.external.dns}
969             mmsc.external.ntp=${mmsc.external.ntp}
970             mmsc.hostname=${mmsc.hostname}
971             mmsc.timezone=${mmsc.timezone}
972           params:
973             ${mmsc.mgmt.ip}: {get_param: [mmsc_oam_ips, 3]}
974             ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
975             ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
976             ${mmsc.traffic.ip}: {get_param: [mmsc_mms_traffic_net_ips, 3]}
977             ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
978             ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
979             ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
980             ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
981             ${mmsc.external.dns}: {get_param: external_dns}
982             ${mmsc.external.ntp}: {get_param: external_ntp} 
983             ${mmsc.hostname}: {get_param: [mmsc_names, 3]}
984             ${mmsc.timezone}: {get_param: timezone}
985       user_data_format: RAW
986
987   mmsc4_volume:
988     type: OS::Cinder::Volume
989     properties:
990       size: {get_param: mmsc_cinder_volume_size}
991       volume_type: {get_param: MMSC_volume_type}
992
993   mmsc4_volume_attachment:
994     type: OS::Cinder::VolumeAttachment
995     properties:
996       volume_id: {get_resource: mmsc4_volume}
997       instance_uuid: {get_resource: server_mmsc4}
998
999   mmsc4_port_0:
1000     type: OS::Neutron::Port
1001     properties:
1002       network: {get_param: oam_net_name}
1003       fixed_ips: [
1004         "ip_address": {get_param: [mmsc_oam_ips, 3]}
1005       ]
1006       security_groups: [{get_param: security_group_name}]
1007       replacement_policy: AUTO
1008  
1009   mmsc4_port_1:
1010     type: OS::Neutron::Port
1011     properties:
1012       network_id: {get_resource: mms_traffic_net}
1013       fixed_ips: [
1014         "ip_address": {get_param: [mmsc_mms_traffic_net_ips, 3]}
1015       ]
1016       security_groups: [{get_param: security_group_name}]
1017       replacement_policy: AUTO
1018
1019   server_mmsc5:
1020     type: OS::Nova::Server
1021     properties:
1022       name: { get_param: [mmsc_names, 4]}
1023       image: { get_param: mmsc_image }
1024       availability_zone: { get_param: availability_zone_0 }
1025       flavor: { get_param: mmsc_flavor }
1026       networks:
1027       - port: { get_resource: mmsc5_port_0 }
1028       - port: { get_resource: mmsc5_port_1 }
1029       metadata:
1030         vnf_id: { get_param: vnf_id }
1031       user_data:
1032         str_replace:
1033           template: |
1034             mmsc.mgmt.ip=${mmsc.mgmt.ip}
1035             mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
1036             mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
1037             mmsc.traffic.ip=${mmsc.traffic.ip}
1038             mmsc.traffic.netmask=${mmsc.traffic.netmask}
1039             mmsc.traffic.gateway=${mmsc.traffic.gateway}
1040             mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
1041             mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
1042             mmsc.external.dns=${mmsc.external.dns}
1043             mmsc.external.ntp=${mmsc.external.ntp}
1044             mmsc.hostname=${mmsc.hostname}
1045             mmsc.timezone=${mmsc.timezone}
1046           params:
1047             ${mmsc.mgmt.ip}: {get_param: [mmsc_oam_ips, 4]}
1048             ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
1049             ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
1050             ${mmsc.traffic.ip}: {get_param: [mmsc_mms_traffic_net_ips, 4]}
1051             ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
1052             ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
1053             ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
1054             ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
1055             ${mmsc.external.dns}: {get_param: external_dns}
1056             ${mmsc.external.ntp}: {get_param: external_ntp} 
1057             ${mmsc.hostname}: {get_param: [mmsc_names, 4]}
1058             ${mmsc.timezone}: {get_param: timezone}
1059       user_data_format: RAW
1060
1061   mmsc5_volume:
1062     type: OS::Cinder::Volume
1063     properties:
1064       size: {get_param: mmsc_cinder_volume_size}
1065       volume_type: {get_param: MMSC_volume_type}
1066
1067   mmsc5_volume_attachment:
1068     type: OS::Cinder::VolumeAttachment
1069     properties:
1070       volume_id: {get_resource: mmsc5_volume}
1071       instance_uuid: {get_resource: server_mmsc5}
1072
1073   mmsc5_port_0:
1074     type: OS::Neutron::Port
1075     properties:
1076       network: {get_param: oam_net_name}
1077       fixed_ips: [
1078         "ip_address": {get_param: [mmsc_oam_ips, 4]}
1079       ]
1080       security_groups: [{get_param: security_group_name}]
1081       replacement_policy: AUTO
1082  
1083   mmsc5_port_1:
1084     type: OS::Neutron::Port
1085     properties:
1086       network_id: {get_resource: mms_traffic_net}
1087       fixed_ips: [
1088         "ip_address": {get_param: [mmsc_mms_traffic_net_ips, 4]}
1089       ]
1090       security_groups: [{get_param: security_group_name}]
1091       replacement_policy: AUTO
1092
1093   server_nems_fe1:
1094     type: OS::Nova::Server
1095     properties:
1096       name: { get_param: [nems_fe_names, 0] }
1097       image: { get_param: nems_fe_image }
1098       availability_zone: { get_param: availability_zone_0 }
1099       flavor: { get_param: nems_fe_flavor }
1100       networks:
1101       - port: { get_resource: nems_fe1_port_0 }
1102       - port: { get_resource: nems_fe1_port_1 }
1103       - port: { get_resource: nems_fe1_port_2 }
1104       - port: { get_resource: nems_fe1_port_3 }
1105       - port: { get_resource: nems_fe1_port_4 }
1106       metadata:
1107         vnf_id: { get_param: vnf_id }
1108       user_data:
1109         str_replace:
1110           template: |
1111             nems.mgmt.ip=${nems.mgmt.ip}
1112             nems.mgmt.netmask=${nems.mgmt.netmask}
1113             nems.mgmt.gateway=${nems.mgmt.gateway}
1114             nems.traffic.ip=${nems.traffic.ip}
1115             nems.traffic.netmask=${nems.traffic.netmask}
1116             nems.traffic.gateway=${nems.traffic.gateway}
1117             nems.fe0.internal.ip=${nems.fe0.internal.ip}
1118             nems.fe1.internal.ip=${nems.fe1.internal.ip}
1119             nems.internal.netmask=${nems.internal.netmask}
1120             nems.userweb.ip=${nems.userweb.ip}
1121             nems.userweb.netmask=${nems.userweb.netmask}
1122             nems.userweb.gateway=${nems.userweb.gateway}
1123             nems.imap.ip=${nems.imap.ip}
1124             nems.imap.netmask=${nems.imap.netmask}
1125             nems.be.internal.ip=${nems.be.internal.ip}
1126             nems.be.imap.ip=${nems.be.imap.ip}
1127             nems.mgmt.route.1=${nems.mgmt.route.1}
1128             nems.mgmt.route.2=${nems.mgmt.route.2}
1129             nems.external.dns=${nems.external.dns}
1130             nems.external.ntp=${nems.external.ntp}
1131             nems.node=${nems.node}
1132             nems.be0.host.name=${nems.be0.host.name}
1133             nems.fe0.host.name=${nems.fe0.host.name}
1134             nems.fe1.host.name=${nems.fe1.host.name}
1135             nems.timezone=${nems.timezone}
1136           params:
1137             ${nems.mgmt.ip}: {get_param: [nems_fe_oam_ips, 0]}
1138             ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
1139             ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
1140             ${nems.traffic.ip}: {get_param: [nems_fe_nems_traffic_net_ips, 0]}
1141             ${nems.traffic.netmask}: {get_param: nems_traffic_netmask}
1142             ${nems.traffic.gateway}: {get_param: nems_traffic_gateway}
1143             ${nems.fe0.internal.ip}: {get_param: [nems_fe_nems_internal_net_ips, 0]}
1144             ${nems.fe1.internal.ip}: {get_param: [nems_fe_nems_internal_net_ips, 1]}
1145             ${nems.internal.netmask}: {get_param: nems_internal_netmask}
1146             ${nems.userweb.ip}: {get_param: [nems_fe_nems_user_web_net_ips, 0]}
1147             ${nems.userweb.netmask}: {get_param: nems_user_web_netmask}
1148             ${nems.userweb.gateway}: {get_param: nems_user_web_gateway}
1149             ${nems.imap.ip}: {get_param: [nems_fe_nems_imap_net_ips, 0]}
1150             ${nems.imap.netmask}: {get_param: nems_imap_netmask}       
1151             ${nems.be.internal.ip}: {get_param: nems_be_nems_internal_net_ips}
1152             ${nems.be.imap.ip}: {get_param: nems_be_nems_imap_net_ips}
1153             ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
1154             ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
1155             ${nems.external.dns}: {get_param: external_dns}
1156             ${nems.external.ntp}: {get_param: external_ntp}
1157             ${nems.node}: {get_param: [nems_fe_node_roles, 0]} 
1158             ${nems.fe0.host.name}: {get_param: [nems_fe_names, 0]}
1159             ${nems.fe1.host.name}: {get_param: [nems_fe_names, 1]}
1160             ${nems.be0.host.name}: {get_param: nems_be_names}
1161             ${nems.timezone}: {get_param: timezone}
1162       user_data_format: RAW
1163  
1164   nems1_fe_volume:
1165     type: OS::Cinder::Volume
1166     properties:
1167       size: {get_param: nems_volume_size}
1168       volume_type: {get_param: NEMS_FE_volume_type}
1169  
1170   nems1_fe_volume_attachment:
1171     type: OS::Cinder::VolumeAttachment
1172     properties:
1173       volume_id: {get_resource: nems1_fe_volume}
1174       instance_uuid: {get_resource: server_nems_fe1}
1175
1176   nems_fe1_port_0:
1177     type: OS::Neutron::Port
1178     properties:
1179       network: {get_param: oam_net_name}
1180       fixed_ips: [
1181         "ip_address": { get_param: [nems_fe_oam_ips, 0] }
1182       ]
1183       security_groups: [{get_param: security_group_name}]
1184       replacement_policy: AUTO
1185
1186   nems_fe1_port_1:
1187     type: OS::Neutron::Port
1188     properties:
1189       network_id: { get_resource: nems_traffic_net }
1190       fixed_ips: [
1191         "ip_address": { get_param: [nems_fe_nems_traffic_net_ips, 0] }
1192       ]
1193       security_groups: [{get_param: security_group_name}]
1194       replacement_policy: AUTO
1195
1196   nems_fe1_port_2:
1197     type: OS::Neutron::Port
1198     properties:
1199       network_id: { get_resource: nems_user_web_net }
1200       fixed_ips: [
1201         "ip_address": { get_param: [nems_fe_nems_user_web_net_ips, 0] }
1202       ]
1203       security_groups: [{get_param: security_group_name}]
1204       replacement_policy: AUTO
1205
1206   nems_fe1_port_3:
1207     type: OS::Neutron::Port
1208     properties:
1209       network_id: { get_resource: nems_internal_net }
1210       fixed_ips: [
1211         "ip_address": { get_param: [nems_fe_nems_internal_net_ips, 0] }
1212       ]
1213       security_groups: [{get_param: security_group_name}]
1214       replacement_policy: AUTO
1215
1216   nems_fe1_port_4:
1217     type: OS::Neutron::Port
1218     properties:
1219       network_id: { get_resource: nems_imap_net }
1220       fixed_ips: [
1221         "ip_address": { get_param: [nems_fe_nems_imap_net_ips, 0] }
1222       ]
1223       security_groups: [{get_param: security_group_name}]
1224       replacement_policy: AUTO
1225
1226   server_nems_fe2:
1227     type: OS::Nova::Server
1228     properties:
1229       name: { get_param: [nems_fe_names, 1] }
1230       image: { get_param: nems_fe_image }
1231       availability_zone: { get_param: availability_zone_0 }
1232       flavor: { get_param: nems_fe_flavor }
1233       networks:
1234       - port: { get_resource: nems_fe2_port_0 }
1235       - port: { get_resource: nems_fe2_port_1 }
1236       - port: { get_resource: nems_fe2_port_2 }
1237       - port: { get_resource: nems_fe2_port_3 }
1238       - port: { get_resource: nems_fe2_port_4 }
1239       metadata:
1240         vnf_id: { get_param: vnf_id }
1241       user_data:
1242         str_replace:
1243           template: |
1244             nems.mgmt.ip=${nems.mgmt.ip}
1245             nems.mgmt.netmask=${nems.mgmt.netmask}
1246             nems.mgmt.gateway=${nems.mgmt.gateway}
1247             nems.traffic.ip=${nems.traffic.ip}
1248             nems.traffic.netmask=${nems.traffic.netmask}
1249             nems.traffic.gateway=${nems.traffic.gateway}
1250             nems.fe0.internal.ip=${nems.fe0.internal.ip}
1251             nems.fe1.internal.ip=${nems.fe1.internal.ip}
1252             nems.internal.netmask=${nems.internal.netmask}
1253             nems.userweb.ip=${nems.userweb.ip}
1254             nems.userweb.netmask=${nems.userweb.netmask}
1255             nems.userweb.gateway=${nems.userweb.gateway}
1256             nems.imap.ip=${nems.imap.ip}
1257             nems.imap.netmask=${nems.imap.netmask}
1258             nems.be.internal.ip=${nems.be.internal.ip}
1259             nems.be.imap.ip=${nems.be.imap.ip}
1260             nems.mgmt.route.1=${nems.mgmt.route.1}
1261             nems.mgmt.route.2=${nems.mgmt.route.2}
1262             nems.external.dns=${nems.external.dns}
1263             nems.external.ntp=${nems.external.ntp}
1264             nems.node=${nems.node}
1265             nems.be0.host.name=${nems.be0.host.name}
1266             nems.fe0.host.name=${nems.fe0.host.name}
1267             nems.fe1.host.name=${nems.fe1.host.name}
1268             nems.timezone=${nems.timezone}
1269           params:
1270             ${nems.mgmt.ip}: {get_param: [nems_fe_oam_ips, 1]}
1271             ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
1272             ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
1273             ${nems.traffic.ip}: {get_param: [nems_fe_nems_traffic_net_ips, 1]}
1274             ${nems.traffic.netmask}: {get_param: nems_traffic_netmask}
1275             ${nems.traffic.gateway}: {get_param: nems_traffic_gateway}
1276             ${nems.fe0.internal.ip}: {get_param: [nems_fe_nems_internal_net_ips, 0]}
1277             ${nems.fe1.internal.ip}: {get_param: [nems_fe_nems_internal_net_ips, 1]}
1278             ${nems.internal.netmask}: {get_param: nems_internal_netmask}
1279             ${nems.userweb.ip}: {get_param: [nems_fe_nems_user_web_net_ips, 1]}
1280             ${nems.userweb.netmask}: {get_param: nems_user_web_netmask}
1281             ${nems.userweb.gateway}: {get_param: nems_user_web_gateway}
1282             ${nems.imap.ip}: {get_param: [nems_fe_nems_imap_net_ips, 1]}
1283             ${nems.imap.netmask}: {get_param: nems_imap_netmask}
1284             ${nems.be.internal.ip}: {get_param: nems_be_nems_internal_net_ips}
1285             ${nems.be.imap.ip}: {get_param: nems_be_nems_imap_net_ips}
1286             ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
1287             ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
1288             ${nems.external.dns}: {get_param: external_dns}
1289             ${nems.external.ntp}: {get_param: external_ntp}
1290             ${nems.node}: {get_param: [nems_fe_node_roles, 1]}
1291             ${nems.fe0.host.name}: {get_param: [nems_fe_names, 0]}
1292             ${nems.fe1.host.name}: {get_param: [nems_fe_names, 1]}
1293             ${nems.be0.host.name}: {get_param: nems_be_names}
1294             ${nems.timezone}: {get_param: timezone}
1295       user_data_format: RAW
1296
1297   nems2_fe_volume:
1298     type: OS::Cinder::Volume
1299     properties:
1300       size: {get_param: nems_volume_size}
1301       volume_type: {get_param: NEMS_FE_volume_type}
1302  
1303   nems2_fe_volume_attachment:
1304     type: OS::Cinder::VolumeAttachment
1305     properties:
1306       volume_id: {get_resource: nems2_fe_volume}
1307       instance_uuid: {get_resource: server_nems_fe2}
1308
1309   nems_fe2_port_0:
1310     type: OS::Neutron::Port
1311     properties:
1312       network: {get_param: oam_net_name}
1313       fixed_ips: [
1314         "ip_address": {get_param: [nems_fe_oam_ips, 1]}
1315       ]
1316       security_groups: [{get_param: security_group_name}]
1317       replacement_policy: AUTO
1318
1319   nems_fe2_port_1:
1320     type: OS::Neutron::Port
1321     properties:
1322       network_id: { get_resource: nems_traffic_net }
1323       fixed_ips: [
1324         "ip_address": { get_param: [nems_fe_nems_traffic_net_ips, 1] }
1325       ]
1326       security_groups: [{get_param: security_group_name}]
1327       replacement_policy: AUTO
1328
1329   nems_fe2_port_2:
1330     type: OS::Neutron::Port
1331     properties:
1332       network_id: { get_resource: nems_user_web_net }
1333       fixed_ips: [
1334         "ip_address": { get_param: [nems_fe_nems_user_web_net_ips, 1] }
1335       ]
1336       security_groups: [{get_param: security_group_name}]
1337       replacement_policy: AUTO
1338
1339   nems_fe2_port_3:
1340     type: OS::Neutron::Port
1341     properties:
1342       network_id: { get_resource: nems_internal_net }
1343       fixed_ips: [
1344         "ip_address": { get_param: [nems_fe_nems_internal_net_ips, 1] }
1345       ]
1346       security_groups: [{get_param: security_group_name}]
1347       replacement_policy: AUTO
1348
1349
1350   nems_fe2_port_4:
1351     type: OS::Neutron::Port
1352     properties:
1353       network_id: { get_resource: nems_imap_net }
1354       fixed_ips: [
1355         "ip_address": { get_param: [nems_fe_nems_imap_net_ips, 1] }
1356       ]
1357       security_groups: [{get_param: security_group_name}]
1358       replacement_policy: AUTO
1359
1360   server_nems_be1:
1361     type: OS::Nova::Server
1362     properties:
1363       name: { get_param: nems_be_names }
1364       image: { get_param: nems_be_image }
1365       availability_zone: { get_param: availability_zone_0 }
1366       flavor: { get_param: nems_be_flavor }
1367       networks:
1368       - port: { get_resource: nems_be1_port_0 }
1369       - port: { get_resource: nems_be1_port_1 }
1370       - port: { get_resource: nems_be1_port_2 }
1371       metadata:
1372         vnf_id: { get_param: vnf_id }
1373       user_data:
1374         str_replace:
1375           template: |
1376             nems.be.mgmt.ip=${nems.be.mgmt.ip}
1377             nems.mgmt.netmask=${nems.mgmt.netmask}
1378             nems.mgmt.gateway=${nems.mgmt.gateway}
1379             nems.be.internal.ip=${nems.be.internal.ip}
1380             nems.internal.netmask=${nems.internal.netmask}
1381             nems.imap.netmask=${nems.imap.netmask}
1382             nems.fe0.internal.ip=${nems.fe0.internal.ip}
1383             nems.fe1.internal.ip=${nems.fe1.internal.ip}
1384             nems.be.imap.ip=${nems.be.imap.ip}
1385             nems.mgmt.route.1=${nems.mgmt.route.1}
1386             nems.mgmt.route.2=${nems.mgmt.route.2}
1387             nems.external.dns=${nems.external.dns}
1388             nems.external.ntp=${nems.external.ntp}
1389             nems.node=${nems.node}
1390             nems.be0.host.name=${nems.be0.host.name}
1391             nems.fe0.host.name=${nems.fe0.host.name}
1392             nems.fe1.host.name=${nems.fe1.host.name}
1393             nems.timezone=${nems.timezone}
1394           params:
1395             ${nems.be.mgmt.ip}: {get_param: nems_be_oam_ips}
1396             ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
1397             ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
1398             ${nems.fe0.internal.ip}: {get_param: [nems_fe_nems_internal_net_ips, 0]}
1399             ${nems.fe1.internal.ip}: {get_param: [nems_fe_nems_internal_net_ips, 1]}
1400             ${nems.be.internal.ip}: {get_param: nems_be_nems_internal_net_ips}
1401             ${nems.internal.netmask}: {get_param: nems_internal_netmask}
1402             ${nems.imap.netmask}: {get_param: nems_imap_netmask}
1403             ${nems.be.imap.ip}: {get_param: nems_be_nems_imap_net_ips}
1404             ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
1405             ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
1406             ${nems.external.dns}: {get_param: external_dns}
1407             ${nems.external.ntp}: {get_param: external_ntp}
1408             ${nems.node}: {get_param: nems_be_node_roles}
1409             ${nems.be0.host.name}: {get_param: nems_be_names}
1410             ${nems.fe0.host.name}: {get_param: [nems_fe_names, 0]}
1411             ${nems.fe1.host.name}: {get_param: [nems_fe_names, 1]}
1412             ${nems.timezone}: {get_param: timezone} 
1413       user_data_format: RAW
1414
1415   nems_be_volume:
1416     type: OS::Cinder::Volume
1417     properties:
1418       size: {get_param: nems_be_volume_size}
1419       volume_type: {get_param: NEMS_BE_volume_type}
1420
1421   nems_volume_attachment:
1422     type: OS::Cinder::VolumeAttachment
1423     properties: 
1424       volume_id: {get_resource: nems_be_volume}
1425       instance_uuid: {get_resource: server_nems_be1} 
1426
1427
1428   nems_be1_port_0:
1429     type: OS::Neutron::Port
1430     properties:
1431       network: {get_param: oam_net_name}
1432       fixed_ips: [
1433         "ip_address": { get_param: nems_be_oam_ips}
1434       ]
1435       security_groups: [{get_param: security_group_name}]
1436       replacement_policy: AUTO
1437
1438   nems_be1_port_1:
1439     type: OS::Neutron::Port
1440     properties:
1441       network_id: { get_resource: nems_internal_net }
1442       fixed_ips: [
1443         "ip_address": { get_param: nems_be_nems_internal_net_ips}
1444       ]
1445       security_groups: [{get_param: security_group_name}]
1446       replacement_policy: AUTO
1447
1448   nems_be1_port_2:
1449     type: OS::Neutron::Port
1450     properties:
1451       network_id: { get_resource: nems_imap_net }
1452       fixed_ips: [
1453         "ip_address": { get_param: nems_be_nems_imap_net_ips}
1454       ]
1455       security_groups: [{get_param: security_group_name}]
1456       replacement_policy: AUTO
1457
1458   server_eca_trx1:
1459     type: OS::Nova::Server
1460     properties:
1461       name: { get_param: [eca_trx_names, 0]}
1462       image: { get_param: eca_trx_image }
1463       availability_zone: { get_param: availability_zone_0 }
1464       flavor: { get_param: eca_trx_flavor }
1465       networks:
1466       - port: { get_resource: eca_trx1_port_0 }
1467       - port: { get_resource: eca_trx1_port_1 }
1468       - port: { get_resource: eca_trx1_port_2 }
1469       metadata:
1470         vnf_id: { get_param: vnf_id }
1471       user_data:
1472         str_replace:
1473           template: |
1474             #!/bin/bash
1475             touch /tmp/user_data.log
1476             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
1477             echo "172.26.8.6 puppet" > /etc/hosts
1478             eth0_ip_address='trx_traf_ip_address'
1479             eth0_gateway='172.26.5.3'
1480             echo "$eth0_ip_address" >>/tmp/user_data.log
1481             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
1482               if [ "$interface" != "lo" ]; then
1483                 DEVICE_NAME=$interface
1484                 interface_ip_var="${DEVICE_NAME}_ip_address" 
1485                 gateway_var="${DEVICE_NAME}_gateway"
1486                 var_name="$interface_ip_var"
1487                 var_gateway="$gateway_var"
1488                 if [ ! -z ${!var_name} ]; then
1489                   IPADDR=${!var_name}
1490                   BOOTPROTO="static"
1491                   GATEWAY=${!var_gateway}
1492                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
1493                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
1494                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
1495                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
1496                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
1497                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1498                 else
1499                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
1500                     echo "Configuring $DEVICE_NAME to use DHCP"
1501                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
1502                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
1503                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1504                   fi
1505                 fi
1506                 ifdown $DEVICE_NAME
1507                 ifup $DEVICE_NAME
1508                 printf "$DEVICE_NAME\n" >> /tmp/network_config
1509               fi
1510             done
1511             puppet agent -t > /root/puppet-agent-t.out
1512           params:
1513             trx_hostname: {get_param: [eca_trx_names, 0]}
1514             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 0]}
1515   
1516   eca_trx1_port_0:
1517     type: OS::Neutron::Port
1518     properties:
1519       network: { get_param: oam_net_name }
1520       fixed_ips: [
1521         "ip_address": { get_param: [eca_trx_oam_ips, 0] }
1522       ]
1523       security_groups: [{get_param: security_group_name}]
1524       replacement_policy: AUTO
1525
1526   eca_trx1_port_1:
1527     type: OS::Neutron::Port
1528     properties:
1529       network: { get_param: eca_mgmt_net_name }
1530       fixed_ips: [
1531         "ip_address": { get_param: [eca_trx_mgmt_ips, 0] }
1532       ]
1533       security_groups: [{get_param: security_group_name}]
1534       replacement_policy: AUTO
1535
1536   eca_trx1_port_2:
1537     type: OS::Neutron::Port
1538     properties:
1539       network_id: { get_resource: eca_traffic_net }
1540       fixed_ips: [
1541         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 0] }
1542       ]
1543       security_groups: [{get_param: security_group_name}]
1544       replacement_policy: AUTO
1545       
1546
1547   server_eca_trx2:
1548     type: OS::Nova::Server
1549     properties:
1550       name: { get_param: [eca_trx_names, 1]}
1551       image: { get_param: eca_trx_image }
1552       availability_zone: { get_param: availability_zone_0 }
1553       flavor: { get_param: eca_trx_flavor }
1554       networks:
1555       - port: { get_resource: eca_trx2_port_0 }
1556       - port: { get_resource: eca_trx2_port_1 }
1557       - port: { get_resource: eca_trx2_port_2 }
1558       metadata:
1559         vnf_id: { get_param: vnf_id }
1560       user_data:
1561         str_replace:
1562           template: |
1563             #!/bin/bash
1564             touch /tmp/user_data.log
1565             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
1566             echo "172.26.8.6 puppet" > /etc/hosts
1567             eth0_ip_address='trx_traf_ip_address'
1568             eth0_gateway='172.26.5.3'
1569             echo "$eth0_ip_address" >>/tmp/user_data.log
1570             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
1571               if [ "$interface" != "lo" ]; then
1572                 DEVICE_NAME=$interface
1573                 interface_ip_var="${DEVICE_NAME}_ip_address" 
1574                 gateway_var="${DEVICE_NAME}_gateway"
1575                 var_name="$interface_ip_var"
1576                 var_gateway="$gateway_var"
1577                 if [ ! -z ${!var_name} ]; then
1578                   IPADDR=${!var_name}
1579                   BOOTPROTO="static"
1580                   GATEWAY=${!var_gateway}
1581                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
1582                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
1583                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
1584                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
1585                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
1586                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1587                 else
1588                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
1589                     echo "Configuring $DEVICE_NAME to use DHCP"
1590                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
1591                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
1592                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1593                   fi
1594                 fi
1595                 ifdown $DEVICE_NAME
1596                 ifup $DEVICE_NAME
1597                 printf "$DEVICE_NAME\n" >> /tmp/network_config
1598               fi
1599             done
1600             puppet agent -t > /root/puppet-agent-t.out
1601           params:
1602             trx_hostname: {get_param: [eca_trx_names, 1]}
1603             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 1]}
1604
1605   eca_trx2_port_0:
1606     type: OS::Neutron::Port
1607     properties:
1608       network: { get_param: oam_net_name }
1609       fixed_ips: [
1610         "ip_address": { get_param: [eca_trx_oam_ips, 1] }
1611       ]
1612       security_groups: [{get_param: security_group_name}]
1613       replacement_policy: AUTO
1614
1615   eca_trx2_port_1:
1616     type: OS::Neutron::Port
1617     properties:
1618       network: { get_param: eca_mgmt_net_name }
1619       fixed_ips: [
1620         "ip_address": { get_param: [eca_trx_mgmt_ips, 1] }
1621       ]
1622       security_groups: [{get_param: security_group_name}]
1623       replacement_policy: AUTO
1624
1625   eca_trx2_port_2:
1626     type: OS::Neutron::Port
1627     properties:
1628       network_id: { get_resource: eca_traffic_net }
1629       fixed_ips: [
1630         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 1] }
1631       ]
1632       security_groups: [{get_param: security_group_name}]
1633       replacement_policy: AUTO
1634
1635   server_eca_trx3:
1636     type: OS::Nova::Server
1637     properties:
1638       name: { get_param: [eca_trx_names, 2]}
1639       image: { get_param: eca_trx_image }
1640       availability_zone: { get_param: availability_zone_0 }
1641       flavor: { get_param: eca_trx_flavor }
1642       networks:
1643       - port: { get_resource: eca_trx3_port_0 }
1644       - port: { get_resource: eca_trx3_port_1 }
1645       - port: { get_resource: eca_trx3_port_2 }
1646       metadata:
1647         vnf_id: { get_param: vnf_id }
1648       user_data:
1649         str_replace:
1650           template: |
1651             #!/bin/bash
1652             touch /tmp/user_data.log
1653             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
1654             echo "172.26.8.6 puppet" > /etc/hosts
1655             eth0_ip_address='trx_traf_ip_address'
1656             eth0_gateway='172.26.5.3'
1657             echo "$eth0_ip_address" >>/tmp/user_data.log
1658             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
1659               if [ "$interface" != "lo" ]; then
1660                 DEVICE_NAME=$interface
1661                 interface_ip_var="${DEVICE_NAME}_ip_address" 
1662                 gateway_var="${DEVICE_NAME}_gateway"
1663                 var_name="$interface_ip_var"
1664                 var_gateway="$gateway_var"
1665                 if [ ! -z ${!var_name} ]; then
1666                   IPADDR=${!var_name}
1667                   BOOTPROTO="static"
1668                   GATEWAY=${!var_gateway}
1669                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
1670                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
1671                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
1672                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
1673                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
1674                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1675                 else
1676                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
1677                     echo "Configuring $DEVICE_NAME to use DHCP"
1678                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
1679                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
1680                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1681                   fi
1682                 fi
1683                 ifdown $DEVICE_NAME
1684                 ifup $DEVICE_NAME
1685                 printf "$DEVICE_NAME\n" >> /tmp/network_config
1686               fi
1687             done
1688             puppet agent -t > /root/puppet-agent-t.out
1689           params:
1690             trx_hostname: {get_param: [eca_trx_names, 2]}
1691             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 2]}
1692   
1693   eca_trx3_port_0:
1694     type: OS::Neutron::Port
1695     properties:
1696       network: { get_param: oam_net_name }
1697       fixed_ips: [
1698         "ip_address": { get_param: [eca_trx_oam_ips, 2] }
1699       ]
1700       security_groups: [{get_param: security_group_name}]
1701       replacement_policy: AUTO
1702
1703   eca_trx3_port_1:
1704     type: OS::Neutron::Port
1705     properties:
1706       network: { get_param: eca_mgmt_net_name }
1707       fixed_ips: [
1708         "ip_address": { get_param: [eca_trx_mgmt_ips, 2] }
1709       ]
1710       security_groups: [{get_param: security_group_name}]
1711       replacement_policy: AUTO
1712
1713   eca_trx3_port_2:
1714     type: OS::Neutron::Port
1715     properties:
1716       network_id: { get_resource: eca_traffic_net }
1717       fixed_ips: [
1718         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 2] }
1719       ]
1720       security_groups: [{get_param: security_group_name}]
1721       replacement_policy: AUTO
1722
1723   server_eca_trx4:
1724     type: OS::Nova::Server
1725     properties:
1726       name: { get_param: [eca_trx_names, 3]}
1727       image: { get_param: eca_trx_image }
1728       availability_zone: { get_param: availability_zone_0 }
1729       flavor: { get_param: eca_trx_flavor }
1730       networks:
1731       - port: { get_resource: eca_trx4_port_0 }
1732       - port: { get_resource: eca_trx4_port_1 }
1733       - port: { get_resource: eca_trx4_port_2 }
1734       metadata:
1735         vnf_id: { get_param: vnf_id }
1736       user_data:
1737         str_replace:
1738           template: |
1739             #!/bin/bash
1740             touch /tmp/user_data.log
1741             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
1742             echo "172.26.8.6 puppet" > /etc/hosts
1743             eth0_ip_address='trx_traf_ip_address'
1744             eth0_gateway='172.26.5.3'
1745             echo "$eth0_ip_address" >>/tmp/user_data.log
1746             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
1747               if [ "$interface" != "lo" ]; then
1748                 DEVICE_NAME=$interface
1749                 interface_ip_var="${DEVICE_NAME}_ip_address" 
1750                 gateway_var="${DEVICE_NAME}_gateway"
1751                 var_name="$interface_ip_var"
1752                 var_gateway="$gateway_var"
1753                 if [ ! -z ${!var_name} ]; then
1754                   IPADDR=${!var_name}
1755                   BOOTPROTO="static"
1756                   GATEWAY=${!var_gateway}
1757                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
1758                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
1759                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
1760                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
1761                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
1762                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1763                 else
1764                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
1765                     echo "Configuring $DEVICE_NAME to use DHCP"
1766                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
1767                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
1768                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1769                   fi
1770                 fi
1771                 ifdown $DEVICE_NAME
1772                 ifup $DEVICE_NAME
1773                 printf "$DEVICE_NAME\n" >> /tmp/network_config
1774               fi
1775             done
1776             puppet agent -t > /root/puppet-agent-t.out
1777           params:
1778             trx_hostname: {get_param: [eca_trx_names, 3]}
1779             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 3]}
1780   
1781   eca_trx4_port_0:
1782     type: OS::Neutron::Port
1783     properties:
1784       network: { get_param: oam_net_name }
1785       fixed_ips: [
1786         "ip_address": { get_param: [eca_trx_oam_ips, 3] }
1787       ]
1788       security_groups: [{get_param: security_group_name}]
1789       replacement_policy: AUTO
1790
1791   eca_trx4_port_1:
1792     type: OS::Neutron::Port
1793     properties:
1794       network: { get_param: eca_mgmt_net_name }
1795       fixed_ips: [
1796         "ip_address": { get_param: [eca_trx_mgmt_ips, 3] }
1797       ]
1798       security_groups: [{get_param: security_group_name}]
1799       replacement_policy: AUTO
1800
1801   eca_trx4_port_2:
1802     type: OS::Neutron::Port
1803     properties:
1804       network_id: { get_resource: eca_traffic_net }
1805       fixed_ips: [
1806         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 3] }
1807       ]
1808       security_groups: [{get_param: security_group_name}]
1809       replacement_policy: AUTO
1810
1811   server_eca_trx5:
1812     type: OS::Nova::Server
1813     properties:
1814       name: { get_param: [eca_trx_names, 4]}
1815       image: { get_param: eca_trx_image }
1816       availability_zone: { get_param: availability_zone_0 }
1817       flavor: { get_param: eca_trx_flavor }
1818       networks:
1819       - port: { get_resource: eca_trx5_port_0 }
1820       - port: { get_resource: eca_trx5_port_1 }
1821       - port: { get_resource: eca_trx5_port_2 }
1822       metadata:
1823         vnf_id: { get_param: vnf_id }
1824       user_data:
1825         str_replace:
1826           template: |
1827             #!/bin/bash
1828             touch /tmp/user_data.log
1829             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
1830             echo "172.26.8.6 puppet" > /etc/hosts
1831             eth0_ip_address='trx_traf_ip_address'
1832             eth0_gateway='172.26.5.3'
1833             echo "$eth0_ip_address" >>/tmp/user_data.log
1834             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
1835               if [ "$interface" != "lo" ]; then
1836                 DEVICE_NAME=$interface
1837                 interface_ip_var="${DEVICE_NAME}_ip_address" 
1838                 gateway_var="${DEVICE_NAME}_gateway"
1839                 var_name="$interface_ip_var"
1840                 var_gateway="$gateway_var"
1841                 if [ ! -z ${!var_name} ]; then
1842                   IPADDR=${!var_name}
1843                   BOOTPROTO="static"
1844                   GATEWAY=${!var_gateway}
1845                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
1846                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
1847                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
1848                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
1849                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
1850                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1851                 else
1852                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
1853                     echo "Configuring $DEVICE_NAME to use DHCP"
1854                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
1855                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
1856                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1857                   fi
1858                 fi
1859                 ifdown $DEVICE_NAME
1860                 ifup $DEVICE_NAME
1861                 printf "$DEVICE_NAME\n" >> /tmp/network_config
1862               fi
1863             done
1864             puppet agent -t > /root/puppet-agent-t.out
1865           params:
1866             trx_hostname: {get_param: [eca_trx_names, 4]}
1867             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 4]}
1868   
1869   eca_trx5_port_0:
1870     type: OS::Neutron::Port
1871     properties:
1872       network: { get_param: oam_net_name }
1873       fixed_ips: [
1874         "ip_address": { get_param: [eca_trx_oam_ips, 4] }
1875       ]
1876       security_groups: [{get_param: security_group_name}]
1877       replacement_policy: AUTO
1878
1879   eca_trx5_port_1:
1880     type: OS::Neutron::Port
1881     properties:
1882       network: { get_param: eca_mgmt_net_name }
1883       fixed_ips: [
1884         "ip_address": { get_param: [eca_trx_mgmt_ips, 4] }
1885       ]
1886       security_groups: [{get_param: security_group_name}]
1887       replacement_policy: AUTO
1888
1889   eca_trx5_port_2:
1890     type: OS::Neutron::Port
1891     properties:
1892       network_id: { get_resource: eca_traffic_net }
1893       fixed_ips: [
1894         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 4] }
1895       ]
1896       security_groups: [{get_param: security_group_name}]
1897       replacement_policy: AUTO
1898
1899   server_eca_trx6:
1900     type: OS::Nova::Server
1901     properties:
1902       name: { get_param: [eca_trx_names, 5]}
1903       image: { get_param: eca_trx_image }
1904       availability_zone: { get_param: availability_zone_0 }
1905       flavor: { get_param: eca_trx_flavor }
1906       networks:
1907       - port: { get_resource: eca_trx6_port_0 }
1908       - port: { get_resource: eca_trx6_port_1 }
1909       - port: { get_resource: eca_trx6_port_2 }
1910       metadata:
1911         vnf_id: { get_param: vnf_id }
1912       user_data:
1913         str_replace:
1914           template: |
1915             #!/bin/bash
1916             touch /tmp/user_data.log
1917             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
1918             echo "172.26.8.6 puppet" > /etc/hosts
1919             eth0_ip_address='trx_traf_ip_address'
1920             eth0_gateway='172.26.5.3'
1921             echo "$eth0_ip_address" >>/tmp/user_data.log
1922             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
1923               if [ "$interface" != "lo" ]; then
1924                 DEVICE_NAME=$interface
1925                 interface_ip_var="${DEVICE_NAME}_ip_address" 
1926                 gateway_var="${DEVICE_NAME}_gateway"
1927                 var_name="$interface_ip_var"
1928                 var_gateway="$gateway_var"
1929                 if [ ! -z ${!var_name} ]; then
1930                   IPADDR=${!var_name}
1931                   BOOTPROTO="static"
1932                   GATEWAY=${!var_gateway}
1933                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
1934                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
1935                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
1936                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
1937                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
1938                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1939                 else
1940                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
1941                     echo "Configuring $DEVICE_NAME to use DHCP"
1942                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
1943                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
1944                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
1945                   fi
1946                 fi
1947                 ifdown $DEVICE_NAME
1948                 ifup $DEVICE_NAME
1949                 printf "$DEVICE_NAME\n" >> /tmp/network_config
1950               fi
1951             done
1952             puppet agent -t > /root/puppet-agent-t.out
1953           params:
1954             trx_hostname: {get_param: [eca_trx_names, 5]}
1955             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 5]}
1956   
1957   eca_trx6_port_0:
1958     type: OS::Neutron::Port
1959     properties:
1960       network: { get_param: oam_net_name }
1961       fixed_ips: [
1962         "ip_address": { get_param: [eca_trx_oam_ips, 5] }
1963       ]
1964       security_groups: [{get_param: security_group_name}]
1965       replacement_policy: AUTO
1966
1967   eca_trx6_port_1:
1968     type: OS::Neutron::Port
1969     properties:
1970       network: { get_param: eca_mgmt_net_name }
1971       fixed_ips: [
1972         "ip_address": { get_param: [eca_trx_mgmt_ips, 5] }
1973       ]
1974       security_groups: [{get_param: security_group_name}]
1975       replacement_policy: AUTO
1976
1977   eca_trx6_port_2:
1978     type: OS::Neutron::Port
1979     properties:
1980       network_id: { get_resource: eca_traffic_net }
1981       fixed_ips: [
1982         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 5] }
1983       ]
1984       security_groups: [{get_param: security_group_name}]
1985       replacement_policy: AUTO   
1986
1987   server_eca_trx7:
1988     type: OS::Nova::Server
1989     properties:
1990       name: { get_param: [eca_trx_names, 6]}
1991       image: { get_param: eca_trx_image }
1992       availability_zone: { get_param: availability_zone_0 }
1993       flavor: { get_param: eca_trx_flavor }
1994       networks:
1995       - port: { get_resource: eca_trx7_port_0 }
1996       - port: { get_resource: eca_trx7_port_1 }
1997       - port: { get_resource: eca_trx7_port_2 }
1998       metadata:
1999         vnf_id: { get_param: vnf_id }
2000       user_data:
2001         str_replace:
2002           template: |
2003             #!/bin/bash
2004             touch /tmp/user_data.log
2005             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2006             echo "172.26.8.6 puppet" > /etc/hosts
2007             eth0_ip_address='trx_traf_ip_address'
2008             eth0_gateway='172.26.5.3'
2009             echo "$eth0_ip_address" >>/tmp/user_data.log
2010             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2011               if [ "$interface" != "lo" ]; then
2012                 DEVICE_NAME=$interface
2013                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2014                 gateway_var="${DEVICE_NAME}_gateway"
2015                 var_name="$interface_ip_var"
2016                 var_gateway="$gateway_var"
2017                 if [ ! -z ${!var_name} ]; then
2018                   IPADDR=${!var_name}
2019                   BOOTPROTO="static"
2020                   GATEWAY=${!var_gateway}
2021                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2022                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2023                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2024                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2025                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2026                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2027                 else
2028                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2029                     echo "Configuring $DEVICE_NAME to use DHCP"
2030                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2031                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2032                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2033                   fi
2034                 fi
2035                 ifdown $DEVICE_NAME
2036                 ifup $DEVICE_NAME
2037                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2038               fi
2039             done
2040             puppet agent -t > /root/puppet-agent-t.out
2041           params:
2042             trx_hostname: {get_param: [eca_trx_names, 6]}
2043             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 6]}
2044
2045   eca_trx7_port_0:
2046     type: OS::Neutron::Port
2047     properties:
2048       network: { get_param: oam_net_name }
2049       fixed_ips: [
2050         "ip_address": { get_param: [eca_trx_oam_ips, 6] }
2051       ]
2052       security_groups: [{get_param: security_group_name}]
2053       replacement_policy: AUTO
2054
2055   eca_trx7_port_1:
2056     type: OS::Neutron::Port
2057     properties:
2058       network: { get_param: eca_mgmt_net_name }
2059       fixed_ips: [
2060         "ip_address": { get_param: [eca_trx_mgmt_ips, 6] }
2061       ]
2062       security_groups: [{get_param: security_group_name}]
2063       replacement_policy: AUTO
2064
2065   eca_trx7_port_2:
2066     type: OS::Neutron::Port
2067     properties:
2068       network_id: { get_resource: eca_traffic_net }
2069       fixed_ips: [
2070         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 6] }
2071       ]
2072       security_groups: [{get_param: security_group_name}]
2073       replacement_policy: AUTO
2074
2075   server_eca_trx8:
2076     type: OS::Nova::Server
2077     properties:
2078       name: { get_param: [eca_trx_names, 7]}
2079       image: { get_param: eca_trx_image }
2080       availability_zone: { get_param: availability_zone_0 }
2081       flavor: { get_param: eca_trx_flavor }
2082       networks:
2083       - port: { get_resource: eca_trx8_port_0 }
2084       - port: { get_resource: eca_trx8_port_1 }
2085       - port: { get_resource: eca_trx8_port_2 }
2086       metadata:
2087         vnf_id: { get_param: vnf_id }
2088       user_data:
2089         str_replace:
2090           template: |
2091             #!/bin/bash
2092             touch /tmp/user_data.log
2093             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2094             echo "172.26.8.6 puppet" > /etc/hosts
2095             eth0_ip_address='trx_traf_ip_address'
2096             eth0_gateway='172.26.5.3'
2097             echo "$eth0_ip_address" >>/tmp/user_data.log
2098             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2099               if [ "$interface" != "lo" ]; then
2100                 DEVICE_NAME=$interface
2101                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2102                 gateway_var="${DEVICE_NAME}_gateway"
2103                 var_name="$interface_ip_var"
2104                 var_gateway="$gateway_var"
2105                 if [ ! -z ${!var_name} ]; then
2106                   IPADDR=${!var_name}
2107                   BOOTPROTO="static"
2108                   GATEWAY=${!var_gateway}
2109                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2110                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2111                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2112                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2113                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2114                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2115                 else
2116                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2117                     echo "Configuring $DEVICE_NAME to use DHCP"
2118                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2119                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2120                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2121                   fi
2122                 fi
2123                 ifdown $DEVICE_NAME
2124                 ifup $DEVICE_NAME
2125                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2126               fi
2127             done
2128             puppet agent -t > /root/puppet-agent-t.out
2129           params:
2130             trx_hostname: {get_param: [eca_trx_names, 7]}
2131             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 7]}
2132   
2133   eca_trx8_port_0:
2134     type: OS::Neutron::Port
2135     properties:
2136       network: { get_param: oam_net_name }
2137       fixed_ips: [
2138         "ip_address": { get_param: [eca_trx_oam_ips, 7] }
2139       ]
2140       security_groups: [{get_param: security_group_name}]
2141       replacement_policy: AUTO
2142
2143   eca_trx8_port_1:
2144     type: OS::Neutron::Port
2145     properties:
2146       network: { get_param: eca_mgmt_net_name }
2147       fixed_ips: [
2148         "ip_address": { get_param: [eca_trx_mgmt_ips, 7] }
2149       ]
2150       security_groups: [{get_param: security_group_name}]
2151       replacement_policy: AUTO
2152
2153   eca_trx8_port_2:
2154     type: OS::Neutron::Port
2155     properties:
2156       network_id: { get_resource: eca_traffic_net }
2157       fixed_ips: [
2158         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 7] }
2159       ]
2160       security_groups: [{get_param: security_group_name}]
2161       replacement_policy: AUTO
2162
2163   server_eca_trx9:
2164     type: OS::Nova::Server
2165     properties:
2166       name: { get_param: [eca_trx_names, 8]}
2167       image: { get_param: eca_trx_image }
2168       availability_zone: { get_param: availability_zone_0 }
2169       flavor: { get_param: eca_trx_flavor }
2170       networks:
2171       - port: { get_resource: eca_trx9_port_0 }
2172       - port: { get_resource: eca_trx9_port_1 }
2173       - port: { get_resource: eca_trx9_port_2 }
2174       metadata:
2175         vnf_id: { get_param: vnf_id }
2176       user_data:
2177         str_replace:
2178           template: |
2179             #!/bin/bash
2180             touch /tmp/user_data.log
2181             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2182             echo "172.26.8.6 puppet" > /etc/hosts
2183             eth0_ip_address='trx_traf_ip_address'
2184             eth0_gateway='172.26.5.3'
2185             echo "$eth0_ip_address" >>/tmp/user_data.log
2186             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2187               if [ "$interface" != "lo" ]; then
2188                 DEVICE_NAME=$interface
2189                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2190                 gateway_var="${DEVICE_NAME}_gateway"
2191                 var_name="$interface_ip_var"
2192                 var_gateway="$gateway_var"
2193                 if [ ! -z ${!var_name} ]; then
2194                   IPADDR=${!var_name}
2195                   BOOTPROTO="static"
2196                   GATEWAY=${!var_gateway}
2197                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2198                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2199                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2200                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2201                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2202                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2203                 else
2204                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2205                     echo "Configuring $DEVICE_NAME to use DHCP"
2206                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2207                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2208                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2209                   fi
2210                 fi
2211                 ifdown $DEVICE_NAME
2212                 ifup $DEVICE_NAME
2213                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2214               fi
2215             done
2216             puppet agent -t > /root/puppet-agent-t.out
2217           params:
2218             trx_hostname: {get_param: [eca_trx_names, 8]}
2219             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 8]}
2220   
2221   eca_trx9_port_0:
2222     type: OS::Neutron::Port
2223     properties:
2224       network: { get_param: oam_net_name }
2225       fixed_ips: [
2226         "ip_address": { get_param: [eca_trx_oam_ips, 8] }
2227       ]
2228       security_groups: [{get_param: security_group_name}]
2229       replacement_policy: AUTO
2230
2231   eca_trx9_port_1:
2232     type: OS::Neutron::Port
2233     properties:
2234       network: { get_param: eca_mgmt_net_name }
2235       fixed_ips: [
2236         "ip_address": { get_param: [eca_trx_mgmt_ips, 8] }
2237       ]
2238       security_groups: [{get_param: security_group_name}]
2239       replacement_policy: AUTO
2240
2241   eca_trx9_port_2:
2242     type: OS::Neutron::Port
2243     properties:
2244       network_id: { get_resource: eca_traffic_net }
2245       fixed_ips: [
2246         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 8] }
2247       ]
2248       security_groups: [{get_param: security_group_name}]
2249       replacement_policy: AUTO
2250
2251   server_eca_trx10:
2252     type: OS::Nova::Server
2253     properties:
2254       name: { get_param: [eca_trx_names, 9]}
2255       image: { get_param: eca_trx_image }
2256       availability_zone: { get_param: availability_zone_0 }
2257       flavor: { get_param: eca_trx_flavor }
2258       networks:
2259       - port: { get_resource: eca_trx10_port_0 }
2260       - port: { get_resource: eca_trx10_port_1 }
2261       - port: { get_resource: eca_trx10_port_2 }
2262       metadata:
2263         vnf_id: { get_param: vnf_id }
2264       user_data:
2265         str_replace:
2266           template: |
2267             #!/bin/bash
2268             touch /tmp/user_data.log
2269             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2270             echo "172.26.8.6 puppet" > /etc/hosts
2271             eth0_ip_address='trx_traf_ip_address'
2272             eth0_gateway='172.26.5.3'
2273             echo "$eth0_ip_address" >>/tmp/user_data.log
2274             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2275               if [ "$interface" != "lo" ]; then
2276                 DEVICE_NAME=$interface
2277                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2278                 gateway_var="${DEVICE_NAME}_gateway"
2279                 var_name="$interface_ip_var"
2280                 var_gateway="$gateway_var"
2281                 if [ ! -z ${!var_name} ]; then
2282                   IPADDR=${!var_name}
2283                   BOOTPROTO="static"
2284                   GATEWAY=${!var_gateway}
2285                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2286                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2287                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2288                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2289                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2290                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2291                 else
2292                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2293                     echo "Configuring $DEVICE_NAME to use DHCP"
2294                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2295                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2296                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2297                   fi
2298                 fi
2299                 ifdown $DEVICE_NAME
2300                 ifup $DEVICE_NAME
2301                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2302               fi
2303             done
2304             puppet agent -t > /root/puppet-agent-t.out
2305           params:
2306             trx_hostname: {get_param: [eca_trx_names, 9]}
2307             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 9]}
2308   
2309   eca_trx10_port_0:
2310     type: OS::Neutron::Port
2311     properties:
2312       network: { get_param: oam_net_name }
2313       fixed_ips: [
2314         "ip_address": { get_param: [eca_trx_oam_ips, 9] }
2315       ]
2316       security_groups: [{get_param: security_group_name}]
2317       replacement_policy: AUTO
2318
2319   eca_trx10_port_1:
2320     type: OS::Neutron::Port
2321     properties:
2322       network: { get_param: eca_mgmt_net_name }
2323       fixed_ips: [
2324         "ip_address": { get_param: [eca_trx_mgmt_ips, 9] }
2325       ]
2326       security_groups: [{get_param: security_group_name}]
2327       replacement_policy: AUTO
2328
2329   eca_trx10_port_2:
2330     type: OS::Neutron::Port
2331     properties:
2332       network_id: { get_resource: eca_traffic_net }
2333       fixed_ips: [
2334         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 9] }
2335       ]
2336       security_groups: [{get_param: security_group_name}]
2337       replacement_policy: AUTO
2338
2339   server_eca_trx11:
2340     type: OS::Nova::Server
2341     properties:
2342       name: { get_param: [eca_trx_names, 10]}
2343       image: { get_param: eca_trx_image }
2344       availability_zone: { get_param: availability_zone_0 }
2345       flavor: { get_param: eca_trx_flavor }
2346       networks:
2347       - port: { get_resource: eca_trx11_port_0 }
2348       - port: { get_resource: eca_trx11_port_1 }
2349       - port: { get_resource: eca_trx11_port_2 }
2350       metadata:
2351         vnf_id: { get_param: vnf_id }
2352       user_data:
2353         str_replace:
2354           template: |
2355             #!/bin/bash
2356             touch /tmp/user_data.log
2357             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2358             echo "172.26.8.6 puppet" > /etc/hosts
2359             eth0_ip_address='trx_traf_ip_address'
2360             eth0_gateway='172.26.5.3'
2361             echo "$eth0_ip_address" >>/tmp/user_data.log
2362             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2363               if [ "$interface" != "lo" ]; then
2364                 DEVICE_NAME=$interface
2365                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2366                 gateway_var="${DEVICE_NAME}_gateway"
2367                 var_name="$interface_ip_var"
2368                 var_gateway="$gateway_var"
2369                 if [ ! -z ${!var_name} ]; then
2370                   IPADDR=${!var_name}
2371                   BOOTPROTO="static"
2372                   GATEWAY=${!var_gateway}
2373                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2374                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2375                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2376                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2377                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2378                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2379                 else
2380                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2381                     echo "Configuring $DEVICE_NAME to use DHCP"
2382                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2383                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2384                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2385                   fi
2386                 fi
2387                 ifdown $DEVICE_NAME
2388                 ifup $DEVICE_NAME
2389                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2390               fi
2391             done
2392             puppet agent -t > /root/puppet-agent-t.out
2393           params:
2394             trx_hostname: {get_param: [eca_trx_names, 10]}
2395             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 10]}
2396   
2397   eca_trx11_port_0:
2398     type: OS::Neutron::Port
2399     properties:
2400       network: { get_param: oam_net_name }
2401       fixed_ips: [
2402         "ip_address": { get_param: [eca_trx_oam_ips, 10] }
2403       ]
2404       security_groups: [{get_param: security_group_name}]
2405       replacement_policy: AUTO
2406
2407   eca_trx11_port_1:
2408     type: OS::Neutron::Port
2409     properties:
2410       network: { get_param: eca_mgmt_net_name }
2411       fixed_ips: [
2412         "ip_address": { get_param: [eca_trx_mgmt_ips, 10] }
2413       ]
2414       security_groups: [{get_param: security_group_name}]
2415       replacement_policy: AUTO
2416
2417   eca_trx11_port_2:
2418     type: OS::Neutron::Port
2419     properties:
2420       network_id: { get_resource: eca_traffic_net }
2421       fixed_ips: [
2422         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 10] }
2423       ]
2424       security_groups: [{get_param: security_group_name}]
2425       replacement_policy: AUTO
2426       
2427
2428   server_eca_trx12:
2429     type: OS::Nova::Server
2430     properties:
2431       name: { get_param: [eca_trx_names, 11]}
2432       image: { get_param: eca_trx_image }
2433       availability_zone: { get_param: availability_zone_0 }
2434       flavor: { get_param: eca_trx_flavor }
2435       networks:
2436       - port: { get_resource: eca_trx12_port_0 }
2437       - port: { get_resource: eca_trx12_port_1 }
2438       - port: { get_resource: eca_trx12_port_2 }
2439       metadata:
2440         vnf_id: { get_param: vnf_id }
2441       user_data:
2442         str_replace:
2443           template: |
2444             #!/bin/bash
2445             touch /tmp/user_data.log
2446             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2447             echo "172.26.8.6 puppet" > /etc/hosts
2448             eth0_ip_address='trx_traf_ip_address'
2449             eth0_gateway='172.26.5.3'
2450             echo "$eth0_ip_address" >>/tmp/user_data.log
2451             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2452               if [ "$interface" != "lo" ]; then
2453                 DEVICE_NAME=$interface
2454                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2455                 gateway_var="${DEVICE_NAME}_gateway"
2456                 var_name="$interface_ip_var"
2457                 var_gateway="$gateway_var"
2458                 if [ ! -z ${!var_name} ]; then
2459                   IPADDR=${!var_name}
2460                   BOOTPROTO="static"
2461                   GATEWAY=${!var_gateway}
2462                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2463                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2464                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2465                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2466                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2467                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2468                 else
2469                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2470                     echo "Configuring $DEVICE_NAME to use DHCP"
2471                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2472                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2473                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2474                   fi
2475                 fi
2476                 ifdown $DEVICE_NAME
2477                 ifup $DEVICE_NAME
2478                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2479               fi
2480             done
2481             puppet agent -t > /root/puppet-agent-t.out
2482           params:
2483             trx_hostname: {get_param: [eca_trx_names, 11]}
2484             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 11]}
2485
2486   eca_trx12_port_0:
2487     type: OS::Neutron::Port
2488     properties:
2489       network: { get_param: oam_net_name }
2490       fixed_ips: [
2491         "ip_address": { get_param: [eca_trx_oam_ips, 11] }
2492       ]
2493       security_groups: [{get_param: security_group_name}]
2494       replacement_policy: AUTO
2495
2496   eca_trx12_port_1:
2497     type: OS::Neutron::Port
2498     properties:
2499       network: { get_param: eca_mgmt_net_name }
2500       fixed_ips: [
2501         "ip_address": { get_param: [eca_trx_mgmt_ips, 11] }
2502       ]
2503       security_groups: [{get_param: security_group_name}]
2504       replacement_policy: AUTO
2505
2506   eca_trx12_port_2:
2507     type: OS::Neutron::Port
2508     properties:
2509       network_id: { get_resource: eca_traffic_net }
2510       fixed_ips: [
2511         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 11] }
2512       ]
2513       security_groups: [{get_param: security_group_name}]
2514       replacement_policy: AUTO
2515
2516   server_eca_trx13:
2517     type: OS::Nova::Server
2518     properties:
2519       name: { get_param: [eca_trx_names, 12]}
2520       image: { get_param: eca_trx_image }
2521       availability_zone: { get_param: availability_zone_0 }
2522       flavor: { get_param: eca_trx_flavor }
2523       networks:
2524       - port: { get_resource: eca_trx13_port_0 }
2525       - port: { get_resource: eca_trx13_port_1 }
2526       - port: { get_resource: eca_trx13_port_2 }
2527       metadata:
2528         vnf_id: { get_param: vnf_id }
2529       user_data:
2530         str_replace:
2531           template: |
2532             #!/bin/bash
2533             touch /tmp/user_data.log
2534             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2535             echo "172.26.8.6 puppet" > /etc/hosts
2536             eth0_ip_address='trx_traf_ip_address'
2537             eth0_gateway='172.26.5.3'
2538             echo "$eth0_ip_address" >>/tmp/user_data.log
2539             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2540               if [ "$interface" != "lo" ]; then
2541                 DEVICE_NAME=$interface
2542                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2543                 gateway_var="${DEVICE_NAME}_gateway"
2544                 var_name="$interface_ip_var"
2545                 var_gateway="$gateway_var"
2546                 if [ ! -z ${!var_name} ]; then
2547                   IPADDR=${!var_name}
2548                   BOOTPROTO="static"
2549                   GATEWAY=${!var_gateway}
2550                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2551                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2552                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2553                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2554                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2555                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2556                 else
2557                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2558                     echo "Configuring $DEVICE_NAME to use DHCP"
2559                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2560                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2561                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2562                   fi
2563                 fi
2564                 ifdown $DEVICE_NAME
2565                 ifup $DEVICE_NAME
2566                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2567               fi
2568             done
2569             puppet agent -t > /root/puppet-agent-t.out
2570           params:
2571             trx_hostname: {get_param: [eca_trx_names, 12]}
2572             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 12]}
2573   
2574   eca_trx13_port_0:
2575     type: OS::Neutron::Port
2576     properties:
2577       network: { get_param: oam_net_name }
2578       fixed_ips: [
2579         "ip_address": { get_param: [eca_trx_oam_ips, 12] }
2580       ]
2581       security_groups: [{get_param: security_group_name}]
2582       replacement_policy: AUTO
2583
2584   eca_trx13_port_1:
2585     type: OS::Neutron::Port
2586     properties:
2587       network: { get_param: eca_mgmt_net_name }
2588       fixed_ips: [
2589         "ip_address": { get_param: [eca_trx_mgmt_ips, 12] }
2590       ]
2591       security_groups: [{get_param: security_group_name}]
2592       replacement_policy: AUTO
2593
2594   eca_trx13_port_2:
2595     type: OS::Neutron::Port
2596     properties:
2597       network_id: { get_resource: eca_traffic_net }
2598       fixed_ips: [
2599         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 12] }
2600       ]
2601       security_groups: [{get_param: security_group_name}]
2602       replacement_policy: AUTO
2603
2604   server_eca_trx14:
2605     type: OS::Nova::Server
2606     properties:
2607       name: { get_param: [eca_trx_names, 13]}
2608       image: { get_param: eca_trx_image }
2609       availability_zone: { get_param: availability_zone_0 }
2610       flavor: { get_param: eca_trx_flavor }
2611       networks:
2612       - port: { get_resource: eca_trx14_port_0 }
2613       - port: { get_resource: eca_trx14_port_1 }
2614       - port: { get_resource: eca_trx14_port_2 }
2615       metadata:
2616         vnf_id: { get_param: vnf_id }
2617       user_data:
2618         str_replace:
2619           template: |
2620             #!/bin/bash
2621             touch /tmp/user_data.log
2622             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2623             echo "172.26.8.6 puppet" > /etc/hosts
2624             eth0_ip_address='trx_traf_ip_address'
2625             eth0_gateway='172.26.5.3'
2626             echo "$eth0_ip_address" >>/tmp/user_data.log
2627             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2628               if [ "$interface" != "lo" ]; then
2629                 DEVICE_NAME=$interface
2630                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2631                 gateway_var="${DEVICE_NAME}_gateway"
2632                 var_name="$interface_ip_var"
2633                 var_gateway="$gateway_var"
2634                 if [ ! -z ${!var_name} ]; then
2635                   IPADDR=${!var_name}
2636                   BOOTPROTO="static"
2637                   GATEWAY=${!var_gateway}
2638                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2639                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2640                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2641                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2642                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2643                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2644                 else
2645                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2646                     echo "Configuring $DEVICE_NAME to use DHCP"
2647                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2648                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2649                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2650                   fi
2651                 fi
2652                 ifdown $DEVICE_NAME
2653                 ifup $DEVICE_NAME
2654                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2655               fi
2656             done
2657             puppet agent -t > /root/puppet-agent-t.out
2658           params:
2659             trx_hostname: {get_param: [eca_trx_names, 13]}
2660             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 13]}
2661   
2662   eca_trx14_port_0:
2663     type: OS::Neutron::Port
2664     properties:
2665       network: { get_param: oam_net_name }
2666       fixed_ips: [
2667         "ip_address": { get_param: [eca_trx_oam_ips, 13] }
2668       ]
2669       security_groups: [{get_param: security_group_name}]
2670       replacement_policy: AUTO
2671
2672   eca_trx14_port_1:
2673     type: OS::Neutron::Port
2674     properties:
2675       network: { get_param: eca_mgmt_net_name }
2676       fixed_ips: [
2677         "ip_address": { get_param: [eca_trx_mgmt_ips, 13] }
2678       ]
2679       security_groups: [{get_param: security_group_name}]
2680       replacement_policy: AUTO
2681
2682   eca_trx14_port_2:
2683     type: OS::Neutron::Port
2684     properties:
2685       network_id: { get_resource: eca_traffic_net }
2686       fixed_ips: [
2687         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 13] }
2688       ]
2689       security_groups: [{get_param: security_group_name}]
2690       replacement_policy: AUTO
2691
2692   server_eca_trx15:
2693     type: OS::Nova::Server
2694     properties:
2695       name: { get_param: [eca_trx_names, 14]}
2696       image: { get_param: eca_trx_image }
2697       availability_zone: { get_param: availability_zone_0 }
2698       flavor: { get_param: eca_trx_flavor }
2699       networks:
2700       - port: { get_resource: eca_trx15_port_0 }
2701       - port: { get_resource: eca_trx15_port_1 }
2702       - port: { get_resource: eca_trx15_port_2 }
2703       metadata:
2704         vnf_id: { get_param: vnf_id }
2705       user_data:
2706         str_replace:
2707           template: |
2708             #!/bin/bash
2709             touch /tmp/user_data.log
2710             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2711             echo "172.26.8.6 puppet" > /etc/hosts
2712             eth0_ip_address='trx_traf_ip_address'
2713             eth0_gateway='172.26.5.3'
2714             echo "$eth0_ip_address" >>/tmp/user_data.log
2715             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2716               if [ "$interface" != "lo" ]; then
2717                 DEVICE_NAME=$interface
2718                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2719                 gateway_var="${DEVICE_NAME}_gateway"
2720                 var_name="$interface_ip_var"
2721                 var_gateway="$gateway_var"
2722                 if [ ! -z ${!var_name} ]; then
2723                   IPADDR=${!var_name}
2724                   BOOTPROTO="static"
2725                   GATEWAY=${!var_gateway}
2726                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2727                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2728                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2729                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2730                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2731                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2732                 else
2733                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2734                     echo "Configuring $DEVICE_NAME to use DHCP"
2735                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2736                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2737                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2738                   fi
2739                 fi
2740                 ifdown $DEVICE_NAME
2741                 ifup $DEVICE_NAME
2742                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2743               fi
2744             done
2745             puppet agent -t > /root/puppet-agent-t.out
2746           params:
2747             trx_hostname: {get_param: [eca_trx_names, 14]}
2748             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 14]}
2749   
2750   eca_trx15_port_0:
2751     type: OS::Neutron::Port
2752     properties:
2753       network: { get_param: oam_net_name }
2754       fixed_ips: [
2755         "ip_address": { get_param: [eca_trx_oam_ips, 14] }
2756       ]
2757       security_groups: [{get_param: security_group_name}]
2758       replacement_policy: AUTO
2759
2760   eca_trx15_port_1:
2761     type: OS::Neutron::Port
2762     properties:
2763       network: { get_param: eca_mgmt_net_name }
2764       fixed_ips: [
2765         "ip_address": { get_param: [eca_trx_mgmt_ips, 14] }
2766       ]
2767       security_groups: [{get_param: security_group_name}]
2768       replacement_policy: AUTO
2769
2770   eca_trx15_port_2:
2771     type: OS::Neutron::Port
2772     properties:
2773       network_id: { get_resource: eca_traffic_net }
2774       fixed_ips: [
2775         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 14] }
2776       ]
2777       security_groups: [{get_param: security_group_name}]
2778       replacement_policy: AUTO
2779
2780   server_eca_trx16:
2781     type: OS::Nova::Server
2782     properties:
2783       name: { get_param: [eca_trx_names, 15]}
2784       image: { get_param: eca_trx_image }
2785       availability_zone: { get_param: availability_zone_0 }
2786       flavor: { get_param: eca_trx_flavor }
2787       networks:
2788       - port: { get_resource: eca_trx16_port_0 }
2789       - port: { get_resource: eca_trx16_port_1 }
2790       - port: { get_resource: eca_trx16_port_2 }
2791       metadata:
2792         vnf_id: { get_param: vnf_id }
2793       user_data:
2794         str_replace:
2795           template: |
2796             #!/bin/bash
2797             touch /tmp/user_data.log
2798             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2799             echo "172.26.8.6 puppet" > /etc/hosts
2800             eth0_ip_address='trx_traf_ip_address'
2801             eth0_gateway='172.26.5.3'
2802             echo "$eth0_ip_address" >>/tmp/user_data.log
2803             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2804               if [ "$interface" != "lo" ]; then
2805                 DEVICE_NAME=$interface
2806                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2807                 gateway_var="${DEVICE_NAME}_gateway"
2808                 var_name="$interface_ip_var"
2809                 var_gateway="$gateway_var"
2810                 if [ ! -z ${!var_name} ]; then
2811                   IPADDR=${!var_name}
2812                   BOOTPROTO="static"
2813                   GATEWAY=${!var_gateway}
2814                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2815                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2816                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2817                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2818                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2819                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2820                 else
2821                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2822                     echo "Configuring $DEVICE_NAME to use DHCP"
2823                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2824                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2825                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2826                   fi
2827                 fi
2828                 ifdown $DEVICE_NAME
2829                 ifup $DEVICE_NAME
2830                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2831               fi
2832             done
2833             puppet agent -t > /root/puppet-agent-t.out
2834           params:
2835             trx_hostname: {get_param: [eca_trx_names, 15]}
2836             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 15]}
2837   
2838   eca_trx16_port_0:
2839     type: OS::Neutron::Port
2840     properties:
2841       network: { get_param: oam_net_name }
2842       fixed_ips: [
2843         "ip_address": { get_param: [eca_trx_oam_ips, 15] }
2844       ]
2845       security_groups: [{get_param: security_group_name}]
2846       replacement_policy: AUTO
2847
2848   eca_trx16_port_1:
2849     type: OS::Neutron::Port
2850     properties:
2851       network: { get_param: eca_mgmt_net_name }
2852       fixed_ips: [
2853         "ip_address": { get_param: [eca_trx_mgmt_ips, 15] }
2854       ]
2855       security_groups: [{get_param: security_group_name}]
2856       replacement_policy: AUTO
2857
2858   eca_trx16_port_2:
2859     type: OS::Neutron::Port
2860     properties:
2861       network_id: { get_resource: eca_traffic_net }
2862       fixed_ips: [
2863         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 15] }
2864       ]
2865       security_groups: [{get_param: security_group_name}]
2866       replacement_policy: AUTO
2867       
2868
2869   server_eca_trx17:
2870     type: OS::Nova::Server
2871     properties:
2872       name: { get_param: [eca_trx_names, 16]}
2873       image: { get_param: eca_trx_image }
2874       availability_zone: { get_param: availability_zone_0 }
2875       flavor: { get_param: eca_trx_flavor }
2876       networks:
2877       - port: { get_resource: eca_trx17_port_0 }
2878       - port: { get_resource: eca_trx17_port_1 }
2879       - port: { get_resource: eca_trx17_port_2 }
2880       metadata:
2881         vnf_id: { get_param: vnf_id }
2882       user_data:
2883         str_replace:
2884           template: |
2885             #!/bin/bash
2886             touch /tmp/user_data.log
2887             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2888             echo "172.26.8.6 puppet" > /etc/hosts
2889             eth0_ip_address='trx_traf_ip_address'
2890             eth0_gateway='172.26.5.3'
2891             echo "$eth0_ip_address" >>/tmp/user_data.log
2892             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2893               if [ "$interface" != "lo" ]; then
2894                 DEVICE_NAME=$interface
2895                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2896                 gateway_var="${DEVICE_NAME}_gateway"
2897                 var_name="$interface_ip_var"
2898                 var_gateway="$gateway_var"
2899                 if [ ! -z ${!var_name} ]; then
2900                   IPADDR=${!var_name}
2901                   BOOTPROTO="static"
2902                   GATEWAY=${!var_gateway}
2903                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2904                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2905                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2906                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2907                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2908                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2909                 else
2910                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2911                     echo "Configuring $DEVICE_NAME to use DHCP"
2912                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
2913                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
2914                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2915                   fi
2916                 fi
2917                 ifdown $DEVICE_NAME
2918                 ifup $DEVICE_NAME
2919                 printf "$DEVICE_NAME\n" >> /tmp/network_config
2920               fi
2921             done
2922             puppet agent -t > /root/puppet-agent-t.out
2923           params:
2924             trx_hostname: {get_param: [eca_trx_names, 16]}
2925             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 16]}
2926
2927   eca_trx17_port_0:
2928     type: OS::Neutron::Port
2929     properties:
2930       network: { get_param: oam_net_name }
2931       fixed_ips: [
2932         "ip_address": { get_param: [eca_trx_oam_ips, 16] }
2933       ]
2934       security_groups: [{get_param: security_group_name}]
2935       replacement_policy: AUTO
2936
2937   eca_trx17_port_1:
2938     type: OS::Neutron::Port
2939     properties:
2940       network: { get_param: eca_mgmt_net_name }
2941       fixed_ips: [
2942         "ip_address": { get_param: [eca_trx_mgmt_ips, 16] }
2943       ]
2944       security_groups: [{get_param: security_group_name}]
2945       replacement_policy: AUTO
2946
2947   eca_trx17_port_2:
2948     type: OS::Neutron::Port
2949     properties:
2950       network_id: { get_resource: eca_traffic_net }
2951       fixed_ips: [
2952         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 16] }
2953       ]
2954       security_groups: [{get_param: security_group_name}]
2955       replacement_policy: AUTO
2956
2957   server_eca_trx18:
2958     type: OS::Nova::Server
2959     properties:
2960       name: { get_param: [eca_trx_names, 17]}
2961       image: { get_param: eca_trx_image }
2962       availability_zone: { get_param: availability_zone_0 }
2963       flavor: { get_param: eca_trx_flavor }
2964       networks:
2965       - port: { get_resource: eca_trx18_port_0 }
2966       - port: { get_resource: eca_trx18_port_1 }
2967       - port: { get_resource: eca_trx18_port_2 }
2968       metadata:
2969         vnf_id: { get_param: vnf_id }
2970       user_data:
2971         str_replace:
2972           template: |
2973             #!/bin/bash
2974             touch /tmp/user_data.log
2975             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
2976             echo "172.26.8.6 puppet" > /etc/hosts
2977             eth0_ip_address='trx_traf_ip_address'
2978             eth0_gateway='172.26.5.3'
2979             echo "$eth0_ip_address" >>/tmp/user_data.log
2980             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
2981               if [ "$interface" != "lo" ]; then
2982                 DEVICE_NAME=$interface
2983                 interface_ip_var="${DEVICE_NAME}_ip_address" 
2984                 gateway_var="${DEVICE_NAME}_gateway"
2985                 var_name="$interface_ip_var"
2986                 var_gateway="$gateway_var"
2987                 if [ ! -z ${!var_name} ]; then
2988                   IPADDR=${!var_name}
2989                   BOOTPROTO="static"
2990                   GATEWAY=${!var_gateway}
2991                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
2992                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
2993                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
2994                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
2995                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
2996                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
2997                 else
2998                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
2999                     echo "Configuring $DEVICE_NAME to use DHCP"
3000                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
3001                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
3002                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
3003                   fi
3004                 fi
3005                 ifdown $DEVICE_NAME
3006                 ifup $DEVICE_NAME
3007                 printf "$DEVICE_NAME\n" >> /tmp/network_config
3008               fi
3009             done
3010             puppet agent -t > /root/puppet-agent-t.out
3011           params:
3012             trx_hostname: {get_param: [eca_trx_names, 17]}
3013             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 17]}
3014   
3015   eca_trx18_port_0:
3016     type: OS::Neutron::Port
3017     properties:
3018       network: { get_param: oam_net_name }
3019       fixed_ips: [
3020         "ip_address": { get_param: [eca_trx_oam_ips, 17] }
3021       ]
3022       security_groups: [{get_param: security_group_name}]
3023       replacement_policy: AUTO
3024
3025   eca_trx18_port_1:
3026     type: OS::Neutron::Port
3027     properties:
3028       network: { get_param: eca_mgmt_net_name }
3029       fixed_ips: [
3030         "ip_address": { get_param: [eca_trx_mgmt_ips, 17] }
3031       ]
3032       security_groups: [{get_param: security_group_name}]
3033       replacement_policy: AUTO
3034
3035   eca_trx18_port_2:
3036     type: OS::Neutron::Port
3037     properties:
3038       network_id: { get_resource: eca_traffic_net }
3039       fixed_ips: [
3040         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 17] }
3041       ]
3042       security_groups: [{get_param: security_group_name}]
3043       replacement_policy: AUTO
3044
3045   server_eca_trx19:
3046     type: OS::Nova::Server
3047     properties:
3048       name: { get_param: [eca_trx_names, 18]}
3049       image: { get_param: eca_trx_image }
3050       availability_zone: { get_param: availability_zone_0 }
3051       flavor: { get_param: eca_trx_flavor }
3052       networks:
3053       - port: { get_resource: eca_trx19_port_0 }
3054       - port: { get_resource: eca_trx19_port_1 }
3055       - port: { get_resource: eca_trx19_port_2 }
3056       metadata:
3057         vnf_id: { get_param: vnf_id }
3058       user_data:
3059         str_replace:
3060           template: |
3061             #!/bin/bash
3062             touch /tmp/user_data.log
3063             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
3064             echo "172.26.8.6 puppet" > /etc/hosts
3065             eth0_ip_address='trx_traf_ip_address'
3066             eth0_gateway='172.26.5.3'
3067             echo "$eth0_ip_address" >>/tmp/user_data.log
3068             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
3069               if [ "$interface" != "lo" ]; then
3070                 DEVICE_NAME=$interface
3071                 interface_ip_var="${DEVICE_NAME}_ip_address" 
3072                 gateway_var="${DEVICE_NAME}_gateway"
3073                 var_name="$interface_ip_var"
3074                 var_gateway="$gateway_var"
3075                 if [ ! -z ${!var_name} ]; then
3076                   IPADDR=${!var_name}
3077                   BOOTPROTO="static"
3078                   GATEWAY=${!var_gateway}
3079                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
3080                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
3081                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
3082                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
3083                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
3084                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
3085                 else
3086                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
3087                     echo "Configuring $DEVICE_NAME to use DHCP"
3088                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
3089                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
3090                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
3091                   fi
3092                 fi
3093                 ifdown $DEVICE_NAME
3094                 ifup $DEVICE_NAME
3095                 printf "$DEVICE_NAME\n" >> /tmp/network_config
3096               fi
3097             done
3098             puppet agent -t > /root/puppet-agent-t.out
3099           params:
3100             trx_hostname: {get_param: [eca_trx_names, 8]}
3101             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 18]}
3102   
3103   eca_trx19_port_0:
3104     type: OS::Neutron::Port
3105     properties:
3106       network: { get_param: oam_net_name }
3107       fixed_ips: [
3108         "ip_address": { get_param: [eca_trx_oam_ips, 18] }
3109       ]
3110       security_groups: [{get_param: security_group_name}]
3111       replacement_policy: AUTO
3112
3113   eca_trx19_port_1:
3114     type: OS::Neutron::Port
3115     properties:
3116       network: { get_param: eca_mgmt_net_name }
3117       fixed_ips: [
3118         "ip_address": { get_param: [eca_trx_mgmt_ips, 18] }
3119       ]
3120       security_groups: [{get_param: security_group_name}]
3121       replacement_policy: AUTO
3122
3123   eca_trx19_port_2:
3124     type: OS::Neutron::Port
3125     properties:
3126       network_id: { get_resource: eca_traffic_net }
3127       fixed_ips: [
3128         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 18] }
3129       ]
3130       security_groups: [{get_param: security_group_name}]
3131       replacement_policy: AUTO
3132
3133   server_eca_trx20:
3134     type: OS::Nova::Server
3135     properties:
3136       name: { get_param: [eca_trx_names, 19]}
3137       image: { get_param: eca_trx_image }
3138       availability_zone: { get_param: availability_zone_0 }
3139       flavor: { get_param: eca_trx_flavor }
3140       networks:
3141       - port: { get_resource: eca_trx20_port_0 }
3142       - port: { get_resource: eca_trx20_port_1 }
3143       - port: { get_resource: eca_trx20_port_2 }
3144       metadata:
3145         vnf_id: { get_param: vnf_id }
3146       user_data:
3147         str_replace:
3148           template: |
3149             #!/bin/bash
3150             touch /tmp/user_data.log
3151             sed -i s/HOSTNAME.*/"HOSTNAME=trx_hostname"/g /etc/sysconfig/network
3152             echo "172.26.8.6 puppet" > /etc/hosts
3153             eth0_ip_address='trx_traf_ip_address'
3154             eth0_gateway='172.26.5.3'
3155             echo "$eth0_ip_address" >>/tmp/user_data.log
3156             for interface in $(ip addr show|perl -nle 's/\d:\s([a-z0-9]*?):/print $1/e') ; do
3157               if [ "$interface" != "lo" ]; then
3158                 DEVICE_NAME=$interface
3159                 interface_ip_var="${DEVICE_NAME}_ip_address" 
3160                 gateway_var="${DEVICE_NAME}_gateway"
3161                 var_name="$interface_ip_var"
3162                 var_gateway="$gateway_var"
3163                 if [ ! -z ${!var_name} ]; then
3164                   IPADDR=${!var_name}
3165                   BOOTPROTO="static"
3166                   GATEWAY=${!var_gateway}
3167                   IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes\nUSERCTL=no"
3168                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=$BOOTPROTO"
3169                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nIPADDR=$IPADDR"
3170                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nNETMASK=255.255.255.0"
3171                   IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nGATEWAY=$GATEWAY"
3172                   printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
3173                 else
3174                   if [ ! -f /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME ]; then
3175                     echo "Configuring $DEVICE_NAME to use DHCP"
3176                     IFCFG_TEMPLATE="DEVICE=$DEVICE_NAME\nNM_CONTROLLED=no\nONBOOT=yes"  
3177                     IFCFG_TEMPLATE="$IFCFG_TEMPLATE\nBOOTPROTO=dhcp\nUSERCTL=no"
3178                     printf $IFCFG_TEMPLATE > /etc/sysconfig/network-scripts/ifcfg-$DEVICE_NAME
3179                   fi
3180                 fi
3181                 ifdown $DEVICE_NAME
3182                 ifup $DEVICE_NAME
3183                 printf "$DEVICE_NAME\n" >> /tmp/network_config
3184               fi
3185             done
3186             puppet agent -t > /root/puppet-agent-t.out
3187           params:
3188             trx_hostname: {get_param: [eca_trx_names, 19]}
3189             trx_traf_ip_address: {get_param: [eca_trx_eca_traffic_net_ips, 19]}
3190   
3191   eca_trx20_port_0:
3192     type: OS::Neutron::Port
3193     properties:
3194       network: { get_param: oam_net_name }
3195       fixed_ips: [
3196         "ip_address": { get_param: [eca_trx_oam_ips, 19] }
3197       ]
3198       security_groups: [{get_param: security_group_name}]
3199       replacement_policy: AUTO
3200
3201   eca_trx20_port_1:
3202     type: OS::Neutron::Port
3203     properties:
3204       network: { get_param: eca_mgmt_net_name }
3205       fixed_ips: [
3206         "ip_address": { get_param: [eca_trx_mgmt_ips, 19] }
3207       ]
3208       security_groups: [{get_param: security_group_name}]
3209       replacement_policy: AUTO
3210
3211   eca_trx20_port_2:
3212     type: OS::Neutron::Port
3213     properties:
3214       network_id: { get_resource: eca_traffic_net }
3215       fixed_ips: [
3216         "ip_address": { get_param: [eca_trx_eca_traffic_net_ips, 19] }
3217       ]
3218       security_groups: [{get_param: security_group_name}]
3219       replacement_policy: AUTO