
{% set master = salt['grains.filter_by']({
    'Debian': {
        'pkgs': ['jenkins','python-bcrypt', 'openjdk-8-jre'],
        'service': 'jenkins',
        'config': '/etc/default/jenkins',
        'home': '/var/lib/jenkins',
        'update_site_url': 'http://updates.jenkins-ci.org/update-center.json'
    },
    'RedHat': {
        'pkgs': ['jenkins','python-bcrypt'],
        'service': 'jenkins',
        'config': '/etc/sysconfig/jenkins',
        'home': '/var/lib/jenkins',
        'update_site_url': 'http://updates.jenkins-ci.org/update-center.json'
    },
}, merge=pillar.jenkins.get('master', {})) %}

{% set job_builder = salt['grains.filter_by']({
    'Debian': {
        'pkgs': ['jenkins-job-builder'],
        'dir': {
            'conf': '/etc/jenkins_jobs',
            'base': '/srv/jenkins_jobs'
        },
        'source': {
            'engine': 'pkg'
        }
    },
    'RedHat': {
        'pkgs': ['jenkins-job-builder'],
        'dir': {
            'conf': '/etc/jenkins_jobs',
            'base': '/srv/jenkins_jobs'
        },
        'source': {
            'engine': 'pkg'
        }
    },
}, merge=pillar.jenkins.get('job_builder', {})) %}

{% set slave = salt['grains.filter_by']({
    'Debian': {
        'pkgs': ['jenkins-slave'],
        'init_script': '/etc/init.d/jenkins-slave',
        'service': 'jenkins-slave',
        'config': '/etc/default/jenkins-slave',
    },
    'RedHat': {
        'pkgs': ['jenkins-slave'],
        'init_script': '/etc/init.d/jenkins-slave',
        'service': 'jenkins-slave',
        'config': '/etc/sysconfig/jenkins-slave',
    },
}, merge=pillar.jenkins.get('slave', {})) %}

{% set job_status = {
    'SUCCESS': {
        'ordinal': '0',
        'color': 'BLUE'
    },
    'UNSTABLE': {
        'ordinal': '1',
        'color': 'YELLOW'
    },
    'FAILURE': {
        'ordinal': '2',
        'color': 'RED'
    }
} %}

{% set client = salt['grains.filter_by']({
    'default': {
        'pkgs': ['python-jenkins', 'python-bcrypt'],
        'job_status': job_status,
        'dir': {
            'jenkins_source_root': '/var/cache/salt/minion/jenkins/source',
            'jenkins_jobs_root': '/var/cache/salt/minion/jenkins/jobs',
        },
        'replacer': {
            'open': '{{',
            'close': '}}',
        }
    },
}, merge=pillar.jenkins.get('client', {})) %}
