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


{% set api = salt['grains.filter_by']({
    'BaseDefaults': default_params,
    'Debian': {
        'pkgs': ['octavia-common', 'octavia-api'],
        'services': ['octavia-api'],
        'notification': False,
        'cors': {},
        'oslo_policy': {
          'policy_file': 'policy.json'
        },
        'audit': {
          'enabled': false
        }
    },
    'RedHat': {
        'pkgs': ['octavia-common', 'octavia-api'],
        'services': ['octavia-api'],
        'notification': False,
        'cors': {},
        'oslo_policy': {
          'policy_file': 'policy.json'
        },
        'audit': {
          'enabled': false
        }
    },
}, merge=pillar.octavia.get('api', {}), base='BaseDefaults') %}

{% set manager = salt['grains.filter_by']({
    'BaseDefaults': default_params,
    'Debian': {
        'pkgs': ['octavia-common', 'octavia-worker', 'octavia-housekeeping',
                 'octavia-health-manager', 'iptables-persistent'],
        'services': ['octavia-worker', 'octavia-housekeeping', 'octavia-health-manager'],
        'ssh': {
          'private_key_file': '/etc/octavia/.ssh/octavia_ssh_key',
        },
        'notification': False,
        'cors': {},
        'audit': {
          'enabled': false
        }
    },
    'RedHat': {
        'pkgs': ['octavia-common', 'octavia-worker', 'octavia-housekeeping',
                 'octavia-health-manager', 'iptables-persistent'],
        'services': ['octavia-worker', 'octavia-housekeeping', 'octavia-health-manager'],
        'ssh': {
          'private_key_file': '/etc/octavia/.ssh/octavia_ssh_key',
        },
        'notification': False,
        'cors': {},
        'audit': {
          'enabled': false
        }
    },
}, merge=pillar.octavia.get('manager', {}), base='BaseDefaults') %}

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

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