
{% set controller = salt['grains.filter_by']({
    'Debian': {
        'pkgs': ['cinder-api', 'cinder-scheduler', 'lvm2', 'python-cinder', 'gettext-base', 'python-memcache', 'python-pycadf'],
        'services': ['cinder-scheduler'],
        'wipe_method': 'none',
        'notification': False,
        'cors': {},
        'audit': {
          'enabled': false
        },
	'cinder_uid': 304,
	'cinder_gid': 304,
        'backup': {
          'pkgs': ['cinder-backup'],
          'services': ['cinder-backup'],
          'engine': None
        }
    },
    'RedHat': {
        'pkgs': ['openstack-cinder', 'python-cinder', 'lvm2', 'python-pycadf'],
        'services': ['openstack-cinder-api', 'openstack-cinder-scheduler'],
        'wipe_method': 'none',
        'notification': False,
        'cors': {},
        'audit': {
          'enabled': false
        },
	'cinder_uid': 304,
	'cinder_gid': 304,
        'backup': {
          'pkgs': ['cinder-backup'],
          'services': ['cinder-backup'],
          'engine': None
        }

    },
}, merge=pillar.cinder.get('controller', {})) %}

{% set volume = salt['grains.filter_by']({
    'Debian': {
        'pkgs': ['cinder-volume', 'lvm2', 'sysfsutils', 'sg3-utils', 'python-cinder','python-mysqldb','p7zip', 'gettext-base', 'python-memcache', 'python-pycadf'],
        'services': ['cinder-volume'],
        'wipe_method': 'none',
        'notification': False,
        'audit': {
          'enabled': false
        },
	'cinder_uid': 304,
	'cinder_gid': 304,
        'backup': {
          'pkgs': ['cinder-backup'],
          'services': ['cinder-backup'],
          'engine': None
        }

    },
    'RedHat': {
        'pkgs': ['openstack-cinder', 'python-cinder', 'lvm2', 'sysfsutils', 'sg3_utils', 'device-mapper-multipath', 'device-mapper-multipath-libs', 'python-pycadf'],
        'services': ['openstack-cinder-volume'],
        'wipe_method': 'none',
        'notification': False,
        'audit': {
          'enabled': false
        },
	'cinder_uid': 304,
	'cinder_gid': 304,
        'backup': {
          'pkgs': ['cinder-backup'],
          'services': ['cinder-backup'],
          'engine': None
        }
    },
}, merge=pillar.cinder.get('volume', {})) %}

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

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