Merge "[CORD-1650] Update TOSCA/variables to work with bridge/bond refactor"
diff --git a/ecord-global.yml b/ecord-global.yml
index 81155fd..6017c45 100644
--- a/ecord-global.yml
+++ b/ecord-global.yml
@@ -61,6 +61,3 @@
 # service graph gui constraints
 xos_gui_service_graph_constraints: '["vnaas"]'
 
-# VTN network configuration
-management_network_ip: 172.27.0.1/24
-data_plane_ip: 10.168.0.253/24
diff --git a/ecord.yml b/ecord.yml
index a8f61a1..b35b123 100644
--- a/ecord.yml
+++ b/ecord.yml
@@ -76,10 +76,6 @@
 # service graph gui constraints
 xos_gui_service_graph_constraints: '["vee", "veg", "vrouter"]'
 
-# VTN network configuration
-management_network_ip: 172.27.0.1/24
-data_plane_ip: 10.168.0.253/24
-
 # Juju config
 charm_versions:
   ceilometer: "cs:trusty/ceilometer-17"
diff --git a/templates/carrierethernet-global-app.yaml.j2 b/templates/carrierethernet-global-app.yaml.j2
index d1406fb..0b9e96c 100644
--- a/templates/carrierethernet-global-app.yaml.j2
+++ b/templates/carrierethernet-global-app.yaml.j2
@@ -6,7 +6,7 @@
    - custom_types/onosservice.yaml
    - custom_types/serviceinstanceattribute.yaml
 
-description: carrierethernet-app onboarding, generated by platform-install
+description: carrierethernet-app onboarding, generated by ecord profile
 topology_template:
   node_templates:
 
diff --git a/templates/carrierethernet-local-app.yaml.j2 b/templates/carrierethernet-local-app.yaml.j2
index 70f24aa..b792f36 100644
--- a/templates/carrierethernet-local-app.yaml.j2
+++ b/templates/carrierethernet-local-app.yaml.j2
@@ -5,7 +5,7 @@
    - custom_types/onosservice.yaml
    - custom_types/serviceinstanceattribute.yaml
 
-description: carrierethernet-app onboarding, generated by platform-install
+description: carrierethernet-app onboarding, generated by ecord profile
 topology_template:
   node_templates:
 
