tosca_definitions_version: tosca_simple_yaml_1_0

imports:
   - custom_types/xos.yaml

description: Configures the VTN ONOS service

topology_template:
  node_templates:

    service#ONOS_CORD:
      type: tosca.nodes.ONOSService
      requirements:
      properties:
          kind: onos
          view_url: /admin/onos/onosservice/$id$/
          no_container: true
          rest_hostname: onos-cord
          rest_port: 8182
          replaces: service_ONOS_CORD

    service#vtn:
      type: tosca.nodes.VTNService
      properties:
          view_url: /admin/vtn/vtnservice/$id$/
          privateGatewayMac: 00:00:00:00:00:01
          localManagementIp: {{ management_network_ip }}
          ovsdbPort: 6641
          sshUser: root
          sshKeyFile: /root/node_key
          sshPort: 22
          xosEndpoint: http://xos:{{ xos_ui_port }}/
          xosUser: {{ xos_admin_user }}
          xosPassword: {{ xos_admin_pass }}
          replaces: service_vtn
          vtnAPIVersion: 2
          controllerPort: onos-cord:6654

    VTN_ONOS_app:
      type: tosca.nodes.ONOSVTNApp
      requirements:
          - onos_tenant:
              node: service#ONOS_CORD
              relationship: tosca.relationships.TenantOfService
          - vtn_service:
              node: service#vtn
              relationship: tosca.relationships.UsedByService
      properties:
          install_dependencies: http://mavenrepo:8080/repository/org/opencord/cord-config/{{ cord_app_version }}/cord-config-{{ cord_app_version }}.oar,http://mavenrepo:8080/repository/org/opencord/vtn/{{ cord_app_version }}/vtn-{{ cord_app_version }}.oar
          dependencies: org.onosproject.drivers, org.onosproject.drivers.ovsdb, org.onosproject.openflow-base, org.onosproject.ovsdb-base, org.onosproject.dhcp
          autogenerate: vtn-network-cfg

