{{/* vim: set filetype=mustache: */}}
{{/*
Copyright 2018-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.
*/}}
{{- define "base-openstack.fixtureTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0

imports:
  - custom_types/deployment.yaml
  - custom_types/site.yaml
  - custom_types/networktemplate.yaml
  - custom_types/network.yaml
  - custom_types/networkslice.yaml
  - custom_types/sitedeployment.yaml

description: set up site and deployment and link them

topology_template:
  node_templates:

    {{ .Values.cordSiteName }}:
      type: tosca.nodes.Site
      properties:
          name: {{ .Values.cordSiteName }}
          site_url: http://mysite.opencord.us/
          hosts_nodes: true

    {{ .Values.cordDeploymentName }}:
      type: tosca.nodes.Deployment
      properties:
        name: {{ .Values.cordDeploymentName }}
{{- end -}}

{{- define "base-openstack.serviceGraphTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0

imports:
   - custom_types/onosapp.yaml
   - custom_types/onosservice.yaml
   - custom_types/servicegraphconstraint.yaml
   - custom_types/serviceinstance.yaml
   - custom_types/serviceinstancelink.yaml
   - custom_types/vtnservice.yaml

description: Configures the base-openstack service graph

topology_template:
  node_templates:

    service#vtn:
      type: tosca.nodes.VTNService
      properties:
        name: vtn
        must-exist: true
        resync: false

    service#ONOS_CORD:
      type: tosca.nodes.ONOSService
      properties:
        name: ONOS_CORD
        must-exist: true

    # NOTE this is defined in the onos-service TOSCA
    onos_app#vtn:
      type: tosca.nodes.ONOSApp
      properties:
          name: vtn
          must-exist: true

    # NOTE this is defined in the vtn-service TOSCA
    vtn_service_instance:
      type: tosca.nodes.ServiceInstance
      properties:
          name: VTN config
          must-exist: true

    onos_app#vtn_VTN_Service:
        type: tosca.nodes.ServiceInstanceLink
        requirements:
          - provider_service_instance:
              node: onos_app#vtn
              relationship: tosca.relationships.BelongsToOne
          - subscriber_service:
              node: service#vtn
              relationship: tosca.relationships.BelongsToOne

    link#vtn_to_vtn-config:
      type: tosca.nodes.ServiceInstanceLink
      requirements:
        - subscriber_service_instance:
            node: vtn_service_instance
            relationship: tosca.relationships.BelongsToOne
        - provider_service_instance:
            node: onos_app#vtn
            relationship: tosca.relationships.BelongsToOne

    service_dependency#onos-cord_vtn:
      type: tosca.nodes.ServiceDependency
      properties:
        connect_method: None
      requirements:
        - subscriber_service:
            node: service#ONOS_CORD
            relationship: tosca.relationships.BelongsToOne
        - provider_service:
            node: service#vtn
            relationship: tosca.relationships.BelongsToOne
{{- end -}}

{{- define "base-openstack.testTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0

imports:
  - custom_types/flavor.yaml
  - custom_types/image.yaml
  - custom_types/site.yaml
  - custom_types/network.yaml
  - custom_types/networkslice.yaml
  - custom_types/slice.yaml

description: for testing basic openstack functionality

topology_template:
  node_templates:

    Ubuntu-14.04:
      type: tosca.nodes.Image
      properties:
        name: "Ubuntu 14.04 64-bit"
        disk_format: QCOW2
        container_format: BARE
        path: https://github.com/opencord/platform-install/releases/download/vms/trusty-server-cloudimg-amd64-disk1.img.20170201

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

# Define a test slice
    {{ .Values.cordSiteName }}_test:
      description: Test Slice
      type: tosca.nodes.Slice
      properties:
        # network: noauto
        name: {{ .Values.cordSiteName }}_test
      requirements:
        - site:
            node: {{ .Values.cordSiteName }}
            relationship: tosca.relationships.BelongsToOne
        - default_image:
            node: Ubuntu-14.04
            relationship: tosca.relationships.BelongsToOne

    management:
      type: tosca.nodes.Network
      properties:
        name: management
        must-exist: true

# Connect test slice to management net
    networkslice#management_to_{{ .Values.cordSiteName }}_test:
        type: tosca.nodes.NetworkSlice
        requirements:
          - network:
              node: management
              relationship: tosca.relationships.BelongsToOne
          - slice:
              node: {{ .Values.cordSiteName }}_test
              relationship: tosca.relationships.BelongsToOne
{{- end -}}

{{- define "base-openstack.computeNodeTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0

imports:
  - custom_types/deployment.yaml
  - custom_types/node.yaml
  - custom_types/site.yaml
  - custom_types/sitedeployment.yaml

description: Adds OpenStack compute nodes

topology_template:
  node_templates:

# Site/Deployment, fully defined in deployment.yaml
    site:
      type: tosca.nodes.Site
      properties:
        name: {{ .Values.cordSiteName }}
        must-exist: true

    deployment:
      type: tosca.nodes.Deployment
      properties:
        name: {{ .Values.cordDeploymentName }}
        must-exist: true

    site_deployment:
      type: tosca.nodes.SiteDeployment
      requirements:
        - site:
            node: site
            relationship: tosca.relationships.BelongsToOne
        - deployment:
            node: deployment
            relationship: tosca.relationships.BelongsToOne

# OpenStack compute nodes

    {{- range .Values.computeNodes }}
    {{ .name }}:
      type: tosca.nodes.Node
      properties:
        name: {{ .name }}
        bridgeId: {{ .bridgeId }}
        dataPlaneIntf: {{ .dataPlaneIntf }}
        dataPlaneIp: {{ .dataPlaneIp }}
      requirements:
        - site_deployment:
            node:  site_deployment
            relationship: tosca.relationships.BelongsToOne
    {{- end }}
{{- end -}}
