doc:
  name: Nova
  description: OpenStack Nova provides a cloud computing fabric controller, supporting a wide variety of virtualization technologies, including KVM, Xen, LXC, VMware, and more.
  role:
  {%- if pillar.nova.compute is defined %}
  {%- from "nova/map.jinja" import compute with context %}
    compute:
      name: compute
      param:
        version:
          name: "Version"
          value: {{ compute.version }}
        virtualization:
          name: "Virtualization type"
          value: {{ compute.virtualization }}
        vncproxy_url:
          name: "VNC proxy URL"
          value: {{ compute.vncproxy_url }}
        reserved_host_memory_mb:
          name: "Reserved Host Memmory"
          value: {{ compute.reserved_host_memory_mb }}
        database_host:
          name: "Database"
          value: {{ compute.database.user }}@{{ compute.database.host }}:{{ compute.database.port }}/{{ compute.database.name }}
        network_host:
          name: "Network service"
          value: {{ compute.network.host }}:{{ compute.network.port }}
        glance_host:
          name: "Image service"
          value: {{ compute.glance.host }}:{{ compute.glance.port }}
        message_queue_ip:
          name: "Message queue"
          value: {{ compute.message_queue.user }}@{{ compute.message_queue.host }}:{{ compute.message_queue.port }}/{{ compute.message_queue.vhost }}
        identity_host:
          name: "Identity host ip"
          value: {{ compute.identity.user }}@{{ compute.identity.host }}:{{ compute.identity.port }}
        {%- if compute.vm_swappiness is defined %}
        vm_swappiness:
          name: "VM SWAPpiness in sysctl.conf"
          value: {{ compute.vm_swappiness }}
        {%- endif %}
        {%- if compute.ceph is defined %}
        ceph:
          name: "Ceph is configured"
          value: "True"
        {%- endif %}
        packages:
          value: |
            {%- for pkg in compute.pkgs %}
            * {{ pkg }}: {{ salt['cmd.run']("dpkg -l | grep "+pkg+" | awk '{print \$3}'")}}
            {%- endfor %}
  {%- endif %}
  {%- if pillar.nova.controller is defined %}
  {% from "nova/map.jinja" import controller with context %}
    controller:
      name: controller
      param:
        version:
          name: "Version"
          value: {{ controller.version }}
        networking:
          name: "Networking plugin"
          value: {{ controller.networking }}
        ram_allocation_ratio:
          name: "RAM allocation ration"
          value: {{ controller.ram_allocation_ratio }}
        cpu_allocation_ratio:
          name: "CPU allocation ration"
          value: {{ controller.cpu_allocation_ratio }}
        dhcp_domain:
          name: "DHCP domain"
          value: {{ controller.dhcp_domain }}
        scheduler_default_filters:
          name: "Scheduler default filters"
          value: {{ controller.scheduler_default_filters|replace(',', ' ') }}
        database_host:
          name: "Database"
          value: {{ controller.database.user }}@{{ controller.database.host }}:{{ controller.database.port }}/{{ controller.database.name }}
        network_host:
          name: "Network service"
          value: {{ controller.network.host }}:{{ controller.network.port }}
        glance_host:
          name: "Glance service"
          value: {{ controller.glance.host }}:{{ controller.glance.port }}
        message_queue_ip:
          name: "Message queue"
          value: {{ controller.message_queue.user }}@{{ controller.message_queue.host }}:{{ controller.message_queue.port }}
        identity_host:
          name: "Identity host ip"
          value: {{ controller.identity.user }}@{{ controller.identity.host }}:{{ controller.identity.port }}
        vncproxy_url:
          name: "VNC proxy URL"
          value: {{ controller.vncproxy_url }}
        packages:
          value: |
            {%- for pkg in controller.pkgs %}
            {%- set pkg_version = "dpkg -l "+pkg+" | grep "+pkg+" | awk '{print $3}'" %}
            * {{ pkg }}: {{ salt['cmd.run'](pkg_version) }}
            {%- endfor %}
  {%- endif %}
