
{#
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/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_name }}:
      type: tosca.nodes.Site
      properties:
        name: {{ site_name }}
        must-exist: true

    {{ deployment_type }}:
      type: tosca.nodes.Deployment
      properties:
        name: {{ deployment_type }}
        must-exist: true

# OpenStack compute nodes
{% for node in groups['compute'] %}
{% for ext_if in compute_external_interfaces %}
{% set ansible_ext_if = 'ansible_' ~ ext_if | regex_replace('\W', '_') %}
{% if hostvars[node][ansible_ext_if] is defined and 'ipv4' in hostvars[node][ansible_ext_if] %}
{% set node_interface = hostvars[node][ansible_ext_if] %}

# Compute node: {{ node }}, with interface {{ ansible_ext_if }}
    {{ hostvars[node]['ansible_hostname'] }}:
      type: tosca.nodes.Node
      properties:
        name: {{ hostvars[node]['ansible_hostname'] }}
      requirements:
        - site_deployment:
            node:  {{ site_name }}_{{ deployment_type }}
            relationship: tosca.relationships.BelongsToOne

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

{% endif %}
{% endfor %}
{% endfor %}

