
{#
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
          domain: Default
      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

