
{#
Copyright 2017-present Open Networking Foundation

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.
#}


tosca_definitions_version: tosca_simple_yaml_1_0

description: Intel demo configuration at ONS '17

imports:
  - custom_types/xos.yaml

topology_template:
  node_templates:

# site, fully created in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        no-create: true
        no-delete: true
        no-update: true

# management network, fully created in management-net.yaml
    management:
      type: tosca.nodes.network.Network.XOS
      properties:
        no-create: true
        no-delete: true
        no-update: true

# mcord-private network template
    mcord-private:
      type: tosca.nodes.NetworkTemplate
      properties:
        vtn_kind: PRIVATE

# mcord-access network template
    mcord-access:
      type: tosca.nodes.NetworkTemplate
      properties:
        vtn_kind: ACCESS_AGENT

# OpenStack flavor
    m1.large:
      type: tosca.nodes.Flavor

# compute-node image
    trusty-server-multi-nic:
      type: tosca.nodes.Image

# CPDP_1 Network
    CPDP_1:
      type: tosca.nodes.network.Network
      properties:
        ip_version: 4
      requirements:
        - network_template:
            node: mcord-private
            relationship: tosca.relationships.UsesNetworkTemplate
        - owner:
            node: {{ site_name }}_CP_slice
            relationship: tosca.relationships.MemberOfSlice
        - connection:
            node: {{ site_name }}_CP_slice
            relationship: tosca.relationships.ConnectsToSlice
        - connection:
            node: {{ site_name }}_DP_slice
            relationship: tosca.relationships.ConnectsToSlice

# S1U_1 Network
    S1U_1:
      type: tosca.nodes.network.Network
      properties:
        ip_version: 4
      requirements:
        - network_template:
            node: mcord-access
            relationship: tosca.relationships.UsesNetworkTemplate
        - owner:
            node: mysite_DP_slice
            relationship: tosca.relationships.MemberOfSlice
        - connection:
            node: mysite_DP_slice
            relationship: tosca.relationships.ConnectsToSlice

# S11_1 Network
    S11_1:
      type: tosca.nodes.network.Network
      properties:
        ip_version: 4
      requirements:
        - network_template:
            node: mcord-access
            relationship: tosca.relationships.UsesNetworkTemplate
        - owner:
            node: {{ site_name }}_CP_slice
            relationship: tosca.relationships.MemberOfSlice
        - connection:
            node: {{ site_name }}_CP_slice
            relationship: tosca.relationships.ConnectsToSlice

# SGI_1 Network
    SGI_1:
      type: tosca.nodes.network.Network
      properties:
        ip_version: 4
      requirements:
        - network_template:
            node: mcord-access
            relationship: tosca.relationships.UsesNetworkTemplate
        - owner:
            node: mysite_DP_slice
            relationship: tosca.relationships.MemberOfSlice
        - connection:
            node: mysite_DP_slice
            relationship: tosca.relationships.ConnectsToSlice

# CP_slice Slice
    {{ site_name }}_CP_slice:
      type: tosca.nodes.Slice
      properties:
        network: noauto
      requirements:
        - slice:
            node: {{ site_name }}
            relationship: tosca.relationships.MemberOfSite
        - image:
            node: trusty-server-multi-nic
            relationship: tosca.relationships.DefaultImage
        - default_flavor:
            node: m1.large
            relationship: tosca.relationships.DefaultFlavor 
        - network_mgmt:
            node: management
            relationship: tosca.relationships.ConnectsToNetwork

# DP_slice Slice
    {{ site_name }}_DP_slice:
      type: tosca.nodes.Slice
      properties:
        network: noauto
      requirements:
        - slice:
            node: mysite
            relationship: tosca.relationships.MemberOfSite
        - image:
            node: trusty-server-multi-nic
            relationship: tosca.relationships.DefaultImage
        - default_flavor:
            node: m1.large
            relationship: tosca.relationships.DefaultFlavor
        - network_mgmt:
            node: management
            relationship: tosca.relationships.ConnectsToNetwork

## CP_server Compute Node
#    CP_server:
#      type: tosca.nodes.Compute
#      capabilities:
#        # Host container properties
#        host: 
#          properties:
#            num_cpus: 1
#            disk_size: 10 GB
#            mem_size: 256 MB
#      requirements:
#        - slice:
#            node: {{ site_name }}_CP_slice
#            relationship: tosca.relationships.MemberOfSlice
#
## DP_server Compute Node
#    DP_server:
#      type: tosca.nodes.Compute
#      capabilities:
#        # Host container properties
#        host:
#          properties:
#            num_cpus: 1
#            disk_size: 10 GB
#            mem_size: 1024 MB
#      requirements:
#        - slice:
#            node: {{ site_name }}_DP_slice
#            relationship: tosca.relationships.MemberOfSlice

