actions = { 'simple-icinga-dashboard_create_virtualenv': { 'command': '/usr/bin/python3 -m virtualenv -p python3 /opt/simple-icinga-dashboard/venv/', 'unless': 'test -d /opt/simple-icinga-dashboard/venv/', 'needs': { # actually /opt/simple-icinga-dashboard, but we don't create that 'directory:/opt/simple-icinga-dashboard/src', }, }, 'simple-icinga-dashboard_install_requirements': { 'command': 'cd /opt/simple-icinga-dashboard/src && ' '/opt/simple-icinga-dashboard/venv/bin/pip install --upgrade pip && ' '/opt/simple-icinga-dashboard/venv/bin/pip install --upgrade -r requirements.txt', 'needs': { 'action:simple-icinga-dashboard_create_virtualenv', }, 'triggered': True, }, } users = { 'icinga_dashboard': { 'home': '/opt/simple-icinga-dashboard', }, } directories = { '/opt/simple-icinga-dashboard/out': { 'owner': 'icinga_dashboard', }, '/opt/simple-icinga-dashboard/src': {}, } git_deploy = { '/opt/simple-icinga-dashboard/src': { 'repo': 'https://git.franzi.business/sophie/simple-icinga-dashboard.git', 'rev': 'main', 'triggers': { 'action:simple-icinga-dashboard_install_requirements', }, }, } files = { '/opt/simple-icinga-dashboard/config.toml': { 'content': repo.libs.faults.dict_as_toml(node.metadata.get('simple-icinga-dashboard')), 'needs': { 'git_deploy:/opt/simple-icinga-dashboard/src', }, }, } symlinks = { '/opt/simple-icinga-dashboard/out/bootstrap.min.css': { 'target': '/opt/simple-icinga-dashboard/src/bootstrap.min.css', 'needs': { 'git_deploy:/opt/simple-icinga-dashboard/src', }, }, }