Initial OpenECOMP MSO commit
Change-Id: Ia6a7574859480717402cc2f22534d9973a78fa6d
Signed-off-by: ChrisC <cc697w@intl.att.com>
diff --git a/asdc-controller/src/test/resources/logback-test.xml b/asdc-controller/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..a23395f
--- /dev/null
+++ b/asdc-controller/src/test/resources/logback-test.xml
@@ -0,0 +1,47 @@
+<!--
+ ============LICENSE_START=======================================================
+ ECOMP MSO
+ ================================================================================
+ Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ ================================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ ============LICENSE_END=========================================================
+ -->
+
+<configuration >
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}||%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}||%X{Timer}|%msg%n</pattern>
+ </encoder>
+ </appender>
+
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="trace" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <root level="info">
+ <appender-ref ref="STDOUT" />
+ </root>
+
+
+</configuration>
diff --git a/asdc-controller/src/test/resources/mso-bad.json b/asdc-controller/src/test/resources/mso-bad.json
new file mode 100644
index 0000000..be372fc
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso-bad.json
@@ -0,0 +1,15 @@
+{
+ "asdc-connections":{,
+ "asdc-controller1":{
+ "user": "testuser",
+ "consumerGroup": "consumerGroup",
+ "consumerId": "consumerId",
+ "environmentName": "environmentName",
+ "asdcAddress": "hostname1",
+
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso-two-configs.json b/asdc-controller/src/test/resources/mso-two-configs.json
new file mode 100644
index 0000000..20c5f31
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso-two-configs.json
@@ -0,0 +1,26 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User1",
+ "consumerGroup": "consumerGroup1",
+ "consumerId": "consumerId1",
+ "environmentName": "environmentName1",
+ "asdcAddress": "hostname1",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ },
+ "asdc-controller2":{
+ "user": "User2",
+ "consumerGroup": "consumerGroup2",
+ "consumerId": "consumerId2",
+ "environmentName": "environmentName2",
+ "asdcAddress": "hostname2",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso-two-configs2.json b/asdc-controller/src/test/resources/mso-two-configs2.json
new file mode 100644
index 0000000..29db2ee
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso-two-configs2.json
@@ -0,0 +1,26 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User1",
+ "consumerGroup": "consumerGroup1",
+ "consumerId": "consumerId1",
+ "environmentName": "environmentName1",
+ "asdcAddress": "hostname1",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ },
+ "asdc-controller2B":{
+ "user": "User2",
+ "consumerGroup": "consumerGroup2",
+ "consumerId": "consumerId2",
+ "environmentName": "environmentName2",
+ "asdcAddress": "hostname2",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso-with-NULL.json b/asdc-controller/src/test/resources/mso-with-NULL.json
new file mode 100644
index 0000000..b7ef75b
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso-with-NULL.json
@@ -0,0 +1,15 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User",
+ "consumerGroup": "NULL",
+ "consumerId": "consumerId",
+ "environmentName": "environmentName",
+ "asdcAddress": "hostname",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso.json b/asdc-controller/src/test/resources/mso.json
new file mode 100644
index 0000000..d74ee07
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso.json
@@ -0,0 +1,15 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User",
+ "consumerGroup": "consumerGroup",
+ "consumerId": "consumerId",
+ "environmentName": "environmentName",
+ "asdcAddress": "hostname",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso2.json b/asdc-controller/src/test/resources/mso2.json
new file mode 100644
index 0000000..2d31fc4
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso2.json
@@ -0,0 +1,15 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User",
+ "consumerGroup": "consumerGroup",
+ "consumerId": "consumerId",
+ "environmentName": "environmentName",
+ "asdcAddress": "hostname",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso3.json b/asdc-controller/src/test/resources/mso3.json
new file mode 100644
index 0000000..ac84dcf
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso3.json
@@ -0,0 +1,15 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User",
+ "consumerGroup": "consumerGroup",
+ "consumerId": "consumerId",
+ "environmentName": "environmentName",
+ "asdcAddress": "hostname1",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30
+
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/mso4-with-TLS.json b/asdc-controller/src/test/resources/mso4-with-TLS.json
new file mode 100644
index 0000000..8e7c506
--- /dev/null
+++ b/asdc-controller/src/test/resources/mso4-with-TLS.json
@@ -0,0 +1,17 @@
+{
+ "asdc-connections":{
+ "asdc-controller1":{
+ "user": "User",
+ "consumerGroup": "consumerGroup",
+ "consumerId": "consumerId",
+ "environmentName": "environmentName",
+ "asdcAddress": "hostname",
+ "password": "1c551b8b5ab91fcd5a0907b11c304199",
+ "pollingInterval":10,
+ "pollingTimeout":30,
+ "activateServerTLSAuth": true,
+ "keyStorePassword":"1c551b8b5ab91fcd5a0907b11c304199",
+ "keyStorePath": "/test"
+ }
+ }
+}
diff --git a/asdc-controller/src/test/resources/resource-examples/autoscaling.yaml b/asdc-controller/src/test/resources/resource-examples/autoscaling.yaml
new file mode 100644
index 0000000..88eabb7
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/autoscaling.yaml
@@ -0,0 +1,216 @@
+heat_template_version: 2013-05-23
+description: AutoScaling Wordpress
+parameters:
+ image:
+ type: string
+ description: Image used for servers
+ key:
+ type: string
+ description: SSH key to connect to the servers
+ flavor:
+ type: string
+ description: flavor used by the web servers
+ database_flavor:
+ type: string
+ description: flavor used by the db server
+ network:
+ type: string
+ description: Network used by the server
+ subnet_id:
+ type: string
+ description: subnet on which the load balancer will be located
+ database_name:
+ type: string
+ description: Name of the wordpress DB
+ default: wordpress
+ database_user:
+ type: string
+ description: Name of the wordpress user
+ default: wordpress
+ external_network_id:
+ type: string
+ description: UUID of a Neutron external network
+resources:
+ database_password:
+ type: OS::Heat::RandomString
+ database_root_password:
+ type: OS::Heat::RandomString
+ db:
+ type: OS::Nova::Server
+ properties:
+ flavor: {get_param: database_flavor}
+ image: {get_param: image}
+ key_name: {get_param: key}
+ networks: [{network: {get_param: network} }]
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash -v
+ yum -y install mariadb mariadb-server
+ systemctl enable mariadb.service
+ systemctl start mariadb.service
+ mysqladmin -u root password $db_rootpassword
+ cat << EOF | mysql -u root --password=$db_rootpassword
+ CREATE DATABASE $db_name;
+ GRANT ALL PRIVILEGES ON $db_name.* TO "$db_user"@"%"
+ IDENTIFIED BY "$db_password";
+ FLUSH PRIVILEGES;
+ EXIT
+ EOF
+ params:
+ $db_rootpassword: {get_attr: [database_root_password, value]}
+ $db_name: {get_param: database_name}
+ $db_user: {get_param: database_user}
+ $db_password: {get_attr: [database_password, value]}
+ asg:
+ type: OS::Heat::AutoScalingGroup
+ properties:
+ min_size: 1
+ max_size: 3
+ resource:
+ type: lb_server.yaml
+ properties:
+ flavor: {get_param: flavor}
+ image: {get_param: image}
+ key_name: {get_param: key}
+ network: {get_param: network}
+ pool_id: {get_resource: pool}
+ metadata: {"metering.stack": {get_param: "OS::stack_id"}}
+ user_data:
+ str_replace:
+ template: |
+ #!/bin/bash -v
+ yum -y install httpd wordpress
+ systemctl enable httpd.service
+ systemctl start httpd.service
+ setsebool -P httpd_can_network_connect_db=1
+
+ sed -i "/Deny from All/d" /etc/httpd/conf.d/wordpress.conf
+ sed -i "s/Require local/Require all granted/" /etc/httpd/conf.d/wordpress.conf
+ sed -i s/database_name_here/$db_name/ /etc/wordpress/wp-config.php
+ sed -i s/username_here/$db_user/ /etc/wordpress/wp-config.php
+ sed -i s/password_here/$db_password/ /etc/wordpress/wp-config.php
+ sed -i s/localhost/$db_host/ /etc/wordpress/wp-config.php
+
+ systemctl restart httpd.service
+ params:
+ $db_name: {get_param: database_name}
+ $db_user: {get_param: database_user}
+ $db_password: {get_attr: [database_password, value]}
+ $db_host: {get_attr: [db, first_address]}
+ web_server_scaleup_policy:
+ type: OS::Heat::ScalingPolicy
+ properties:
+ adjustment_type: change_in_capacity
+ auto_scaling_group_id: {get_resource: asg}
+ cooldown: 60
+ scaling_adjustment: 1
+ web_server_scaledown_policy:
+ type: OS::Heat::ScalingPolicy
+ properties:
+ adjustment_type: change_in_capacity
+ auto_scaling_group_id: {get_resource: asg}
+ cooldown: 60
+ scaling_adjustment: -1
+ cpu_alarm_high:
+ type: OS::Ceilometer::Alarm
+ properties:
+ description: Scale-up if the average CPU > 50% for 1 minute
+ meter_name: cpu_util
+ statistic: avg
+ period: 60
+ evaluation_periods: 1
+ threshold: 50
+ alarm_actions:
+ - {get_attr: [web_server_scaleup_policy, alarm_url]}
+ matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}}
+ comparison_operator: gt
+ cpu_alarm_low:
+ type: OS::Ceilometer::Alarm
+ properties:
+ description: Scale-down if the average CPU < 15% for 10 minutes
+ meter_name: cpu_util
+ statistic: avg
+ period: 600
+ evaluation_periods: 1
+ threshold: 15
+ alarm_actions:
+ - {get_attr: [web_server_scaledown_policy, alarm_url]}
+ matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}}
+ comparison_operator: lt
+ monitor:
+ type: OS::Neutron::HealthMonitor
+ properties:
+ type: TCP
+ delay: 5
+ max_retries: 5
+ timeout: 5
+ pool:
+ type: OS::Neutron::Pool
+ properties:
+ protocol: HTTP
+ monitors: [{get_resource: monitor}]
+ subnet_id: {get_param: subnet_id}
+ lb_method: ROUND_ROBIN
+ vip:
+ protocol_port: 80
+ lb:
+ type: OS::Neutron::LoadBalancer
+ properties:
+ protocol_port: 80
+ pool_id: {get_resource: pool}
+
+ # assign a floating ip address to the load balancer
+ # pool.
+ lb_floating:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: external_network_id}
+ port_id: {get_attr: [pool, vip, port_id]}
+
+ outputs:
+ scale_up_url:
+ description: >
+ This URL is the webhook to scale up the autoscaling group. You
+ can invoke the scale-up operation by doing an HTTP POST to this
+ URL; no body nor extra headers are needed.
+ value: {get_attr: [web_server_scaleup_policy, alarm_url]}
+ scale_dn_url:
+ description: >
+ This URL is the webhook to scale down the autoscaling group.
+ You can invoke the scale-down operation by doing an HTTP POST to
+ this URL; no body nor extra headers are needed.
+ value: {get_attr: [web_server_scaledown_policy, alarm_url]}
+ pool_ip_address:
+ value: {get_attr: [pool, vip, address]}
+ description: The IP address of the load balancing pool
+ website_url:
+ value:
+ str_replace:
+ template: http://host/wordpress/
+ params:
+ host: { get_attr: [lb_floating, floating_ip_address] }
+ description: >
+ This URL is the "external" URL that can be used to access the
+ Wordpress site.
+ ceilometer_query:
+ value:
+ str_replace:
+ template: >
+ ceilometer statistics -m cpu_util
+ -q metadata.user_metadata.stack=stackval -p 600 -a avg
+ params:
+ stackval: { get_param: "OS::stack_id" }
+ description: >
+ This is a Ceilometer query for statistics on the cpu_util meter
+ Samples about OS::Nova::Server instances in this stack. The -q
+ parameter selects Samples according to the subject's metadata.
+ When a VM's metadata includes an item of the form metering.X=Y,
+ the corresponding Ceilometer resource has a metadata item of the
+ form user_metadata.X=Y and samples about resources so tagged can
+ be queried with a Ceilometer query term of the form
+ metadata.user_metadata.X=Y. In this case the nested stacks give
+ their VMs metadata that is passed as a nested stack parameter,
+ and this stack passes a metadata of the form metering.stack=Y,
+ where Y is this stack's ID.
diff --git a/asdc-controller/src/test/resources/resource-examples/mixed.yaml b/asdc-controller/src/test/resources/resource-examples/mixed.yaml
new file mode 100644
index 0000000..9dc4a42
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/mixed.yaml
@@ -0,0 +1,1523 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template that creates internal networks, load balancers and servers for vMMSC.
+
+parameters:
+ oam_net_name:
+ type: string
+ description: UID of OAM network
+ oam_network_netmask:
+ type: string
+ label: oam network netmask
+ description: oam network gateway
+ oam_network_gateway:
+ type: string
+ label: oam network gateway
+ description: oam network gateway
+ oam_network_route_1:
+ type: string
+ label: oam network route 1
+ description: oam network route 1
+ oam_network_route_2:
+ type: string
+ label: oam network route 2
+ description: oam network route 2
+ external_dns:
+ type: string
+ label: dns server
+ description: dns server for MMSC
+ external_ntp:
+ type: string
+ label: ntp server
+ description: ntp server for MMSC
+ lb1_oam_net_ip:
+ type: string
+ label: management network ip for mmsc
+ description: the ip of the management network for mmsc
+ lb2_oam_net_ip:
+ type: string
+ label: management network ip for mmsc
+ description: the ip of the management network for mmsc
+ dmz_protected_net:
+ type: string
+ description: UID of dmz_protected network
+ dmz_protected_net_local_ip1:
+ type: string
+ label: mmsc dmz protected network local ip1
+ description: the local ip1 of the mmsc dmz protected network
+ dmz_protected_net_local_ip2:
+ type: string
+ label: mmsc dmz protected network local ip2
+ description: the local ip2 of the mmsc dmz protected network
+ dmz_protected_net_floating_ip:
+ type: string
+ label: mmsc dmz protected floating ip
+ description: mmsc dmz direct floating ip
+ cor_direct_net:
+ type: string
+ label: cor direct net UID
+ description: cor direct net
+ cor_direct_net_local_ip1:
+ type: string
+ label: mmsc cor direct network local ip1
+ description: the local ip1 of the mmsc cor direct network
+ cor_direct_net_local_ip2:
+ type: string
+ label: mmsc cor direct network local ip2
+ description: the local ip2 of the mmsc cor direct network
+ cor_direct_net_floating_ip:
+ type: string
+ label: mmsc cor direct floating ip
+ description: mmsc cor direct floating ip
+ mms_traffic_net_name:
+ type: string
+ description: Name of MMS traffic network
+ mms_traffic_net_cidr:
+ type: string
+ description: MMS traffic network address (CIDR notation)
+ mms_traffic_netmask:
+ type: string
+ description: MMS traffic network subnet mask
+ mms_traffic_net_gateway:
+ type: string
+ description: MMS traffic network gateway address
+ mms_traffic_start:
+ type: string
+ label: mmsc traffic start IP
+ description: mmsc traffic start IP
+ mms_traffic_end:
+ type: string
+ label: mmsc traffic end IP
+ description: mmsc traffic end IP
+ mms_traffic_net_cidr:
+ type: string
+ label: mmsc traffic cidr
+ description: mmsc traffic cidr
+ mms_traffic_net_local_ip1:
+ type: string
+ label: mmsc traffic network local ip1
+ description: the local ip1 of the mmsc traffic network
+ mms_traffic_net_local_ip2:
+ type: string
+ label: mmsc traffic network local ip2
+ description: the local ip2 of the mmsc traffic network
+ mms_traffic_net_floating_ip:
+ type: string
+ label: mmsc traffic floating ip
+ description: mmsc traffic floating ip
+ nems_internal_name:
+ type: string
+ label: nems internal network name
+ description: nems internal network name
+ nems_internal_start:
+ type: string
+ label: nems internal start
+ description: nems internal start
+ nems_internal_end:
+ type: string
+ label: nems internal end
+ description: nems internal end
+ nems_internal_cidr:
+ type: string
+ label: nems ineternal cidr
+ description: nems internal cidr
+ nems_internal_netmask:
+ type: string
+ description: NEMS internal network subnet mask
+ nems_internal_gateway:
+ type: string
+ label: nems internal gw
+ description: nems internal gw
+ nems_traffic_name:
+ type: string
+ label: nems traffic name
+ description: nems traffic name
+ nems_traffic_start:
+ type: string
+ label: nems traffic start
+ description: nems traffic start
+ nems_traffic_end:
+ type: string
+ label: nems traffic end
+ description: nems traffic end
+ nems_traffic_cidr:
+ type: string
+ label: nems traffic cidr
+ description: nems traffic cidr
+ nems_traffic_netmask:
+ type: string
+ description: NEMS traffic network subnet mask
+ nems_traffic_gateway:
+ type: string
+ description: NEMS traffic network gateway
+ nems_traffic_net_local_ip1:
+ type: string
+ label: nems traffic network local ip1
+ description: the local ip1 of the nems traffic network
+ nems_traffic_net_local_ip2:
+ type: string
+ label: nems traffic network local ip2
+ description: the local ip2 of the nems traffic network
+ nems_traffic_net_floating_ip:
+ type: string
+ label: nems traffic floating ip
+ description: nems traffic floating ip
+ nems_user_web_name:
+ type: string
+ label: nems user web name
+ description: nems user web name
+ nems_user_web_start:
+ type: string
+ label: nems user web start
+ description: nems user web end
+ nems_user_web_end:
+ type: string
+ label: nems user web end
+ description: nems user web end
+ nems_user_web_cidr:
+ type: string
+ label: nems user web cidr
+ description: nems user web cidr
+ nems_user_web_netmask:
+ type: string
+ description: NEMS user web network subnet mask
+ nems_user_web_gateway:
+ type: string
+ description: NEMS user web network gateway
+ nems_user_web_net_local_ip1:
+ type: string
+ label: nems user web network local ip1
+ description: the local ip1 of the nems user web network
+ nems_user_web_net_local_ip2:
+ type: string
+ label: nems user web network local ip2
+ description: the local ip2 of the nems user web network
+ nems_user_web_net_floating_ip:
+ type: string
+ label: nems user web floating ip
+ description: nems user web floating ip
+ nems_imap_name:
+ type: string
+ label: nems imap name
+ description: nems imap name
+ nems_imap_netmask:
+ type: string
+ label: nems imap subnet mask
+ description: nems imap subnet mask
+ nems_imap_start:
+ type: string
+ label: nems imap start
+ description: nems imap start
+ nems_imap_end:
+ type: string
+ label: nems imap end
+ description: nems imap end
+ nems_imap_cidr:
+ type: string
+ label: nems imap cidr
+ description: nems imap cidr
+ nems_imap_gateway:
+ type: string
+ label: nems imap gateway
+ description: nems imap gateway
+ eca_traffic_name:
+ type: string
+ label: eca traffic name
+ description: eca traffic name
+ eca_traffic_start:
+ type: string
+ label: eca traffic start
+ description: eca traffic start
+ eca_traffic_end:
+ type: string
+ label: eca traffic end
+ description: eca traffic end
+ eca_traffic_cidr:
+ type: string
+ label: eca traffic cidr
+ description: eca traffic cidr
+ eca_traffic_netmask:
+ type: string
+ description: ECA traffic network subnet mask
+ eca_traffic_net_local_ip1:
+ type: string
+ label: eca traffic network local ip1
+ description: the local ip1 of the eca traffic network
+ eca_traffic_net_local_ip2:
+ type: string
+ label: eca traffic network local ip2
+ description: the local ip2 of the eca traffic network
+ eca_traffic_net_floating_ip:
+ type: string
+ label: eca traffic floating ip
+ description: eca traffic floating ip
+ eca_mgmt_name:
+ type: string
+ label: eca management name
+ description: eca management name
+ eca_mgmt_start:
+ type: string
+ label: eca management start
+ description: eca management start
+ eca_mgmt_end:
+ type: string
+ label: eca management end
+ description: eca management end
+ eca_mgmt_cidr:
+ type: string
+ label: eca management cidr
+ description: eca management cidr
+ eca_mgmt_netmask:
+ type: string
+ description: ECA mgmt network subnet mask
+ ha_net_name:
+ type: string
+ label: ha_failover network name
+ description: ha_failover network name
+ ha_net_start:
+ type: string
+ label: ha net start
+ description: ha net start
+ ha_net_end:
+ type: string
+ label: ha net end
+ description: ha net end
+ ha_net_cidr:
+ type: string
+ label: ha net cidr
+ description: ha net cidr
+ ha_net_local_ip1:
+ type: string
+ label: ha net network local ip1
+ description: the local ip1 of the ha network
+ ha_net_local_ip2:
+ type: string
+ label: ha net network local ip2
+ description: the local ip2 of the ha network
+ lb1_name:
+ type: string
+ label: MMSC load balancer instance name
+ description: MMSC load balancer instance name
+ lb_image_name:
+ type: string
+ label: MMSC load balancer image name
+ description: MMSC load balancer image name
+ lb_flavor_name:
+ type: string
+ label: Load balancer flavor name
+ description: the flavor name of MMSC load balancer instance
+ lb1_name:
+ type: string
+ label: MMSC load balancer1 instance name
+ description: MMSC load balancer1 instance name
+ lb2_name:
+ type: string
+ label: MMSC load balancer2 instance name
+ description: MMSC load balancer2 instance name
+ availabilityzone_name:
+ type: string
+ label: MMSC availabilityzone name
+ description: MMSC availabilityzone name
+ security_group_name:
+ type: string
+ label: MMSC security group name
+ description: MMSC security group name
+ mmsc_image:
+ type: string
+ description: Image for MMSC server
+ mmsc_flavor:
+ type: string
+ description: Flavor for MMSC server
+# mmsc_cinder_volume_size:
+# type: number
+# label: MMSC Cinder volume size
+# description: the size of the MMSC Cinder volume
+ nems_fe_image:
+ type: string
+ description: Image for NEMS FE server
+ nems_fe_flavor:
+ type: string
+ description: Flavor for NEMS FE server
+ nems_be_image:
+ type: string
+ description: Image for NEMS BE server
+ nems_be_flavor:
+ type: string
+ description: Flavor for NEMS BE server
+ eca_trx_image:
+ type: string
+ description: Image for ECA TRX server
+ eca_trx_flavor:
+ type: string
+ description: Flavor for ECA TRX server
+ eca_oam_image:
+ type: string
+ description: Image for ECA OAM server
+ eca_oam_flavor:
+ type: string
+ description: Flavor for ECA OAM server
+ mmsc1_name:
+ type: string
+ description: MMSC1 server name
+ mmsc1_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC1
+ mmsc1_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC1
+ mmsc2_name:
+ type: string
+ description: MMSC2 server name
+ mmsc2_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC2
+ mmsc2_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC2
+ mmsc3_name:
+ type: string
+ description: MMSC3 server name
+ mmsc3_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC3
+ mmsc3_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC3
+ mmsc4_name:
+ type: string
+ description: MMSC4 server name
+ mmsc4_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC4
+ mmsc4_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC4
+ mmsc5_name:
+ type: string
+ description: MMSC5 server name
+ mmsc5_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC5
+ mmsc5_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC5
+ nems_fe1_name:
+ type: string
+ description: NEMS_FE1 server name
+ nems_fe1_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_fe1_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_FE1
+ nems_fe1_nems_traffic_net_ip:
+ type: string
+ description: nems_traffic_net IP for NEMS_FE1
+ nems_fe1_nems_user_web_net_ip:
+ type: string
+ description: nems_web_user_net IP for NEMS_FE1
+ nems_fe1_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_FE1
+ nems_fe1_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_FE1
+ nems_fe2_name:
+ type: string
+ description: NEMS_FE2 server name
+ nems_fe2_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_fe2_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_FE2
+ nems_fe2_nems_traffic_net_ip:
+ type: string
+ description: nems_traffic_net IP for NEMS_FE2
+ nems_fe2_nems_user_web_net_ip:
+ type: string
+ description: nems_web_user_net IP for NEMS_FE2
+ nems_fe2_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_FE2
+ nems_fe2_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_FE2
+ nems_fe2_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_FE2
+ nems_be1_name:
+ type: string
+ description: NEMS_BE2 server name
+ nems_be1_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_be1_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_BE1
+ nems_be1_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_BE1
+ nems_be1_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_BE1
+ nems_be2_name:
+ type: string
+ description: NEMS_BE2 server name
+ nems_be2_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_be2_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_BE2
+ nems_be2_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_BE2
+ nems_be2_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_BE2
+ eca_oam1_name:
+ type: string
+ description: ECA_OAM1 server name
+ eca_oam1_oam_net_ip:
+ type: string
+ description: OAM_net IP for ECA_OAM1
+ eca_oam1_eca_mgmt_net_ip:
+ type: string
+ description: eca_mgmt_net IP for ECA_OAM1
+ eca_oam2_name:
+ type: string
+ description: ECA_OAM2 server name
+ eca_oam2_oam_net_ip:
+ type: string
+ description: OAM_net IP for ECA_OAM2
+ eca_oam2_eca_mgmt_net_ip:
+ type: string
+ description: eca_mgmt_net IP for ECA_OAM2
+ eca_trx1_name:
+ type: string
+ description: ECA_TRX1 server name
+ eca_trx1_oam_net_ip:
+ type: string
+ description: OAM_net IP for ECA_TRX1
+ eca_trx1_eca_mgmt_net_ip:
+ type: string
+ description: eca_mgmt_net IP for ECA_TRX1
+ eca_trx1_eca_traffic_net_ip:
+ type: string
+ description: eca_traffic_net IP for ECA_TRX1
+
+resources:
+ mms_security_group:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: mmsc security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}
+ ]
+
+ mms_traffic_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: mms_traffic_net_name }
+
+ mms_traffic_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: mms_traffic_net_name}
+ network_id: { get_resource: mms_traffic_net }
+ cidr: { get_param: mms_traffic_net_cidr }
+ allocation_pools: [{"start": {get_param: mms_traffic_start}, "end": {get_param: mms_traffic_end}}]
+ gateway_ip: { get_param: mms_traffic_net_gateway }
+ enable_dhcp: false
+
+ nems_internal_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: nems_internal_name}
+
+ nems_internal_network_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: nems_internal_name}
+ allocation_pools: [{"start": {get_param: nems_internal_start}, "end": {get_param: nems_internal_end}}]
+ cidr: {get_param: nems_internal_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: nems_internal_net}
+
+ nems_traffic_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: nems_traffic_name}
+
+ nems_traffic_network_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: nems_traffic_name}
+ allocation_pools: [{"start": {get_param: nems_traffic_start}, "end": {get_param: nems_traffic_end}}]
+ cidr: {get_param: nems_traffic_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: nems_traffic_net}
+
+ nems_user_web_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: nems_user_web_name}
+
+ nems_user_web_network_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: nems_user_web_name}
+ allocation_pools: [{"start": {get_param: nems_user_web_start}, "end": {get_param: nems_user_web_end}}]
+ cidr: {get_param: nems_user_web_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: nems_user_web_net}
+
+ nems_imap_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: nems_imap_name}
+
+ nems_imap_network_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: nems_imap_name}
+ allocation_pools: [{"start": {get_param: nems_imap_start}, "end": {get_param: nems_imap_end}}]
+ cidr: {get_param: nems_imap_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: nems_imap_net}
+
+ eca_traffic_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: eca_traffic_name}
+
+ eca_traffic_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: eca_traffic_name}
+ allocation_pools: [{"start": {get_param: eca_traffic_start}, "end": {get_param: eca_traffic_end}}]
+ cidr: {get_param: eca_traffic_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: eca_traffic_net}
+
+ ha_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: ha_net_name}
+
+ ha_net_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: ha_net_name}
+ allocation_pools: [{"start": {get_param: ha_net_start}, "end": {get_param: ha_net_end}}]
+ cidr: {get_param: ha_net_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: ha_net}
+
+ eca_mgmt_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: {get_param: eca_mgmt_name}
+
+ eca_mgmt_network_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ name: {get_param: eca_mgmt_name}
+ allocation_pools: [{"start": {get_param: eca_mgmt_start}, "end": {get_param: eca_mgmt_end}}]
+ cidr: {get_param: eca_mgmt_cidr}
+ enable_dhcp: false
+ gateway_ip: null
+ network_id: {get_resource: eca_mgmt_net}
+
+ lb1_instance:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: lb1_name}
+ image: {get_param: lb_image_name}
+ flavor: {get_param: lb_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: lb1_mgmt_port}
+ - port: {get_resource: lb1_dmz_protected_port}
+ - port: {get_resource: lb1_cor_direct_port}
+ - port: {get_resource: lb1_mms_traffic_port}
+ - port: {get_resource: lb1_nems_traffic_port}
+ - port: {get_resource: lb1_nems_user_web_port}
+ - port: {get_resource: lb1_eca_traffic_port}
+ - port: {get_resource: lb1_ha_net_port}
+
+ lb1_mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: oam_net_name}
+ fixed_ips: [{"ip_address": {get_param: lb1_oam_net_ip}}]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_mms_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: mms_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_dmz_protected_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: dmz_protected_net}
+ fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_cor_direct_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: cor_direct_net}
+ fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_nems_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_nems_user_web_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_user_web_net}
+ fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_ha_net_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: ha_net}
+ fixed_ips: [{"ip_address": {get_param: ha_net_local_ip1}}]
+
+ lb1_eca_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: eca_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_instance:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: lb2_name}
+ image: {get_param: lb_image_name}
+ flavor: {get_param: lb_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: lb2_mgmt_port}
+ - port: {get_resource: lb2_dmz_protected_port}
+ - port: {get_resource: lb2_cor_direct_port}
+ - port: {get_resource: lb2_mms_traffic_port}
+ - port: {get_resource: lb2_nems_traffic_port}
+ - port: {get_resource: lb2_nems_user_web_port}
+ - port: {get_resource: lb2_eca_traffic_port}
+ - port: {get_resource: lb2_ha_net_port}
+
+ lb2_mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: oam_net_name}
+ fixed_ips: [{"ip_address": {get_param: lb2_oam_net_ip}}]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_mms_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: mms_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_dmz_protected_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: dmz_protected_net}
+ fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_cor_direct_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: cor_direct_net}
+ fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_nems_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_nems_user_web_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_user_web_net}
+ fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_ha_net_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: ha_net}
+ fixed_ips: [{"ip_address": {get_param: ha_net_local_ip2}}]
+
+ lb2_eca_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: eca_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ server_mmsc1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc1_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc1_port_0 }
+ - port: { get_resource: mmsc1_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc1_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc1_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+# mmsc1_volume:
+# type: OS::Cinder::Volume
+# properties:
+# size: {get_param: mmsc_cinder_volume_size}
+
+# mmsc1_volume_attachment:
+# type: OS::Cinder::VolumeAttachment
+# properties:
+# volume_id: {get_resource: mmsc1_volume}
+# instance_uuid: {get_resource: server_mmsc1}
+
+ mmsc1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc1_oam_net_ip }
+ ]
+
+ mmsc1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc1_mms_traffic_net_ip }
+ ]
+
+ server_mmsc2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc2_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc2_port_0 }
+ - port: { get_resource: mmsc2_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc2_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc2_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+# mmsc2_volume:
+# type: OS::Cinder::Volume
+# properties:
+# size: {get_param: mmsc_cinder_volume_size}
+
+# mmsc2_volume_attachment:
+# type: OS::Cinder::VolumeAttachment
+# properties:
+# volume_id: {get_resource: mmsc2_volume}
+# instance_uuid: {get_resource: server_mmsc2}
+
+ mmsc2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc2_oam_net_ip }
+ ]
+
+ mmsc2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc2_mms_traffic_net_ip }
+ ]
+
+ server_mmsc3:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc3_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc3_port_0 }
+ - port: { get_resource: mmsc3_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc3_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc3_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+
+ mmsc3_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc3_oam_net_ip }
+ ]
+
+ mmsc3_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc3_mms_traffic_net_ip }
+ ]
+
+ server_mmsc4:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc4_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc4_port_0 }
+ - port: { get_resource: mmsc4_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc4_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc4_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+
+ mmsc4_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc4_oam_net_ip }
+ ]
+
+ mmsc4_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc4_mms_traffic_net_ip }
+ ]
+
+ server_mmsc5:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc5_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc5_port_0 }
+ - port: { get_resource: mmsc5_port_1 }
+
+ mmsc5_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc5_oam_net_ip }
+ ]
+
+ mmsc5_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc5_mms_traffic_net_ip }
+ ]
+
+ server_nems_fe1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_fe1_name }
+ image: { get_param: nems_fe_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_fe_flavor }
+ networks:
+ - port: { get_resource: nems_fe1_port_0 }
+ - port: { get_resource: nems_fe1_port_1 }
+ - port: { get_resource: nems_fe1_port_2 }
+ - port: { get_resource: nems_fe1_port_3 }
+ - port: { get_resource: nems_fe1_port_4 }
+ user_data:
+ str_replace:
+ template: |
+ nems.mgmt.ip=${nems.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.traffic.ip=${nems.traffic.ip}
+ nems.traffic.netmask=${nems.traffic.netmask}
+ nems.traffic.gateway=${nems.traffic.gateway}
+ nems.fe0.internal.ip=${nems.fe0.internal.ip}
+ nems.fe1.internal.ip=${nems.fe1.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.userweb.ip=${nems.userweb.ip}
+ nems.userweb.netmask=${nems.userweb.netmask}
+ nems.userweb.gateway=${nems.userweb.gateway}
+ nems.imap.ip=${nems.imap.ip}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.mgmt.ip}: {get_param: nems_fe1_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.traffic.ip}: {get_param: nems_fe1_nems_traffic_net_ip}
+ ${nems.traffic.netmask}: {get_param: nems_traffic_netmask}
+ ${nems.traffic.gateway}: {get_param: nems_traffic_gateway}
+ ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip}
+ ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.userweb.ip}: {get_param: nems_fe1_nems_user_web_net_ip}
+ ${nems.userweb.netmask}: {get_param: nems_user_web_netmask}
+ ${nems.userweb.gateway}: {get_param: nems_user_web_gateway}
+ ${nems.imap.ip}: {get_param: nems_fe1_nems_imap_net_ip}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip}
+ ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_fe1_node_role}
+ user_data_format: RAW
+
+ nems_fe1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_oam_net_ip }
+ ]
+
+ nems_fe_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_fe1_port_0}
+
+ nems_fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_traffic_net_ip }
+ ]
+
+ nems_fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_user_web_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_user_web_net_ip }
+ ]
+
+ nems_fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_internal_net_ip }
+ ]
+
+ nems_fe1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_imap_net_ip }
+ ]
+
+ server_nems_fe2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_fe2_name }
+ image: { get_param: nems_fe_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_fe_flavor }
+ networks:
+ - port: { get_resource: nems_fe2_port_0 }
+ - port: { get_resource: nems_fe2_port_1 }
+ - port: { get_resource: nems_fe2_port_2 }
+ - port: { get_resource: nems_fe2_port_3 }
+ - port: { get_resource: nems_fe2_port_4 }
+ user_data:
+ str_replace:
+ template: |
+ nems.mgmt.ip=${nems.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.traffic.ip=${nems.traffic.ip}
+ nems.traffic.netmask=${nems.traffic.netmask}
+ nems.traffic.gateway=${nems.traffic.gateway}
+ nems.fe0.internal.ip=${nems.fe0.internal.ip}
+ nems.fe1.internal.ip=${nems.fe1.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.userweb.ip=${nems.userweb.ip}
+ nems.userweb.netmask=${nems.userweb.netmask}
+ nems.userweb.gateway=${nems.userweb.gateway}
+ nems.imap.ip=${nems.imap.ip}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.mgmt.ip}: {get_param: nems_fe2_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.traffic.ip}: {get_param: nems_fe2_nems_traffic_net_ip}
+ ${nems.traffic.netmask}: {get_param: nems_traffic_netmask}
+ ${nems.traffic.gateway}: {get_param: nems_traffic_gateway}
+ ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip}
+ ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.userweb.ip}: {get_param: nems_fe2_nems_user_web_net_ip}
+ ${nems.userweb.netmask}: {get_param: nems_user_web_netmask}
+ ${nems.userweb.gateway}: {get_param: nems_user_web_gateway}
+ ${nems.imap.ip}: {get_param: nems_fe2_nems_imap_net_ip}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip}
+ ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_fe2_node_role}
+ user_data_format: RAW
+
+ nems_fe2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_oam_net_ip }
+ ]
+
+ nems_fe_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_fe2_port_0}
+
+ nems_fe2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_traffic_net_ip }
+ ]
+
+ nems_fe2_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_user_web_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_user_web_net_ip }
+ ]
+
+ nems_fe2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_internal_net_ip }
+ ]
+
+ nems_fe2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_imap_net_ip }
+ ]
+
+ server_nems_be1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_be1_name }
+ image: { get_param: nems_be_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_be_flavor }
+ networks:
+ - port: { get_resource: nems_be1_port_0 }
+ - port: { get_resource: nems_be1_port_1 }
+ - port: { get_resource: nems_be1_port_2 }
+ user_data:
+ str_replace:
+ template: |
+ nems.be.mgmt.ip=${nems.be.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.be.mgmt.ip}: {get_param: nems_be1_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_be1_node_role}
+ user_data_format: RAW
+
+ nems_be1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be1_oam_net_ip }
+ ]
+
+ nems_be_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_be1_port_0}
+
+ nems_be1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be1_nems_internal_net_ip }
+ ]
+
+ nems_be1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be1_nems_imap_net_ip }
+ ]
+
+ server_nems_be2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_be2_name }
+ image: { get_param: nems_be_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_be_flavor }
+ networks:
+ - port: { get_resource: nems_be2_port_0 }
+ - port: { get_resource: nems_be2_port_1 }
+ - port: { get_resource: nems_be2_port_2 }
+ user_data:
+ str_replace:
+ template: |
+ nems.be.mgmt.ip=${nems.be.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.be.mgmt.ip}: {get_param: nems_be2_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_be1_node_role}
+ user_data_format: RAW
+
+ nems_be2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be2_oam_net_ip }
+ ]
+
+ nems_be_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_be2_port_0}
+
+ nems_be2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be2_nems_internal_net_ip }
+ ]
+
+ nems_be2_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be2_nems_imap_net_ip }
+ ]
+
+ server_eca_oam1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: eca_oam1_name }
+ image: { get_param: eca_oam_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: eca_oam_flavor }
+ networks:
+ - port: { get_resource: eca_oam1_port_0 }
+ - port: { get_resource: eca_oam1_port_1 }
+
+ eca_oam1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam1_oam_net_ip }
+ ]
+
+ eca_oam1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_mgmt_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam1_eca_mgmt_net_ip }
+ ]
+
+ server_eca_oam2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: eca_oam2_name }
+ image: { get_param: eca_oam_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: eca_oam_flavor }
+ networks:
+ - port: { get_resource: eca_oam2_port_0 }
+ - port: { get_resource: eca_oam2_port_1 }
+
+ eca_oam2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam2_oam_net_ip }
+ ]
+
+ eca_oam2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_mgmt_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam2_eca_mgmt_net_ip }
+ ]
+
+ server_eca_trx1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: eca_trx1_name }
+ image: { get_param: eca_trx_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: eca_trx_flavor }
+ networks:
+ - port: { get_resource: eca_trx1_port_0 }
+ - port: { get_resource: eca_trx1_port_1 }
+ - port: { get_resource: eca_trx1_port_2 }
+
+
+ eca_trx1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: eca_trx1_oam_net_ip }
+ ]
+
+ eca_trx1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_mgmt_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_trx1_eca_mgmt_net_ip }
+ ]
+
+ eca_trx1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_trx1_eca_traffic_net_ip }
+ ]
diff --git a/asdc-controller/src/test/resources/resource-examples/network.yaml b/asdc-controller/src/test/resources/resource-examples/network.yaml
new file mode 100644
index 0000000..ae10346
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/network.yaml
@@ -0,0 +1,32 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template that creates one COR network (direct).
+
+parameters:
+ cor_direct_net_name:
+ type: string
+ description: Name of COR direct network
+ cor_direct_net_cidr:
+ type: string
+ description: Direct network address (CIDR notation)
+ cor_direct_net_gateway:
+ type: string
+ description: Direct network gateway address
+ cor_direct_net_RT:
+ type: string
+ description: Direct network route-target (RT)
+
+resources:
+ cor_direct_net:
+ type: OS::Contrail::VirtualNetwork
+ properties:
+ name: { get_param: cor_direct_net_name }
+ route_targets: [ get_param: cor_direct_net_RT ]
+
+ cor_direct_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: cor_direct_net }
+ cidr: {get_param: cor_direct_net_cidr}
+ gateway_ip: { get_param: cor_direct_net_gateway }
diff --git a/asdc-controller/src/test/resources/resource-examples/simpleTest.yaml b/asdc-controller/src/test/resources/resource-examples/simpleTest.yaml
new file mode 100644
index 0000000..8bfda2b
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/simpleTest.yaml
@@ -0,0 +1,39 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template that creates one COR network (direct).
+
+parameters:
+ cor_direct_net_name:
+ type: string
+ description: Name of COR direct network
+ default: testCorDirectNet
+ cor_direct_net_cidr:
+ type: string
+ description: Direct network address (CIDR notation)
+ cor_direct_net_gateway:
+ type: string
+ description: Direct network gateway address
+ cor_direct_net_RT:
+ type: string
+ description: Direct network route-target (RT)
+ default: testCorDirectNet
+ ip_port_snmp_manager:
+ type: string
+ default: 162
+ description: SNMP manager IP port
+
+
+resources:
+ cor_direct_net:
+ type: file:///my_test.yaml
+ properties:
+ name: { get_param: cor_direct_net_name }
+ route_targets: [ get_param: cor_direct_net_RT ]
+
+ cor_direct_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: cor_direct_net }
+ cidr: {get_param: cor_direct_net_cidr}
+ gateway_ip: { get_param: cor_direct_net_gateway }
diff --git a/asdc-controller/src/test/resources/resource-examples/simpleTestWithoutParam.yaml b/asdc-controller/src/test/resources/resource-examples/simpleTestWithoutParam.yaml
new file mode 100644
index 0000000..0a2db2b
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/simpleTestWithoutParam.yaml
@@ -0,0 +1,18 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template that creates one COR network (direct).
+
+resources:
+ cor_direct_net:
+ type: file:///my_test.yaml
+ properties:
+ name: { get_param: cor_direct_net_name }
+ route_targets: [ get_param: cor_direct_net_RT ]
+
+ cor_direct_ip_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: cor_direct_net }
+ cidr: {get_param: cor_direct_net_cidr}
+ gateway_ip: { get_param: cor_direct_net_gateway }
diff --git a/asdc-controller/src/test/resources/resource-examples/vnf.yaml b/asdc-controller/src/test/resources/resource-examples/vnf.yaml
new file mode 100644
index 0000000..d4420de
--- /dev/null
+++ b/asdc-controller/src/test/resources/resource-examples/vnf.yaml
@@ -0,0 +1,1449 @@
+heat_template_version: 2013-05-23
+
+description: >
+ HOT template that creates internal networks, load balancers and servers for vMMSC.
+
+parameters:
+ oam_net_name:
+ type: string
+ description: UID of OAM network
+ oam_network_netmask:
+ type: string
+ label: oam network netmask
+ description: oam network gateway
+ oam_network_gateway:
+ type: string
+ label: oam network gateway
+ description: oam network gateway
+ oam_network_route_1:
+ type: string
+ label: oam network route 1
+ description: oam network route 1
+ oam_network_route_2:
+ type: string
+ label: oam network route 2
+ description: oam network route 2
+ external_dns:
+ type: string
+ label: dns server
+ description: dns server for MMSC
+ external_ntp:
+ type: string
+ label: ntp server
+ description: ntp server for MMSC
+ lb1_oam_net_ip:
+ type: string
+ label: management network ip for mmsc
+ description: the ip of the management network for mmsc
+ lb2_oam_net_ip:
+ type: string
+ label: management network ip for mmsc
+ description: the ip of the management network for mmsc
+ dmz_protected_net:
+ type: string
+ description: UID of dmz_protected network
+ dmz_protected_net_local_ip1:
+ type: string
+ label: mmsc dmz protected network local ip1
+ description: the local ip1 of the mmsc dmz protected network
+ dmz_protected_net_local_ip2:
+ type: string
+ label: mmsc dmz protected network local ip2
+ description: the local ip2 of the mmsc dmz protected network
+ dmz_protected_net_floating_ip:
+ type: string
+ label: mmsc dmz protected floating ip
+ description: mmsc dmz direct floating ip
+ cor_direct_net:
+ type: string
+ label: cor direct net UID
+ description: cor direct net
+ cor_direct_net_local_ip1:
+ type: string
+ label: mmsc cor direct network local ip1
+ description: the local ip1 of the mmsc cor direct network
+ cor_direct_net_local_ip2:
+ type: string
+ label: mmsc cor direct network local ip2
+ description: the local ip2 of the mmsc cor direct network
+ cor_direct_net_floating_ip:
+ type: string
+ label: mmsc cor direct floating ip
+ description: mmsc cor direct floating ip
+ mms_traffic_net_name:
+ type: string
+ description: Name of MMS traffic network
+ mms_traffic_net_cidr:
+ type: string
+ description: MMS traffic network address (CIDR notation)
+ mms_traffic_netmask:
+ type: string
+ description: MMS traffic network subnet mask
+ mms_traffic_net_gateway:
+ type: string
+ description: MMS traffic network gateway address
+ mms_traffic_start:
+ type: string
+ label: mmsc traffic start IP
+ description: mmsc traffic start IP
+ mms_traffic_end:
+ type: string
+ label: mmsc traffic end IP
+ description: mmsc traffic end IP
+ mms_traffic_net_cidr:
+ type: string
+ label: mmsc traffic cidr
+ description: mmsc traffic cidr
+ mms_traffic_net_local_ip1:
+ type: string
+ label: mmsc traffic network local ip1
+ description: the local ip1 of the mmsc traffic network
+ mms_traffic_net_local_ip2:
+ type: string
+ label: mmsc traffic network local ip2
+ description: the local ip2 of the mmsc traffic network
+ mms_traffic_net_floating_ip:
+ type: string
+ label: mmsc traffic floating ip
+ description: mmsc traffic floating ip
+ nems_internal_name:
+ type: string
+ label: nems internal network name
+ description: nems internal network name
+ nems_internal_start:
+ type: string
+ label: nems internal start
+ description: nems internal start
+ nems_internal_end:
+ type: string
+ label: nems internal end
+ description: nems internal end
+ nems_internal_cidr:
+ type: string
+ label: nems ineternal cidr
+ description: nems internal cidr
+ nems_internal_netmask:
+ type: string
+ description: NEMS internal network subnet mask
+ nems_internal_gateway:
+ type: string
+ label: nems internal gw
+ description: nems internal gw
+ nems_traffic_name:
+ type: string
+ label: nems traffic name
+ description: nems traffic name
+ nems_traffic_start:
+ type: string
+ label: nems traffic start
+ description: nems traffic start
+ nems_traffic_end:
+ type: string
+ label: nems traffic end
+ description: nems traffic end
+ nems_traffic_cidr:
+ type: string
+ label: nems traffic cidr
+ description: nems traffic cidr
+ nems_traffic_netmask:
+ type: string
+ description: NEMS traffic network subnet mask
+ nems_traffic_gateway:
+ type: string
+ description: NEMS traffic network gateway
+ nems_traffic_net_local_ip1:
+ type: string
+ label: nems traffic network local ip1
+ description: the local ip1 of the nems traffic network
+ nems_traffic_net_local_ip2:
+ type: string
+ label: nems traffic network local ip2
+ description: the local ip2 of the nems traffic network
+ nems_traffic_net_floating_ip:
+ type: string
+ label: nems traffic floating ip
+ description: nems traffic floating ip
+ nems_user_web_name:
+ type: string
+ label: nems user web name
+ description: nems user web name
+ nems_user_web_start:
+ type: string
+ label: nems user web start
+ description: nems user web end
+ nems_user_web_end:
+ type: string
+ label: nems user web end
+ description: nems user web end
+ nems_user_web_cidr:
+ type: string
+ label: nems user web cidr
+ description: nems user web cidr
+ nems_user_web_netmask:
+ type: string
+ description: NEMS user web network subnet mask
+ nems_user_web_gateway:
+ type: string
+ description: NEMS user web network gateway
+ nems_user_web_net_local_ip1:
+ type: string
+ label: nems user web network local ip1
+ description: the local ip1 of the nems user web network
+ nems_user_web_net_local_ip2:
+ type: string
+ label: nems user web network local ip2
+ description: the local ip2 of the nems user web network
+ nems_user_web_net_floating_ip:
+ type: string
+ label: nems user web floating ip
+ description: nems user web floating ip
+ nems_imap_name:
+ type: string
+ label: nems imap name
+ description: nems imap name
+ nems_imap_netmask:
+ type: string
+ label: nems imap subnet mask
+ description: nems imap subnet mask
+ nems_imap_start:
+ type: string
+ label: nems imap start
+ description: nems imap start
+ nems_imap_end:
+ type: string
+ label: nems imap end
+ description: nems imap end
+ nems_imap_cidr:
+ type: string
+ label: nems imap cidr
+ description: nems imap cidr
+ nems_imap_gateway:
+ type: string
+ label: nems imap gateway
+ description: nems imap gateway
+ eca_traffic_name:
+ type: string
+ label: eca traffic name
+ description: eca traffic name
+ eca_traffic_start:
+ type: string
+ label: eca traffic start
+ description: eca traffic start
+ eca_traffic_end:
+ type: string
+ label: eca traffic end
+ description: eca traffic end
+ eca_traffic_cidr:
+ type: string
+ label: eca traffic cidr
+ description: eca traffic cidr
+ eca_traffic_netmask:
+ type: string
+ description: ECA traffic network subnet mask
+ eca_traffic_net_local_ip1:
+ type: string
+ label: eca traffic network local ip1
+ description: the local ip1 of the eca traffic network
+ eca_traffic_net_local_ip2:
+ type: string
+ label: eca traffic network local ip2
+ description: the local ip2 of the eca traffic network
+ eca_traffic_net_floating_ip:
+ type: string
+ label: eca traffic floating ip
+ description: eca traffic floating ip
+ eca_mgmt_name:
+ type: string
+ label: eca management name
+ description: eca management name
+ eca_mgmt_start:
+ type: string
+ label: eca management start
+ description: eca management start
+ eca_mgmt_end:
+ type: string
+ label: eca management end
+ description: eca management end
+ eca_mgmt_cidr:
+ type: string
+ label: eca management cidr
+ description: eca management cidr
+ eca_mgmt_netmask:
+ type: string
+ description: ECA mgmt network subnet mask
+ ha_net_name:
+ type: string
+ label: ha_failover network name
+ description: ha_failover network name
+ ha_net_start:
+ type: string
+ label: ha net start
+ description: ha net start
+ ha_net_end:
+ type: string
+ label: ha net end
+ description: ha net end
+ ha_net_cidr:
+ type: string
+ label: ha net cidr
+ description: ha net cidr
+ ha_net_local_ip1:
+ type: string
+ label: ha net network local ip1
+ description: the local ip1 of the ha network
+ ha_net_local_ip2:
+ type: string
+ label: ha net network local ip2
+ description: the local ip2 of the ha network
+ lb1_name:
+ type: string
+ label: MMSC load balancer instance name
+ description: MMSC load balancer instance name
+ lb_image_name:
+ type: string
+ label: MMSC load balancer image name
+ description: MMSC load balancer image name
+ lb_flavor_name:
+ type: string
+ label: Load balancer flavor name
+ description: the flavor name of MMSC load balancer instance
+ lb1_name:
+ type: string
+ label: MMSC load balancer1 instance name
+ description: MMSC load balancer1 instance name
+ lb2_name:
+ type: string
+ label: MMSC load balancer2 instance name
+ description: MMSC load balancer2 instance name
+ availabilityzone_name:
+ type: string
+ label: MMSC availabilityzone name
+ description: MMSC availabilityzone name
+ security_group_name:
+ type: string
+ label: MMSC security group name
+ description: MMSC security group name
+ mmsc_image:
+ type: string
+ description: Image for MMSC server
+ mmsc_flavor:
+ type: string
+ description: Flavor for MMSC server
+# mmsc_cinder_volume_size:
+# type: number
+# label: MMSC Cinder volume size
+# description: the size of the MMSC Cinder volume
+ nems_fe_image:
+ type: string
+ description: Image for NEMS FE server
+ nems_fe_flavor:
+ type: string
+ description: Flavor for NEMS FE server
+ nems_be_image:
+ type: string
+ description: Image for NEMS BE server
+ nems_be_flavor:
+ type: string
+ description: Flavor for NEMS BE server
+ eca_trx_image:
+ type: string
+ description: Image for ECA TRX server
+ eca_trx_flavor:
+ type: string
+ description: Flavor for ECA TRX server
+ eca_oam_image:
+ type: string
+ description: Image for ECA OAM server
+ eca_oam_flavor:
+ type: string
+ description: Flavor for ECA OAM server
+ cmaui_name:
+ type: string
+ description: CMAUI server name
+ cmaui_image:
+ type: string
+ description: Image for CMAUI server
+ cmaui_flavor:
+ type: string
+ description: Flavor for CMAUI server
+# cmaui_cinder_volume_size:
+# type: number
+# label: CMAUI Cinder volume size
+# description: the size of the CMAUI Cinder volume
+ mmsc1_name:
+ type: string
+ description: MMSC1 server name
+ mmsc1_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC1
+ mmsc1_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC1
+ mmsc2_name:
+ type: string
+ description: MMSC2 server name
+ mmsc2_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC2
+ mmsc2_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC2
+ mmsc3_name:
+ type: string
+ description: MMSC3 server name
+ mmsc3_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC3
+ mmsc3_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC3
+ mmsc4_name:
+ type: string
+ description: MMSC4 server name
+ mmsc4_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC4
+ mmsc4_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC4
+ mmsc5_name:
+ type: string
+ description: MMSC5 server name
+ mmsc5_oam_net_ip:
+ type: string
+ description: OAM_net IP for MMSC5
+ mmsc5_mms_traffic_net_ip:
+ type: string
+ description: mms_traffic_net IP for MMSC5
+ nems_fe1_name:
+ type: string
+ description: NEMS_FE1 server name
+ nems_fe1_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_fe1_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_FE1
+ nems_fe1_nems_traffic_net_ip:
+ type: string
+ description: nems_traffic_net IP for NEMS_FE1
+ nems_fe1_nems_user_web_net_ip:
+ type: string
+ description: nems_web_user_net IP for NEMS_FE1
+ nems_fe1_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_FE1
+ nems_fe1_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_FE1
+ nems_fe2_name:
+ type: string
+ description: NEMS_FE2 server name
+ nems_fe2_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_fe2_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_FE2
+ nems_fe2_nems_traffic_net_ip:
+ type: string
+ description: nems_traffic_net IP for NEMS_FE2
+ nems_fe2_nems_user_web_net_ip:
+ type: string
+ description: nems_web_user_net IP for NEMS_FE2
+ nems_fe2_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_FE2
+ nems_fe2_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_FE2
+ nems_fe2_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_FE2
+ nems_be1_name:
+ type: string
+ description: NEMS_BE2 server name
+ nems_be1_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_be1_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_BE1
+ nems_be1_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_BE1
+ nems_be1_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_BE1
+ nems_be2_name:
+ type: string
+ description: NEMS_BE2 server name
+ nems_be2_node_role:
+ type: string
+ label: nems node role
+ description: nems node role
+ nems_be2_oam_net_ip:
+ type: string
+ description: OAM_net IP for NEMS_BE2
+ nems_be2_nems_internal_net_ip:
+ type: string
+ description: nems_internal_net IP for NEMS_BE2
+ nems_be2_nems_imap_net_ip:
+ type: string
+ description: nems_imap_net IP for NEMS_BE2
+ eca_oam1_name:
+ type: string
+ description: ECA_OAM1 server name
+ eca_oam1_oam_net_ip:
+ type: string
+ description: OAM_net IP for ECA_OAM1
+ eca_oam1_eca_mgmt_net_ip:
+ type: string
+ description: eca_mgmt_net IP for ECA_OAM1
+ eca_oam2_name:
+ type: string
+ description: ECA_OAM2 server name
+ eca_oam2_oam_net_ip:
+ type: string
+ description: OAM_net IP for ECA_OAM2
+ eca_oam2_eca_mgmt_net_ip:
+ type: string
+ description: eca_mgmt_net IP for ECA_OAM2
+ eca_trx1_name:
+ type: string
+ description: ECA_TRX1 server name
+ eca_trx1_oam_net_ip:
+ type: string
+ description: OAM_net IP for ECA_TRX1
+ eca_trx1_eca_mgmt_net_ip:
+ type: string
+ description: eca_mgmt_net IP for ECA_TRX1
+ eca_trx1_eca_traffic_net_ip:
+ type: string
+ description: eca_traffic_net IP for ECA_TRX1
+ cmaui_oam_net_ip:
+ type: string
+ description: eca_mgmt_net IP for CMAUI
+
+resources:
+ mms_security_group:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ description: mmsc security group
+ name: {get_param: security_group_name}
+ rules: [{"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": egress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": tcp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "port_range_min": 1, "port_range_max": 65535, "protocol": udp, "remote_ip_prefix": 0.0.0.0/0},
+ {"direction": ingress, "ethertype": IPv4, "protocol": icmp, "remote_ip_prefix": 0.0.0.0/0}
+ ]
+
+ lb1_instance:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: lb1_name}
+ image: {get_param: lb_image_name}
+ flavor: {get_param: lb_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: lb1_mgmt_port}
+ - port: {get_resource: lb1_dmz_protected_port}
+ - port: {get_resource: lb1_cor_direct_port}
+ - port: {get_resource: lb1_mms_traffic_port}
+ - port: {get_resource: lb1_nems_traffic_port}
+ - port: {get_resource: lb1_nems_user_web_port}
+ - port: {get_resource: lb1_eca_traffic_port}
+ - port: {get_resource: lb1_ha_net_port}
+
+ lb1_mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: oam_net_name}
+ fixed_ips: [{"ip_address": {get_param: lb1_oam_net_ip}}]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_mms_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: mms_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_dmz_protected_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: dmz_protected_net}
+ fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_cor_direct_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: cor_direct_net}
+ fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_nems_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_nems_user_web_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_user_web_net}
+ fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb1_ha_net_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: ha_net}
+ fixed_ips: [{"ip_address": {get_param: ha_net_local_ip1}}]
+
+ lb1_eca_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: eca_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip1}}]
+ allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_instance:
+ type: OS::Nova::Server
+ properties:
+ name: {get_param: lb2_name}
+ image: {get_param: lb_image_name}
+ flavor: {get_param: lb_flavor_name}
+ availability_zone: {get_param: availabilityzone_name}
+ networks:
+ - port: {get_resource: lb2_mgmt_port}
+ - port: {get_resource: lb2_dmz_protected_port}
+ - port: {get_resource: lb2_cor_direct_port}
+ - port: {get_resource: lb2_mms_traffic_port}
+ - port: {get_resource: lb2_nems_traffic_port}
+ - port: {get_resource: lb2_nems_user_web_port}
+ - port: {get_resource: lb2_eca_traffic_port}
+ - port: {get_resource: lb2_ha_net_port}
+
+ lb2_mgmt_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: oam_net_name}
+ fixed_ips: [{"ip_address": {get_param: lb2_oam_net_ip}}]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_mms_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: mms_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: mms_traffic_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: mms_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_dmz_protected_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: dmz_protected_net}
+ fixed_ips: [{"ip_address": {get_param: dmz_protected_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: dmz_protected_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_cor_direct_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_param: cor_direct_net}
+ fixed_ips: [{"ip_address": {get_param: cor_direct_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: cor_direct_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_nems_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: nems_traffic_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_nems_user_web_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: nems_user_web_net}
+ fixed_ips: [{"ip_address": {get_param: nems_user_web_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: nems_user_web_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ lb2_ha_net_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: ha_net}
+ fixed_ips: [{"ip_address": {get_param: ha_net_local_ip2}}]
+
+ lb2_eca_traffic_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: {get_resource: eca_traffic_net}
+ fixed_ips: [{"ip_address": {get_param: eca_traffic_net_local_ip2}}]
+ allowed_address_pairs: [{"ip_address": {get_param: eca_traffic_net_floating_ip} }]
+ security_groups: [{get_resource: mms_security_group}]
+
+ server_mmsc1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc1_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc1_port_0 }
+ - port: { get_resource: mmsc1_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc1_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc1_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+# mmsc1_volume:
+# type: OS::Cinder::Volume
+# properties:
+# size: {get_param: mmsc_cinder_volume_size}
+
+# mmsc1_volume_attachment:
+# type: OS::Cinder::VolumeAttachment
+# properties:
+# volume_id: {get_resource: mmsc1_volume}
+# instance_uuid: {get_resource: server_mmsc1}
+
+ mmsc1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc1_oam_net_ip }
+ ]
+
+ mmsc1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc1_mms_traffic_net_ip }
+ ]
+
+ server_mmsc2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc2_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc2_port_0 }
+ - port: { get_resource: mmsc2_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc2_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc2_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+# mmsc2_volume:
+# type: OS::Cinder::Volume
+# properties:
+# size: {get_param: mmsc_cinder_volume_size}
+
+# mmsc2_volume_attachment:
+# type: OS::Cinder::VolumeAttachment
+# properties:
+# volume_id: {get_resource: mmsc2_volume}
+# instance_uuid: {get_resource: server_mmsc2}
+
+ mmsc2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc2_oam_net_ip }
+ ]
+
+ mmsc2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc2_mms_traffic_net_ip }
+ ]
+
+ server_mmsc3:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc3_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc3_port_0 }
+ - port: { get_resource: mmsc3_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc3_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc3_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+
+ mmsc3_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc3_oam_net_ip }
+ ]
+
+ mmsc3_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc3_mms_traffic_net_ip }
+ ]
+
+ server_mmsc4:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc4_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc4_port_0 }
+ - port: { get_resource: mmsc4_port_1 }
+ user_data:
+ str_replace:
+ template: |
+ mmsc.mgmt.ip=${mmsc.mgmt.ip}
+ mmsc.mgmt.netmask=${mmsc.mgmt.netmask}
+ mmsc.mgmt.gateway=${mmsc.mgmt.gateway}
+ mmsc.traffic.ip=${mmsc.traffic.ip}
+ mmsc.traffic.netmask=${mmsc.traffic.netmask}
+ mmsc.traffic.gateway=${mmsc.traffic.gateway}
+ mmsc.mgmt.route.1=${mmsc.mgmt.route.1}
+ mmsc.mgmt.route.2=${mmsc.mgmt.route.2}
+ mmsc.external.dns=${mmsc.external.dns}
+ mmsc.external.ntp=${mmsc.external.ntp}
+ params:
+ ${mmsc.mgmt.ip}: {get_param: mmsc4_oam_net_ip}
+ ${mmsc.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${mmsc.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${mmsc.traffic.ip}: {get_param: mmsc4_mms_traffic_net_ip}
+ ${mmsc.traffic.netmask}: {get_param: mms_traffic_netmask}
+ ${mmsc.traffic.gateway}: {get_param: mms_traffic_net_gateway}
+ ${mmsc.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${mmsc.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${mmsc.external.dns}: {get_param: external_dns}
+ ${mmsc.external.ntp}: {get_param: external_ntp}
+ user_data_format: RAW
+
+ mmsc4_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc4_oam_net_ip }
+ ]
+
+ mmsc4_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc4_mms_traffic_net_ip }
+ ]
+
+ server_mmsc5:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: mmsc5_name }
+ image: { get_param: mmsc_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: mmsc_flavor }
+ networks:
+ - port: { get_resource: mmsc5_port_0 }
+ - port: { get_resource: mmsc5_port_1 }
+
+ mmsc5_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc5_oam_net_ip }
+ ]
+
+ mmsc5_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: mms_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: mmsc5_mms_traffic_net_ip }
+ ]
+
+ server_nems_fe1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_fe1_name }
+ image: { get_param: nems_fe_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_fe_flavor }
+ networks:
+ - port: { get_resource: nems_fe1_port_0 }
+ - port: { get_resource: nems_fe1_port_1 }
+ - port: { get_resource: nems_fe1_port_2 }
+ - port: { get_resource: nems_fe1_port_3 }
+ - port: { get_resource: nems_fe1_port_4 }
+ user_data:
+ str_replace:
+ template: |
+ nems.mgmt.ip=${nems.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.traffic.ip=${nems.traffic.ip}
+ nems.traffic.netmask=${nems.traffic.netmask}
+ nems.traffic.gateway=${nems.traffic.gateway}
+ nems.fe0.internal.ip=${nems.fe0.internal.ip}
+ nems.fe1.internal.ip=${nems.fe1.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.userweb.ip=${nems.userweb.ip}
+ nems.userweb.netmask=${nems.userweb.netmask}
+ nems.userweb.gateway=${nems.userweb.gateway}
+ nems.imap.ip=${nems.imap.ip}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.mgmt.ip}: {get_param: nems_fe1_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.traffic.ip}: {get_param: nems_fe1_nems_traffic_net_ip}
+ ${nems.traffic.netmask}: {get_param: nems_traffic_netmask}
+ ${nems.traffic.gateway}: {get_param: nems_traffic_gateway}
+ ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip}
+ ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.userweb.ip}: {get_param: nems_fe1_nems_user_web_net_ip}
+ ${nems.userweb.netmask}: {get_param: nems_user_web_netmask}
+ ${nems.userweb.gateway}: {get_param: nems_user_web_gateway}
+ ${nems.imap.ip}: {get_param: nems_fe1_nems_imap_net_ip}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip}
+ ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_fe1_node_role}
+ user_data_format: RAW
+
+ nems_fe1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_oam_net_ip }
+ ]
+
+ nems_fe_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_fe1_port_0}
+
+ nems_fe1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_traffic_net_ip }
+ ]
+
+ nems_fe1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_user_web_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_user_web_net_ip }
+ ]
+
+ nems_fe1_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_internal_net_ip }
+ ]
+
+ nems_fe1_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe1_nems_imap_net_ip }
+ ]
+
+ server_nems_fe2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_fe2_name }
+ image: { get_param: nems_fe_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_fe_flavor }
+ networks:
+ - port: { get_resource: nems_fe2_port_0 }
+ - port: { get_resource: nems_fe2_port_1 }
+ - port: { get_resource: nems_fe2_port_2 }
+ - port: { get_resource: nems_fe2_port_3 }
+ - port: { get_resource: nems_fe2_port_4 }
+ user_data:
+ str_replace:
+ template: |
+ nems.mgmt.ip=${nems.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.traffic.ip=${nems.traffic.ip}
+ nems.traffic.netmask=${nems.traffic.netmask}
+ nems.traffic.gateway=${nems.traffic.gateway}
+ nems.fe0.internal.ip=${nems.fe0.internal.ip}
+ nems.fe1.internal.ip=${nems.fe1.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.userweb.ip=${nems.userweb.ip}
+ nems.userweb.netmask=${nems.userweb.netmask}
+ nems.userweb.gateway=${nems.userweb.gateway}
+ nems.imap.ip=${nems.imap.ip}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.mgmt.ip}: {get_param: nems_fe2_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.traffic.ip}: {get_param: nems_fe2_nems_traffic_net_ip}
+ ${nems.traffic.netmask}: {get_param: nems_traffic_netmask}
+ ${nems.traffic.gateway}: {get_param: nems_traffic_gateway}
+ ${nems.fe0.internal.ip}: {get_param: nems_fe1_nems_internal_net_ip}
+ ${nems.fe1.internal.ip}: {get_param: nems_fe2_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.userweb.ip}: {get_param: nems_fe2_nems_user_web_net_ip}
+ ${nems.userweb.netmask}: {get_param: nems_user_web_netmask}
+ ${nems.userweb.gateway}: {get_param: nems_user_web_gateway}
+ ${nems.imap.ip}: {get_param: nems_fe2_nems_imap_net_ip}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip}
+ ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_fe2_node_role}
+ user_data_format: RAW
+
+ nems_fe2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_oam_net_ip }
+ ]
+
+ nems_fe_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_fe2_port_0}
+
+ nems_fe2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_traffic_net_ip }
+ ]
+
+ nems_fe2_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_user_web_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_user_web_net_ip }
+ ]
+
+ nems_fe2_port_3:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_internal_net_ip }
+ ]
+
+ nems_fe2_port_4:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_fe2_nems_imap_net_ip }
+ ]
+
+ server_nems_be1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_be1_name }
+ image: { get_param: nems_be_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_be_flavor }
+ networks:
+ - port: { get_resource: nems_be1_port_0 }
+ - port: { get_resource: nems_be1_port_1 }
+ - port: { get_resource: nems_be1_port_2 }
+ user_data:
+ str_replace:
+ template: |
+ nems.be.mgmt.ip=${nems.be.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.be.mgmt.ip}: {get_param: nems_be1_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be1_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.imap.ip}: {get_param: nems_be1_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_be1_node_role}
+ user_data_format: RAW
+
+ nems_be1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be1_oam_net_ip }
+ ]
+
+ nems_be_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_be1_port_0}
+
+ nems_be1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be1_nems_internal_net_ip }
+ ]
+
+ nems_be1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be1_nems_imap_net_ip }
+ ]
+
+ server_nems_be2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: nems_be2_name }
+ image: { get_param: nems_be_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: nems_be_flavor }
+ networks:
+ - port: { get_resource: nems_be2_port_0 }
+ - port: { get_resource: nems_be2_port_1 }
+ - port: { get_resource: nems_be2_port_2 }
+ user_data:
+ str_replace:
+ template: |
+ nems.be.mgmt.ip=${nems.be.mgmt.ip}
+ nems.mgmt.netmask=${nems.mgmt.netmask}
+ nems.mgmt.gateway=${nems.mgmt.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.internal.netmask=${nems.internal.netmask}
+ nems.internal.gateway=${nems.internal.gateway}
+ nems.imap.netmask=${nems.imap.netmask}
+ nems.imap.gateway=${nems.imap.gateway}
+ nems.be.internal.ip=${nems.be.internal.ip}
+ nems.be.imap.ip=${nems.be.imap.ip}
+ nems.mgmt.route.1=${nems.mgmt.route.1}
+ nems.mgmt.route.2=${nems.mgmt.route.2}
+ nems.external.dns=${nems.external.dns}
+ nems.external.ntp=${nems.external.ntp}
+ nems.node=${nems.node}
+ params:
+ ${nems.be.mgmt.ip}: {get_param: nems_be2_oam_net_ip}
+ ${nems.mgmt.netmask}: {get_param: oam_network_netmask}
+ ${nems.mgmt.gateway}: {get_param: oam_network_gateway}
+ ${nems.be.internal.ip}: {get_param: nems_be2_nems_internal_net_ip}
+ ${nems.internal.netmask}: {get_param: nems_internal_netmask}
+ ${nems.internal.gateway}: {get_param: nems_internal_gateway}
+ ${nems.imap.netmask}: {get_param: nems_imap_netmask}
+ ${nems.imap.gateway}: {get_param: nems_imap_gateway}
+ ${nems.be.imap.ip}: {get_param: nems_be2_nems_imap_net_ip}
+ ${nems.mgmt.route.1}: {get_param: oam_network_route_1}
+ ${nems.mgmt.route.2}: {get_param: oam_network_route_2}
+ ${nems.external.dns}: {get_param: external_dns}
+ ${nems.external.ntp}: {get_param: external_ntp}
+ ${nems.node}: {get_param: nems_be1_node_role}
+ user_data_format: RAW
+
+ nems_be2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be2_oam_net_ip }
+ ]
+
+ nems_be_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: {get_param: oam_net_name}
+ port_id: {get_resource: nems_be2_port_0}
+
+ nems_be2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_internal_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be2_nems_internal_net_ip }
+ ]
+
+ nems_be2_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: nems_imap_net }
+ fixed_ips: [
+ "ip_address": { get_param: nems_be2_nems_imap_net_ip }
+ ]
+
+ server_eca_oam1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: eca_oam1_name }
+ image: { get_param: eca_oam_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: eca_oam_flavor }
+ networks:
+ - port: { get_resource: eca_oam1_port_0 }
+ - port: { get_resource: eca_oam1_port_1 }
+
+ eca_oam1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam1_oam_net_ip }
+ ]
+
+ eca_oam1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_mgmt_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam1_eca_mgmt_net_ip }
+ ]
+
+ server_eca_oam2:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: eca_oam2_name }
+ image: { get_param: eca_oam_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: eca_oam_flavor }
+ networks:
+ - port: { get_resource: eca_oam2_port_0 }
+ - port: { get_resource: eca_oam2_port_1 }
+
+ eca_oam2_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam2_oam_net_ip }
+ ]
+
+ eca_oam2_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_mgmt_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_oam2_eca_mgmt_net_ip }
+ ]
+
+ server_eca_trx1:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: eca_trx1_name }
+ image: { get_param: eca_trx_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: eca_trx_flavor }
+ networks:
+ - port: { get_resource: eca_trx1_port_0 }
+ - port: { get_resource: eca_trx1_port_1 }
+ - port: { get_resource: eca_trx1_port_2 }
+
+
+ eca_trx1_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: eca_trx1_oam_net_ip }
+ ]
+
+ eca_trx1_port_1:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_mgmt_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_trx1_eca_mgmt_net_ip }
+ ]
+
+ eca_trx1_port_2:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_resource: eca_traffic_net }
+ fixed_ips: [
+ "ip_address": { get_param: eca_trx1_eca_traffic_net_ip }
+ ]
+
+ server_cmaui:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: cmaui_name }
+ image: { get_param: cmaui_image }
+ availability_zone: { get_param: availabilityzone_name }
+ flavor: { get_param: cmaui_flavor }
+ networks:
+ - port: { get_resource: cmaui_port_0 }
+
+# cmaui_volume:
+# type: OS::Cinder::Volume
+# properties:
+# size: {get_param: cmaui_cinder_volume_size}
+
+# cmaui_volume_attachment:
+# type: OS::Cinder::VolumeAttachment
+# properties:
+# volume_id: {get_resource: cmaui_volume}
+# instance_uuid: {get_resource: server_cmaui}
+
+ cmaui_port_0:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: oam_net_name }
+ fixed_ips: [
+ "ip_address": { get_param: cmaui_oam_net_ip }
+ ]
+