Page MenuHomeDevCentral

D3669.diff
No OneTemporary

D3669.diff

diff --git a/roles/reports/init.sls b/roles/reports/init.sls
new file mode 100644
--- /dev/null
+++ b/roles/reports/init.sls
@@ -0,0 +1,9 @@
+# -------------------------------------------------------------
+# Salt — Nasqueron Reports
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+include:
+ - .reports
diff --git a/roles/reports/reports/files/build.sh b/roles/reports/reports/files/build.sh
new file mode 100755
--- /dev/null
+++ b/roles/reports/reports/files/build.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# -------------------------------------------------------------
+# Build and promote nasqueron-reports Python package
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: BSD-2-Clause
+# Source file: roles/reports/reports/files/build.sh
+# -------------------------------------------------------------
+#
+# <auto-generated>
+# This file is managed by our rOPS SaltStack repository.
+#
+# Changes to this file may cause incorrect behavior
+# and will be lost if the state is redeployed.
+# </auto-generated>
+
+set -e
+
+# -------------------------------------------------------------
+# Virtual environment
+#
+# :: Initialize
+# :: Build
+# :: Clean up
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+tmp_venv=$(mktemp -d -t reports-build)
+python3 -m venv "$tmp_venv"
+# shellcheck source=/dev/null
+. "$tmp_venv/bin/activate"
+pip install --upgrade pip
+
+cd /opt/nasqueron-reports/tools/nasqueron-reports
+pip install -r requirements.txt
+pip install setuptools build
+python3 -m build
+
+deactivate
+rm -rf "$tmp_venv"
+
+# -------------------------------------------------------------
+# Promote build
+#
+# :: Search .whl
+# :: Copy to /dist
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+latest_package=$(find dist -name '*.whl' | sort | tail -n1)
+if [ -z "$latest_package" ]; then
+ echo "No build artifact found in dist/" >&2
+ exit 1
+fi
+
+mkdir -p /opt/nasqueron-reports/dist
+cp "$latest_package" /opt/nasqueron-reports/dist/nasqueron_reports-0.0.0.dev0-py3-none-any.whl
diff --git a/roles/reports/reports/init.sls b/roles/reports/reports/init.sls
new file mode 100644
--- /dev/null
+++ b/roles/reports/reports/init.sls
@@ -0,0 +1,9 @@
+# -------------------------------------------------------------
+# Salt — Nasqueron Reports
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+include:
+ - .software
diff --git a/roles/reports/reports/software.sls b/roles/reports/reports/software.sls
new file mode 100644
--- /dev/null
+++ b/roles/reports/reports/software.sls
@@ -0,0 +1,86 @@
+# -------------------------------------------------------------
+# Salt — Nasqueron Reports
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# -------------------------------------------------------------
+
+{% from "map.jinja" import dirs, packages_prefixes with context %}
+
+# -------------------------------------------------------------
+# Repository local copy
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+/opt/nasqueron-reports:
+ file.directory:
+ - user: builder
+ - group: deployment
+ - mode: 775
+
+nasqueron_reports_repository:
+ git.latest:
+ - name: https://devcentral.nasqueron.org/source/reports.git
+ - target: /opt/nasqueron-reports
+ - user: builder
+ - force_clone: True
+
+# -------------------------------------------------------------
+# Python package
+#
+# :: dependencies
+# :: build
+# :: installation
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+{% set package_wheel_filename = "nasqueron_reports-0.0.0.dev0-py3-none-any.whl" %}
+
+nasqueron_reports_dependencies:
+ pkg.installed:
+ - pkgs:
+ - {{ packages_prefixes.python3 }}hvac
+ - {{ packages_prefixes.python3 }}mysql-connector-python
+ - {{ packages_prefixes.python3 }}pyyaml
+ - {{ packages_prefixes.python3 }}sqlparse
+
+nasqueron_reports_build:
+ cmd.script:
+ - name: salt://roles/reports/reports/files/build.sh
+ - runas: builder
+ - creates: /opt/nasqueron-reports/dist/{{ package_wheel_filename }}
+
+nasqueron_reports_install:
+ cmd.run:
+ - name: |
+ pip install /opt/nasqueron-reports/dist/{{ package_wheel_filename }}
+ touch /opt/nasqueron-reports/dist/.package-installed
+ - creates: /opt/nasqueron-reports/dist/.package-installed
+
+# -------------------------------------------------------------
+# Symlinks for resources at expected locations
+#
+# :: config in /etc or /usr/local/etc
+# :: content in /usr/local/share/nasqueron-reports
+# :: utilities in /usr/local/bin
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+{{ dirs.etc }}/reports.yaml:
+ file.symlink:
+ - target: /opt/nasqueron-reports/tools/nasqueron-reports/conf/reports.yaml
+
+/usr/local/share/nasqueron-reports:
+ file.directory:
+ - user: root
+ - group: deployment
+ - mode: 775
+
+/usr/local/share/nasqueron-reports/sql:
+ file.symlink:
+ - target: /opt/nasqueron-reports/sql
+ - require:
+ - file: /usr/local/share/nasqueron-reports
+
+{% for utility in ["run-report", "sql-result-to-mediawiki-table"] %}
+/usr/local/bin/{{ utility }}:
+ file.symlink:
+ - target: /opt/nasqueron-reports/tools/nasqueron-reports/bin/{{ utility }}
+{% endfor %}
diff --git a/top.sls b/top.sls
--- a/top.sls
+++ b/top.sls
@@ -30,6 +30,7 @@
- roles/grafana
- roles/prometheus
- roles/redis
+ - roles/reports # depends of builder
- roles/saas-nextcloud
- roles/webserver-alkane
- roles/webserver-core

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 15, 11:05 (16 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2985743
Default Alt Text
D3669.diff (6 KB)

Event Timeline