summaryrefslogtreecommitdiffstats
path: root/ogcp
diff options
context:
space:
mode:
authorJavier Sánchez Parra <jsanchez@soleta.eu>2021-10-21 13:06:06 +0200
committerJavier Sánchez Parra <jsanchez@soleta.eu>2021-10-28 11:29:03 +0200
commit20a94dbc3e3e6e36655982a5569a6d7e4d0abedd (patch)
treee0bf2592cb5077aa98dc2cd33f1d3dd7a41425bf /ogcp
parentc493d243496e80016845aa16cfa59773cb75be71 (diff)
Add legacy log
Future patches will deprecate this log functionality in favour of more robust solutions.
Diffstat (limited to 'ogcp')
-rw-r--r--ogcp/templates/actions/legacy/log.html10
-rw-r--r--ogcp/templates/commands.html2
-rw-r--r--ogcp/views.py16
3 files changed, 28 insertions, 0 deletions
diff --git a/ogcp/templates/actions/legacy/log.html b/ogcp/templates/actions/legacy/log.html
new file mode 100644
index 0000000..08d3328
--- /dev/null
+++ b/ogcp/templates/actions/legacy/log.html
@@ -0,0 +1,10 @@
+{% extends 'base.html' %}
+{% import "bootstrap/wtf.html" as wtf %}
+
+{% block content %}
+
+<h1 class="m-5">{{_('Client log')}}</h1>
+
+<pre>{{ log }}</pre>
+
+{% endblock %}
diff --git a/ogcp/templates/commands.html b/ogcp/templates/commands.html
index 1e7dc84..b965867 100644
--- a/ogcp/templates/commands.html
+++ b/ogcp/templates/commands.html
@@ -40,5 +40,7 @@
form="scopesForm" formaction="{{ url_for('action_image_create') }}" formmethod="get">
<input class="btn btn-light" type="submit" value="{{ _('Set boot mode') }}"
form="scopesForm" formaction="{{ url_for('action_mode') }}" formmethod="get">
+ <input class="btn btn-light" type="submit" value="{{ _('Log') }}"
+ form="scopesForm" formaction="{{ url_for('action_legacy_log') }}" formmethod="get">
{% endblock %}
diff --git a/ogcp/views.py b/ogcp/views.py
index 77e63ac..525532f 100644
--- a/ogcp/views.py
+++ b/ogcp/views.py
@@ -19,6 +19,8 @@ from flask_login import (
login_required
)
+from pathlib import Path
+
from ogcp.models import User
from ogcp.forms.auth import LoginForm
from ogcp.og_server import OGServer
@@ -832,3 +834,17 @@ def action_image_delete():
flash(_('Delete client request processed successfully'), category='info')
return redirect(url_for('images'))
+@app.route('/action/log', methods=['GET'])
+@login_required
+def action_legacy_log():
+ ips = parse_elements(request.args.to_dict())
+ if not validate_elements(ips, max_len=1):
+ return redirect(url_for('commands'))
+ ip = ips.pop()
+ log_file = Path("/opt/opengnsys/log/clients/" + str(ip) + ".log")
+ log = log_file.read_text()
+ if log:
+ return render_template('actions/legacy/log.html', log=log)
+ else:
+ return redirect(url_for('commands'))
+