
{#
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/xos.yaml
   - custom_types/slice.yaml
   - custom_types/site.yaml
   - custom_types/image.yaml
   - custom_types/flavor.yaml
   - custom_types/network.yaml
   - custom_types/onosservice.yaml
   - custom_types/networkslice.yaml
   - custom_types/vmmeservice.yaml
   - custom_types/vmmevendor.yaml
   - custom_types/vmmetenant.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 }}

    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

    trusty-server-multi-nic:
      type: tosca.nodes.Image
      properties:
        name: trusty-server-multi-nic
        must-exist: true

# 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
{% endif %}

# s1u_network is for connectivity between VMs, fully created in s1u-net.yaml
    s1u_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: s1u_network
# s11_network is for connectivity between VMs, fully created in s11-net.yaml
    s11_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: s11_network
# nbi_network is for connectivity between VMs, fully created in nbi-net.yaml
    nbi_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: nbi_network
# sbi_network is for connectivity between VMs, fully created in sbi-net.yaml
    sbi_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: sbi_network
# sgi_network is for connectivity between VMs, fully created in sgi-net.yaml
    sgi_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: sgi_network



# 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

# CORD Services
    service#vmme:
      type: tosca.nodes.VMMEService
      properties:
          name: mme
          kind: vEPC
          public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/mcord_rsa.pub') }}
          private_key_fn: /opt/xos/services/vmme/keys/mcord_rsa
      artifacts:
          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub

    intel_mme:
      type: tosca.nodes.VMMEVendor
      properties:
        name: intel_mme
      requirements:
        - image:
            node: trusty-server-multi-nic
            relationship: tosca.relationships.BelongsToOne
        - flavor:
            node: m1.small
            relationship: tosca.relationships.BelongsToOne

    vmme_tenant1:
      type: tosca.nodes.VMMETenant
      properties:
        name: vmme_tenant1
      requirements:
        - vmme_vendor:
            node: intel_mme
            relationship: tosca.relationships.BelongsToOne
        - owner:
            node: service#vmme
            relationship: tosca.relationships.BelongsToOne

# CORD Slices
    {{ site_name }}_vmme:
      description: vMME Service Slice
      type: tosca.nodes.Slice
      properties:
          name: {{ site_name }}_vmme
          default_isolation: vm
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.BelongsToOne
          - service:
              node: service#vmme
              relationship: tosca.relationships.BelongsToOne
          - default_image:
              node: trusty-server-multi-nic
              relationship: tosca.relationships.BelongsToOne
          - default_flavor:
              node: m1.small
              relationship: tosca.relationships.BelongsToOne

# will enable this part after sapan fix the obj issue
#    mme_slice_s11_network:
#      type: tosca.nodes.NetworkSlice
#      requirements:
#        - network:
#            node: s11_network
#            relationship: tosca.relationships.BelongsToOne
#        - slice:
#            node: {{ site_name }}_vmme
#            relationship: tosca.relationships.BelongsToOne
