{%- set dashboard_package = salt['pillar.get']('horizon:server:package', 'openstack-dashboard') %}
{%- set multidomain = salt['pillar.get']('horizon:server:multidomain', 'False') %}
{%- set default_domain = salt['pillar.get']('horizon:server:default_domain', 'default') %}

{% set server = salt['grains.filter_by']({
    'Debian': {
        'pkgs': [dashboard_package, 'python-lesscpy', 'python-memcache', 'gettext-base'],
        'pkgs_multi': ['python-memcache', 'python-psycopg2', 'python-imaging',
            'python-docutils', 'python-simplejson', 'build-essential',
            'libxslt1-dev', 'libxml2-dev', 'libffi-dev', 'libssl-dev',
            'gettext', 'python-lesscpy'],
        'ssl_pkgs': [dashboard_package],
        'service': 'apache2',
        'policy_files_path': '/usr/share/openstack-dashboard/openstack_dashboard/conf',
        'config': '/etc/openstack-dashboard/local_settings.py',
        'apache_config': '/etc/apache2/conf-available/openstack-dashboard.conf',
        'apache_log_dir': '/var/log/apache2',
        'apache_log_filename': 'openstack_dashboard',
        'apache_log_format': '%h %t %m \\"%U%q\\" %H %>s %O %D \\"%{Referer}i\\" \\"%{User-Agent}i\\"',
        'certs_dir': '/etc/ssl/certs',
        'private_dir': '/etc/ssl/private',
        'cache': {'host': '127.0.0.1', 'port': 11211}
    },
    'RedHat': {
        'pkgs': ['httpd', dashboard_package, 'python-lesscpy', 'python-memcached'],
        'pkgs_multi': ['python-memcached', 'python-psycopg2', 'python-pillow',
            'python-docutils', 'python-simplejson', 'libxslt-devel', 'gcc',
            'libxml2-devel', 'libffi-devel', 'openssl-devel',
            'gettext', 'python-lesscpy'],
        'ssl_pkgs': ['mod_ssl'],
        'service': 'httpd',
        'policy_files_path': '/usr/share/openstack-dashboard/openstack_dashboard/conf',
        'config': '/etc/openstack-dashboard/local_settings',
        'apache_config': '/etc/httpd/conf.d/openstack-dashboard.conf',
        'apache_log_dir': '/var/log/httpd',
        'apache_log_filename': 'openstack_dashboard',
        'apache_log_format': '%h %t %m \\"%U%q\\" %H %>s %O %D \\"%{Referer}i\\" \\"%{User-Agent}i\\"',
        'certs_dir': '/etc/pki/tls/certs',
        'private_dir': '/etc/pki/tls/private',
        'cache': {'host': '127.0.0.1', 'port': 11211}
    },
}, merge=salt['pillar.get']('horizon:server')) %}

{% set upgrade = pillar.get('horizon', {}).get('upgrade', {}) %}
