
{#
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

imports:
  - custom_types/controller.yaml
  - custom_types/controllersite.yaml
  - custom_types/deployment.yaml
  - custom_types/flavor.yaml
  - custom_types/image.yaml
  - custom_types/site.yaml
  - custom_types/sitedeployment.yaml

description: openstack extensions to deployment, generated by platform-install

topology_template:
  node_templates:

# Images and flavors
{% for image in xos_images %}
    {{ image.name }}:
      type: tosca.nodes.Image
      properties:
        name: {{ image.name }}
        path: /opt/xos/images/{{ image.name }}.qcow2
        disk_format: QCOW2
        container_format: BARE

{% endfor %}

{% for flavor in deployment_flavors %}
    {{ flavor }}:
      type: tosca.nodes.Flavor
      properties:
        name: {{ flavor }}

{% endfor %}

# Deployment - adds images/flavors to site defined in deployment.yaml
# NOTE do we still need this?
    {{ deployment_type }}:
      type: tosca.nodes.Deployment
      properties:
        name: {{ deployment_type }}
# NOTE look that this are outdated and not used anymore
#     requirements:
# {% for flavor in deployment_flavors %}
#           - {{ flavor }}:
#               node: {{ flavor }}
#               relationship: tosca.relationships.SupportsFlavor
# {% endfor %}

# OpenStack Controller
    {{ site_name }}_{{ deployment_type }}_openstack:
      type: tosca.nodes.Controller
      requirements:
        - deployment:
            node: {{ deployment_type }}
            relationship: tosca.relationships.BelongsToOne
      properties:
          name: {{ site_name }}_{{ deployment_type }}_openstack
          backend_type: OpenStack
          version: Kilo
          auth_url: https://keystone.{{ site_suffix }}:5000/v2.0
          admin_user: admin
          admin_password: {{ keystone_admin_password }}
          admin_tenant: admin
      artifacts:
          adminrc: /opt/cord_profile/admin-openrc.sh

# Site - adds openstack controller to site defined in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
          name: {{ site_name }}
          must-exist: true
          site_url: http://{{ site_name }}.opencloud.us/
          hosts_nodes: true

    {{site_name}}_deployment_{{ deployment_type }}:
        type: tosca.nodes.SiteDeployment
        requirements:
            - site:
                node: {{ site_name }}
                relationship: tosca.relationships.BelongsToOne
            - deployment:
                node: {{ deployment_type }}
                relationship: tosca.relationships.BelongsToOne
            - controller:
                node: {{ site_name }}_{{ deployment_type }}_openstack
                relationship: tosca.relationships.BelongsToOne

    {{ site_name }}_openstack_controller:
        type: tosca.nodes.ControllerSite
        requirements:
            - site:
                node: {{ site_name }}
                relationship: tosca.relationships.BelongsToOne
            - controller:
                node: {{ site_name }}_{{ deployment_type }}_openstack
                relationship: tosca.relationships.BelongsToOne

