
{#
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
          #- connection_to_management:
          #    node: management
          #    relationship: tosca.relationships.BelongsToMany
          #- connection_to_s11_network:
          #    node: s11_network
          #   relationship: tosca.relationships.ConnectsToNetwork

# 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
