doc:
  name: Glance
  description: The Glance project provides services for discovering, registering, and retrieving virtual machine images.
  role:
  {%- if pillar.glance.server is defined %}
  {%- from "glance/map.jinja" import server with context %}
    server:
      name: server
      endpoint:
        glance_api:
          name: glance-api
          type: glance-api
          address: http://{{ server.bind.address }}:{{ server.bind.port }}
          protocol: http
        glance_registry:
          name: glance-registry
          type: glance-registry
          address: http://{{ server.registry.host }}:{{ server.registry.port }}
          protocol: http
      param:
        bind:
          value: {{ server.bind.address }}:{{ server.bind.port }}
        version:
          name: "Version"
          value: {{ server.version }}
        workers:
          name: "Number of workers"
          value: {{ server.workers }}
        database_host:
          name: "Database"
          value: {{ server.database.user }}@{{ server.database.host }}:{{ server.database.port }}//{{ server.database.name }}
        message_queue_ip:
          name: "Message queue"
          value: {{ server.message_queue.user }}@{{ server.message_queue.host }}:{{ server.message_queue.port }}{{ server.message_queue.virtual_host }}
        identity_host:
          name: "Identity service"
          value: {{ server.identity.user }}@{{ server.identity.host }}:{{ server.identity.port }}
        storage_engine:
          name: "Glance storage engine"
          value: {{ server.storage.engine }}
        packages:
          value: |
            {%- for pkg in server.pkgs %}
            {%- set pkg_version = "dpkg -l "+pkg+" | grep "+pkg+" | awk '{print $3}'" %}
            * {{ pkg }}: {{ salt['cmd.run'](pkg_version) }}
            {%- endfor %}
  {%- endif %}
