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