{%- set default_params = {
    'cacert_file': salt['grains.filter_by']({
        'Debian': '/etc/ssl/certs/ca-certificates.crt',
        'RedHat': '/etc/pki/tls/certs/ca-bundle.crt'
    })}
%}

{% set server = salt['grains.filter_by']({
    'BaseDefaults': default_params,
    'Debian': {
        'pkgs': ['glance', 'glance-api', 'glance-registry', 'glance-common', 'python-glance', 'python-glance-store', 'python-glanceclient', 'gettext-base', 'python-memcache', 'python-pycadf'],
        'services': ['glance-api', 'glance-registry'],
        'notification': False,
        'cors': {},
        'audit': {
          'enabled': false
        },
        'glance_uid': 302,
        'glance_gid': 302,
        'logging': {
          'log_appender': false,
          'log_handlers': {
            'watchedfile': {
              'enabled': true
            }
          },
        },
    },
    'RedHat': {
        'pkgs': ['openstack-glance', 'python-glanceclient','python-pycadf'],
        'services': ['openstack-glance-api', 'openstack-glance-registry'],
        'notification': False,
        'cors': {},
        'audit': {
          'enabled': false
        },
        'glance_uid': 302,
        'glance_gid': 302,
        'logging': {
          'log_appender': false,
          'log_handlers': {
            'watchedfile': {
              'enabled': true
            }
          },
        },
    },
}, merge=pillar.glance.get('server', {}), base='BaseDefaults') %}

{% set client = salt['grains.filter_by']({
    'Debian': {
        'pkgs': ['python-glanceclient']
    },
    'RedHat': {
        'pkgs': ['python-glanceclient']
    },
}, merge=pillar.glance.get('client', {})) %}

{% set monitoring = salt['grains.filter_by']({
    'default': {
        'error_log_rate': 0.2,
    },
}, grain='os_family', merge=salt['pillar.get']('glance:monitoring')) %}