diff --git a/templates/ecord-services.yaml.j2 b/templates/ecord-services.yaml.j2
index cbdc2bf..fad4bde 100644
--- a/templates/ecord-services.yaml.j2
+++ b/templates/ecord-services.yaml.j2
@@ -1,3 +1,4 @@
+---
 {#
 Copyright 2017-present Open Networking Foundation
 
@@ -16,7 +17,7 @@
 
 tosca_definitions_version: tosca_simple_yaml_1_0
 
-description: Just enough Tosca to get the vEG slice running on the CORD POD, created by platform-install
+description: Just enough Tosca to get the vEG slice running on the CORD POD, created by ecord profile
 
 imports:
   - custom_types/addressmanagerservice.yaml
@@ -55,13 +56,14 @@
     management:
       type: tosca.nodes.Network
       properties:
-        name: management
         must-exist: true
+        name: management
 
-{% if use_management_hosts %}
-    management_hosts:
+{% if use_vtn_net_management_host %}
+    management_host:
       type: tosca.nodes.Network
       properties:
+        name: management_host
         must-exist: true
 {% endif %}
 
@@ -80,13 +82,15 @@
         must-exist: true
 
 # CORD Services
+
+# Using same addresses as the r-cord VSG
     addresses_veg:
       type: tosca.nodes.AddressPool
       properties:
         name: addresses_veg
-        addresses: 10.7.1.0/24
-        gateway_ip: 10.7.1.1
-        gateway_mac: a4:23:05:06:01:01
+        addresses: {{ addresspool_vsg_cidr }}
+        gateway_ip: {{ addresspool_vsg_cidr | ipaddr('1') | ipaddr('address') }}
+        gateway_mac: {{ fabric_gateway_hwaddr }}
       requirements:
         - service:
             node: service#addressmanager
@@ -96,9 +100,9 @@
       type: tosca.nodes.AddressPool
       properties:
         name: addresses_public
-        addresses: 10.8.1.0/24
-        gateway_ip: 10.8.1.1
-        gateway_mac: a4:23:05:06:01:01
+        addresses: {{ addresspool_public_cidr }}
+        gateway_ip: {{ addresspool_public_cidr | ipaddr('1') | ipaddr('address') }}
+        gateway_mac: {{ fabric_gateway_hwaddr }}
       requirements:
         - service:
             node: service#addressmanager
@@ -194,10 +198,10 @@
               node: service#vrouter
               relationship: tosca.relationships.BelongsToOne
 
-    template#veg:
+    veg_template:
       type: tosca.nodes.NetworkTemplate
       properties:
-        name: veg
+        name: veg_template
         visibility: private
         translation: none
         vtn_kind: VSG
@@ -210,7 +214,7 @@
         # ip_version: 4
       requirements:
         - template:
-            node: template#veg
+            node: veg_template
             relationship: tosca.relationships.BelongsToOne
         - owner:
             node: {{ site_name }}_veg
@@ -254,12 +258,12 @@
               node: {{ site_name }}_veg
               relationship: tosca.relationships.BelongsToOne
 
-{% if use_management_hosts %}
-    networkslice#management_hosts_to_{{ site_name }}_veg:
+{% if use_vtn_net_management_host %}
+    networkslice#management_host_to_{{ site_name }}_veg:
         type: tosca.nodes.NetworkSlice
         requirements:
           - network:
-              node: management_hosts
+              node: management_host
               relationship: tosca.relationships.BelongsToOne
           - slice:
             node: {{ site_name }}_veg
diff --git a/templates/management-net.yaml.j2 b/templates/management-net.yaml.j2
index 9c7b03c..7447322 100644
--- a/templates/management-net.yaml.j2
+++ b/templates/management-net.yaml.j2
@@ -24,7 +24,7 @@
    - custom_types/slice.yaml
    - custom_types/site.yaml
 
-description: management network config, generated by platform-install
+description: management network config, generated by ecord profile
 
 topology_template:
   node_templates:
@@ -35,7 +35,7 @@
       properties:
         name: {{ site_name }}
 
-# management network
+# management (vtn: MANAGEMENT_LOCAL) network
     management_template:
       type: tosca.nodes.NetworkTemplate
       properties:
@@ -49,7 +49,7 @@
       properties:
         name: management
         # ip_version: 4
-        subnet: {{ management_network_cidr }}
+        subnet: {{ vtn_net_management_local_cidr }}
         permit_all_slices: true
       requirements:
         - template:
@@ -59,33 +59,37 @@
             node: slice#{{ site_name }}_management
             relationship: tosca.relationships.BelongsToOne
 
-{% if use_management_hosts %}
-    management_hosts_template:
+{% if use_vtn_net_management_host %}
+# management_host (vtn: MANAGEMENT_HOST) network
+    management_host_template:
       type: tosca.nodes.NetworkTemplate
       properties:
-        name: management_hosts_template
+        name: management_host_template
         visibility: private
         translation: none
         vtn_kind: MANAGEMENT_HOST
 
-    management_hosts:
+    management_host:
       type: tosca.nodes.Network
       properties:
+        name: management_host
         # ip_version: 4
-        subnet: {{ management_hosts_net_cidr }}
-        start_ip: {{ management_hosts_net_range_xos_low }}
-        end_ip: {{ management_hosts_net_range_xos_high }}
+        subnet: {{ vtn_net_management_host_cidr }}
+        start_ip: {{ vtn_net_management_host_range_xos_low }}
+        end_ip: {{ vtn_net_management_host_range_xos_high }}
+        permit_all_slices: true
       requirements:
         - template:
-            node: management_hosts_template
+            node: management_host_template
             relationship: tosca.relationships.BelongsToOne
         - owner:
             node: slice#{{ site_name }}_management
             relationship: tosca.relationships.BelongsToOne
 {% endif %}
 
+# Slice to own management networks
     slice#{{ site_name }}_management:
-      description: This slice exists solely to own the management network
+      description: This slice exists solely to own the management network(s)
       type: tosca.nodes.Slice
       properties:
         network: noauto
diff --git a/templates/public-net.yaml.j2 b/templates/public-net.yaml.j2
index 610c58b..0c2aeaa 100644
--- a/templates/public-net.yaml.j2
+++ b/templates/public-net.yaml.j2
@@ -1,4 +1,4 @@
-
+---
 {#
 Copyright 2017-present Open Networking Foundation
 
@@ -15,7 +15,6 @@
 limitations under the License.
 #}
 
-
 tosca_definitions_version: tosca_simple_yaml_1_0
 
 imports:
@@ -29,21 +28,30 @@
   - custom_types/site.yaml
   - custom_types/slice.yaml
 
-description: public network config, generated by platform-install
+description: public network config, generated by ecord profile
 
 topology_template:
   node_templates:
 
-# site, fully created in deployment.yaml
+# site, fully created in deployment.yaml.j2
     {{ site_name }}:
       type: tosca.nodes.Site
       properties:
         name: {{ site_name }}
         must-exist: true
 
+    {{ site_name }}_public:
+      description: This slice exists solely to own the public network
+      type: tosca.nodes.Slice
+      properties:
+        network: noauto
+        name: {{ site_name }}_public
+      requirements:
+        - site:
+            node: {{ site_name }}
+            relationship: tosca.relationships.BelongsToOne
 
-
-# Address Manager service, fully created in cord-service.yaml
+# Address Manager service, fully created in cord-services.yaml.j2
     service#addressmanager:
       type: tosca.nodes.AddressManagerService
       properties:
@@ -51,31 +59,30 @@
         must-exist: true
 
 # public network
-
     public_template:
       type: tosca.nodes.NetworkTemplate
       properties:
-          name: public_template
-          visibility: public
-          translation: none
-          vtn_kind: PUBLIC
+        name: public_template
+        visibility: public
+        translation: none
+        vtn_kind: PUBLIC
 
     public:
       type: tosca.nodes.Network
       properties:
-          name: public
-          permit_all_slices: true
-          subnet: 10.8.1.0/24 # NOTE same as AddressPool#addresses_public
-          # ip_version: 4
+        name: public
+        permit_all_slices: true
+        subnet: {{ addresspool_public_cidr }}
+        # ip_version: 4
       requirements:
-          - template:
-              node: public_template
-              relationship: tosca.relationships.BelongsToOne
-          - owner:
-              node: {{ site_name }}_public
-              relationship: tosca.relationships.BelongsToOne
+        - template:
+            node: public_template
+            relationship: tosca.relationships.BelongsToOne
+        - owner:
+            node: {{ site_name }}_public
+            relationship: tosca.relationships.BelongsToOne
 
-    # Created in cord-services.yaml.j2
+# Created in cord-services.yaml.j2
     addresses_public:
       type: tosca.nodes.AddressPool
       properties:
@@ -85,33 +92,22 @@
     AddressManagerServiceInstancePublicNetwork:
       type: tosca.nodes.AddressManagerServiceInstance
       requirements:
-          - owner:
-              node: service#addressmanager
-              relationship: tosca.relationships.BelongsToOne
-          - address_pool:
-              node: addresses_public
-              relationship: tosca.relationships.BelongsToOne
+        - owner:
+            node: service#addressmanager
+            relationship: tosca.relationships.BelongsToOne
+        - address_pool:
+            node: addresses_public
+            relationship: tosca.relationships.BelongsToOne
       properties:
-          name: AM_public_net
+        name: AM_public_net
 
     public_to_address_manager:
-        type: tosca.nodes.ServiceInstanceLink
-        requirements:
-          - provider_service_instance:
-              node: AddressManagerServiceInstancePublicNetwork
-              relationship: tosca.relationships.BelongsToOne
-          - subscriber_network:
-              node: public
-              relationship: tosca.relationships.BelongsToOne
-
-    {{ site_name }}_public:
-      description: This slice exists solely to own the public network
-      type: tosca.nodes.Slice
-      properties:
-          network: noauto
-          name: {{ site_name }}_public
+      type: tosca.nodes.ServiceInstanceLink
       requirements:
-          - site:
-              node: {{ site_name }}
-              relationship: tosca.relationships.BelongsToOne
+        - provider_service_instance:
+            node: AddressManagerServiceInstancePublicNetwork
+            relationship: tosca.relationships.BelongsToOne
+        - subscriber_network:
+            node: public
+            relationship: tosca.relationships.BelongsToOne
 
diff --git a/templates/vee-service.yaml.j2 b/templates/vee-service.yaml.j2
index 9fea06d..4a5dfd1 100644
--- a/templates/vee-service.yaml.j2
+++ b/templates/vee-service.yaml.j2
@@ -1,4 +1,4 @@
-
+---
 {#
 Copyright 2017-present Open Networking Foundation
 
@@ -15,7 +15,6 @@
 limitations under the License.
 #}
 
-
 tosca_definitions_version: tosca_simple_yaml_1_0
 
 imports:
@@ -24,7 +23,7 @@
    - custom_types/networktemplate.yaml
    - custom_types/servicedependency.yaml
 
-description: vee services, generated by platform-install
+description: vee services, generated by ecord profile
 
 topology_template:
   node_templates:
@@ -53,10 +52,10 @@
             node: service#vee
             relationship: tosca.relationships.BelongsToOne
 
-    template#vee:
+    vee_template:
       type: tosca.nodes.NetworkTemplate
       properties:
-        name: vee
+        name: vee_template
         visibility: private
         translation: none
         vtn_kind: vee
diff --git a/templates/vnaasglobal-service-reference.yaml.j2 b/templates/vnaasglobal-service-reference.yaml.j2
index 1fbf3d9..4c0ed98 100644
--- a/templates/vnaasglobal-service-reference.yaml.j2
+++ b/templates/vnaasglobal-service-reference.yaml.j2
@@ -1,3 +1,4 @@
+---
 {#
 Copyright 2017-present Open Networking Foundation
 
@@ -19,7 +20,7 @@
 imports:
    - custom_types/vnaas.yaml
 
-description: vnaasglobal services, generated by platform-install
+description: vnaasglobal services, generated by ecord profile
 
 topology_template:
   node_templates:
diff --git a/templates/vtn-service.yaml.j2 b/templates/vtn-service.yaml.j2
index 6a2dbd6..4f5a419 100644
--- a/templates/vtn-service.yaml.j2
+++ b/templates/vtn-service.yaml.j2
@@ -44,7 +44,7 @@
           kind: platform
           view_url: /admin/vtn/vtnservice/$id$/
           privateGatewayMac: 00:00:00:00:00:01
-          localManagementIp: {{ management_network_ip }}
+          localManagementIp: {{ vtn_net_management_local_cidr | ipaddr('1') }}
           ovsdbPort: 6641
           sshUser: root
           sshKeyFile: /root/node_key