---
{#
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: Just enough Tosca to get the vSG slice running on the CORD POD, created by rcord profile

imports:
  - custom_types/addressmanagerservice.yaml
  - custom_types/addresspool.yaml
  - custom_types/image.yaml
  - custom_types/network.yaml
  - custom_types/networkslice.yaml
  - custom_types/networktemplate.yaml
  - custom_types/nodelabel.yaml
  - custom_types/onosapp.yaml
  - custom_types/onosservice.yaml
  - custom_types/rcordservice.yaml
  - custom_types/site.yaml
  - custom_types/service.yaml
  - custom_types/servicedependency.yaml
  - custom_types/serviceinstanceattribute.yaml
  - custom_types/serviceinstancelink.yaml
  - custom_types/slice.yaml
  - custom_types/voltservice.yaml
  - custom_types/vrouterservice.yaml
  - custom_types/vsgservice.yaml
  - custom_types/vtrservice.yaml

topology_template:
  node_templates:

    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        name: {{ site_name }}
        must-exist: true

    image#vsg-1.1:
      type: tosca.nodes.Image
      properties:
        name: vsg-1.1

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

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

    service#rcord:
      type: tosca.nodes.RCORDService
      properties:
        name: rcord

    rcord_volt:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#rcord
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#volt
            relationship: tosca.relationships.BelongsToOne

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

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

# CORD Services
    service#vtr:
      type: tosca.nodes.VTRService
      properties:
        name: vtr
        kind: rcord

    service#volt:
      type: tosca.nodes.VOLTService
      properties:
        name: volt
        kind: rcord
        public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/volt_rsa.pub') }}
        private_key_fn: /opt/xos/services/volt/keys/volt_rsa
        voltha_url: http://does.not.exist/
        onos_voltha_url: http://does.not.exist/

    volt_vsg:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#volt
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#vsg
            relationship: tosca.relationships.BelongsToOne


    addresses_vsg:
      type: tosca.nodes.AddressPool
      properties:
        name: addresses_vsg
        addresses: {{ addresspool_vsg_cidr }}
        gateway_ip: {{ addresspool_vsg_cidr | ipaddr('1') | ipaddr('address') }}
        gateway_mac:  {{ fabric_gateway_hwaddr }}
      requirements:
        - service:
            node: service#addressmanager
            relationship: tosca.relationships.BelongsToOne

    addresses_public:
      type: tosca.nodes.AddressPool
      properties:
        name: addresses_public
        addresses: {{ addresspool_public_cidr }}
        gateway_ip: {{ addresspool_public_cidr | ipaddr('1') | ipaddr('address') }}
        gateway_mac:  {{ fabric_gateway_hwaddr }}
      requirements:
        - service:
            node: service#addressmanager
            relationship: tosca.relationships.BelongsToOne

    label_vsg:
      type: tosca.nodes.NodeLabel
      properties:
        name: label_vsg

    service#vsg:
      type: tosca.nodes.VSGService
      properties:
        name: vsg
        # backend_network_label: hpc_client # what is this? can we drop it?
        public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/vsg_rsa.pub') }}
        private_key_fn: /opt/xos/services/vsg/keys/vsg_rsa
        # node_label: label_vsg

    vsg_vrouter:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#vsg
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#vrouter
            relationship: tosca.relationships.BelongsToOne

    vsg_addressmanager:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#vsg
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#addressmanager
            relationship: tosca.relationships.BelongsToOne

    service#addressmanager:
      type: tosca.nodes.AddressManagerService
      properties:
        name: addressmanager

    service#vrouter:
      type: tosca.nodes.VRouterService
      properties:
        name: vrouter

    vRouter_ONOS_app:
      type: tosca.nodes.ONOSApp
      requirements:
        - owner:
            node: service#ONOS_Fabric
            relationship: tosca.relationships.BelongsToOne
      properties:
        name: vRouter_ONOS_app
        dependencies: org.onosproject.fpm

    vRouter_ONOS_app_autogenerate:
        type: tosca.nodes.ServiceInstanceAttribute
        requirements:
          - service_instance:
              node: vRouter_ONOS_app
              relationship: tosca.relationships.BelongsToOne
        properties:
            name: autogenerate
            value: vrouter-network-cfg

    vRouter_ONOS_app_ONOS_CORD:
        type: tosca.nodes.ServiceInstanceLink
        requirements:
          - provider_service_instance:
              node: vRouter_ONOS_app
              relationship: tosca.relationships.BelongsToOne
          - subscriber_service:
              node: service#vrouter
              relationship: tosca.relationships.BelongsToOne

    vsg_template:
      type: tosca.nodes.NetworkTemplate
      properties:
        name: vsg_template
        visibility: private
        translation: none
        vtn_kind: VSG

    # Networks required by the CORD setup
    {{ site_name }}_vsg-access:
      type: tosca.nodes.Network
      properties:
        name: {{ site_name }}_vsg-access
        # ip_version: 4
      requirements:
        - template:
            node: vsg_template
            relationship: tosca.relationships.BelongsToOne
        - owner:
            node: {{ site_name }}_vsg
            relationship: tosca.relationships.BelongsToOne

    networkslice#{{ site_name }}_vsg-access_to_{{ site_name }}_vsg:
        type: tosca.nodes.NetworkSlice
        requirements:
          - network:
              node: {{ site_name }}_vsg-access
              relationship: tosca.relationships.BelongsToOne
          - slice:
              node: {{ site_name }}_vsg
              relationship: tosca.relationships.BelongsToOne

    # CORD Slices
    {{ site_name }}_vsg:
      description: vSG Controller Slice
      type: tosca.nodes.Slice
      properties:
        network: noauto
        name: {{ site_name }}_vsg
      requirements:
        - service:
            node: service#vsg
            relationship: tosca.relationships.BelongsToOne
        - site:
            node: {{ site_name }}
            relationship: tosca.relationships.BelongsToOne
        - default_image:
            node: image#vsg-1.1
            relationship: tosca.relationships.BelongsToOne

    networkslice#management_to_{{ site_name }}_vsg:
        type: tosca.nodes.NetworkSlice
        requirements:
          - network:
              node: management
              relationship: tosca.relationships.BelongsToOne
          - slice:
              node: {{ site_name }}_vsg
              relationship: tosca.relationships.BelongsToOne

{% if use_vtn_net_management_host %}
    networkslice#management_host_to_{{ site_name }}_vsg:
        type: tosca.nodes.NetworkSlice
        requirements:
          - network:
              node: management_host
              relationship: tosca.relationships.BelongsToOne
          - slice:
              node: {{ site_name }}_vsg
              relationship: tosca.relationships.BelongsToOne
{% endif %}

    # TODO: migrate interfaces when we'll start using them

    # in#lanside:
    #   type: tosca.nodes.InterfaceType
    #   properties:
    #      direction: in

    # out#lanside:
    #   type: tosca.nodes.InterfaceType
    #   properties:
    #      direction: out

    # in#wanside:
    #   type: tosca.nodes.InterfaceType
    #   properties:
    #      direction: in

    # out#wanside:
    #   type: tosca.nodes.InterfaceType
    #   properties:
    #      direction: out

    # volt_lanside:
    #   type: tosca.nodes.ServiceInterface
    #   requirements:
    #     - service:
    #         node: service#volt
    #         relationship: tosca.relationships.MemberOfService
    #     - interface:
    #         node: out#lanside
    #         relationship: tosca.relationships.IsType

    # vsg_lanside:
    #   type: tosca.nodes.ServiceInterface
    #   requirements:
    #     - service:
    #         node: service#vsg
    #         relationship: tosca.relationships.MemberOfService
    #     - interface:
    #         node: in#lanside
    #         relationship: tosca.relationships.IsType

    # vsg_wanside:
    #   type: tosca.nodes.ServiceInterface
    #   requirements:
    #     - service:
    #         node: service#vsg
    #         relationship: tosca.relationships.MemberOfService
    #     - interface:
    #         node: out#wanside
    #         relationship: tosca.relationships.IsType

    # addressmanager_wanside:
    #   type: tosca.nodes.ServiceInterface
    #   requirements:
    #     - service:
    #         node: service#addressmanager
    #         relationship: tosca.relationships.MemberOfService
    #     - interface:
    #         node: in#wanside
    #         relationship: tosca.relationships.IsType

