actions = {
    'octoprint_create_virtualenv': {
        'command': 'sudo -u octoprint /usr/bin/python3 -m virtualenv -p python3 /opt/octoprint/venv/',
        'unless': 'test -d /opt/octoprint/venv/',
        'needs': {
            'directory:/opt/octoprint', # provided by bundle:users
            'user:octoprint',
        },
    },
    'octoprint_install_octoprint': {
        'command': 'sudo -u octoprint /opt/octoprint/venv/bin/pip install OctoPrint',
        'unless': 'test -f /opt/octoprint/venv/bin/octoprint',
        'needs': {
            'action:octoprint_create_virtualenv',
        },
    },
}

svc_systemd = {
    'octoprint': {
        'needs': {
            'file:/etc/systemd/system/octoprint.service',
            'action:octoprint_install_octoprint',
        },
    },
}

files = {
    '/etc/systemd/system/octoprint.service': {
        'triggers': {
            'action:systemd-reload',
            'svc_systemd:octoprint:restart',
        },
    },
    '/opt/octoprint/systemd-wrapper': {
        'mode': '0755',
    },
    '/usr/local/share/icinga/plugins/check_octoprint_update': {
        'mode': '0755',
        'content_type': 'mako',
        'context': {
            'api_key': node.metadata.get('octoprint/api_key', ''),
        },
    },
}