
{#
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: created by platform-install, need to add M-CORD services later

imports:
   - custom_types/slice.yaml
   - custom_types/site.yaml
   - custom_types/image.yaml
   - custom_types/flavor.yaml
   - custom_types/network.yaml
   - custom_types/networktemplate.yaml
   - custom_types/onosservice.yaml
   - custom_types/networkslice.yaml
   - custom_types/venbservice.yaml
   - custom_types/vspgwcservice.yaml
   - custom_types/vspgwcvendor.yaml
   - custom_types/vspgwuservice.yaml
   - custom_types/vspgwuvendor.yaml
   - custom_types/vepcservice.yaml
   - custom_types/servicedependency.yaml
   - custom_types/mcordsubscriberservice.yaml

topology_template:
  node_templates:

# site, image, fully created in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        must-exist: true
        name: {{ site_name }}

# flavors

    m1.small:
      type: tosca.nodes.Flavor
      properties:
        name: m1.small
        must-exist: true
    m1.large:
      type: tosca.nodes.Flavor
      properties:
        name: m1.large
        must-exist: true
    m1.medium:
      type: tosca.nodes.Flavor
      properties:
        name: m1.medium
        must-exist: true
    m1.xlarge:
      type: tosca.nodes.Flavor
      properties:
        name: m1.xlarge
        must-exist: true

# images
    image-venb:
      type: tosca.nodes.Image
      properties:
        name: image-venb

    image-spgwc:
      type: tosca.nodes.Image
      properties:
        name: image-spgwc

    image-spgwu:
      type: tosca.nodes.Image
      properties:
        name: image-spgwu

# network templates
    private_template:
      type: tosca.nodes.NetworkTemplate
      properties:
          name: private_template
          visibility: private
          translation: none
          vtn_kind: PRIVATE

    flat_template:
      type: tosca.nodes.NetworkTemplate
      properties:
          name: flat_template
          visibility: private
          translation: none
          vtn_kind: FLAT

# management networks, fully created in management-net.yaml
    management:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: management

{% if use_management_hosts %}
    management_hosts:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: management_hosts
{% endif %}

# ONOS_CORD, fully created in vtn.yaml
    service#ONOS_CORD:
      type: tosca.nodes.ONOSService
      properties:
        must-exist: true
        name: ONOS_CORD

# ONOS_Fabric, fully created in fabric.yaml
    service#ONOS_Fabric:
      type: tosca.nodes.ONOSService
      properties:
        must-exist: true
        name: ONOS_Fabric

# vENB Service
    service#venb:
      type: tosca.nodes.VENBService
      properties:
          name: venb
          public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/mcord_rsa.pub') }}
          private_key_fn: /opt/xos/services/venb/keys/mcord_rsa
      artifacts:
          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub

    {{ site_name }}_venb:
      description: vENB Service Slice
      type: tosca.nodes.Slice
      properties:
          name: {{ site_name }}_venb
          default_isolation: vm
          network: noauto
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.BelongsToOne
          - service:
              node: service#venb
              relationship: tosca.relationships.BelongsToOne
          - default_image:
              node: image-venb
              relationship: tosca.relationships.BelongsToOne
          - default_flavor:
              node: m1.medium
              relationship: tosca.relationships.BelongsToOne


#vSPGWC Service
    service#vspgwc:
      type: tosca.nodes.VSPGWCService
      properties:
          name: vspgwc
          public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/mcord_rsa.pub') }}
          private_key_fn: /opt/xos/services/vspgwc/keys/mcord_rsa
      artifacts:
          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub

    {{ site_name }}_vspgwc:
      description: SDN controller slice
      type: tosca.nodes.Slice
      properties:
          name: {{ site_name }}_vspgwc
          default_isolation: vm
          network: noauto
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.BelongsToOne
          - service:
              node: service#vspgwc
              relationship: tosca.relationships.BelongsToOne
          - default_image:
              node: image-spgwc
              relationship: tosca.relationships.BelongsToOne
          - default_flavor:
              node: m1.large
              relationship: tosca.relationships.BelongsToOne

    intel_vspgwc:
      type: tosca.nodes.VSPGWCVendor
      properties:
        name: intel_vspgwc
      requirements:
        - image:
            node: image-spgwc
            relationship: tosca.relationships.BelongsToOne
        - flavor:
            node: m1.large
            relationship: tosca.relationships.BelongsToOne


#vSPGWU Service
    service#vspgwu:
      type: tosca.nodes.VSPGWUService
      properties:
          name: vspgwu
          public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/mcord_rsa.pub') }}
          private_key_fn: /opt/xos/services/vspgwu/keys/mcord_rsa
      artifacts:
          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub

    {{ site_name }}_vspgwu:
      description: SDN controller slice
      type: tosca.nodes.Slice
      properties:
          name: {{ site_name }}_vspgwu
          default_isolation: vm
          network: noauto
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.BelongsToOne
          - service:
              node: service#vspgwu
              relationship: tosca.relationships.BelongsToOne
          - default_image:
              node: image-spgwu
              relationship: tosca.relationships.BelongsToOne
          - default_flavor:
              node: m1.xlarge
              relationship: tosca.relationships.BelongsToOne

    intel_vspgwu:
      type: tosca.nodes.VSPGWUVendor
      properties:
        name: intel_vspgwu
      requirements:
        - image:
            node: image-spgwu
            relationship: tosca.relationships.BelongsToOne
        - flavor:
            node: m1.xlarge
            relationship: tosca.relationships.BelongsToOne

# vEPC Service
    service#vepc:
      type: tosca.nodes.VEPCService
      properties:
          name: vepc
          public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/mcord_rsa.pub') }}
          private_key_fn: /opt/xos/services/venb/keys/mcord_rsa
      artifacts:
          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub


# ServiceDependencies
    venb_vspgwc:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#venb
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#vspgwc
            relationship: tosca.relationships.BelongsToOne

    venb_vspgwu:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#venb
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#vspgwu
            relationship: tosca.relationships.BelongsToOne

    vspgwc_vspgwu:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#vspgwc
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#vspgwu
            relationship: tosca.relationships.BelongsToOne

# M-CORD Subscriber
    service#mcord:
      type: tosca.nodes.MCordSubscriberService
      properties:
        name: mcord

    # ServiceDependency M-CORD to vENB
    mcord_venb:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#venb
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#mcord
            relationship: tosca.relationships.BelongsToOne

# EPC networks

{% for network in mcord_networks %}
    {{ network['name'] }}:
      type: tosca.nodes.Network
      properties:
          name: {{ network['name'] }}
          subnet: {{ network['subnet'] }}
          permit_all_slices: {{ network['permit_all_slices'] }}
      requirements:
          - template:
              node: {{ network['template'] }}
              relationship: tosca.relationships.BelongsToOne
          - owner:
              node: {{ site_name }}_{{ network['owner'] }}
              relationship: tosca.relationships.BelongsToOne

{% endfor %}