Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4e81959e7 |
No files matched your search
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "tesm"
|
||||
version = "2.8.44"
|
||||
version = "2.8.45"
|
||||
description = "TESM -- Verwaltung und Ueberwachung von PoE-Endgeraeten und Aruba-Switchen"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
|
||||
@@ -903,10 +903,33 @@ def client_konfiguration(conn: sqlite3.Connection, stil: str) -> dict[str, Any]:
|
||||
"inhalt": inhalt,
|
||||
"nachher": nachher,
|
||||
"skript": _uebernahme_skript(stil, inhalt),
|
||||
"auslesen": _auslesen(stil, codes),
|
||||
"optionen": optionen,
|
||||
}
|
||||
|
||||
|
||||
def _auslesen(stil: str, codes: list[int]) -> str:
|
||||
"""Wie der Wert auf dem Client wieder herauskommt.
|
||||
|
||||
Gehoert dazu, weil "angekommen" sonst niemand pruefen kann -- und weil ein
|
||||
RMM-Agent genau diese Zeile braucht. Bei systemd-networkd steht der Wert
|
||||
**hexkodiert** in der Lease: systemd kennt fremde Optionen nicht und legt
|
||||
sie roh ab. Ohne das Umrechnen liest man 687474703a... und haelt es fuer
|
||||
Unsinn.
|
||||
"""
|
||||
if not codes:
|
||||
return ""
|
||||
code = codes[0]
|
||||
if stil == "networkd":
|
||||
return (
|
||||
"lease=/run/systemd/netif/leases/$(cat /sys/class/net/$IF/ifindex); "
|
||||
f"/usr/bin/printf \"$(sed -n 's/^OPTION_{code}=//p' \"$lease\" | sed 's/../\\\\x&/g')\""
|
||||
)
|
||||
if stil == "dhcpcd":
|
||||
return "dhcpcd -U $IF | grep -i '^url='"
|
||||
return "grep -i 'option url' /var/lib/dhcp/dhclient.leases | tail -n1"
|
||||
|
||||
|
||||
def _uebernahme_skript(stil: str, inhalt: str) -> str:
|
||||
"""Das Skript, das die Konfiguration auf dem Client eintraegt.
|
||||
|
||||
|
||||
@@ -445,6 +445,13 @@
|
||||
</div>
|
||||
<pre class="code-block code-block--wrap" id="konfig-{{ stil }}">{{ konfig.inhalt }}</pre>
|
||||
<div class="fs-xs faint">Danach: <code>{{ konfig.nachher }}</code></div>
|
||||
{% if konfig.auslesen %}
|
||||
{# Ohne diese Zeile kann niemand pruefen, ob es angekommen ist --
|
||||
und ein RMM-Agent braucht genau sie. #}
|
||||
<div class="fs-xs faint">
|
||||
Auslesen auf dem Client: <code class="break-all">{{ konfig.auslesen }}</code>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if current_user.has('servicing_command.execute') %}
|
||||
<form method="post" action="{{ url_for('dhcp.push_client_config') }}">
|
||||
|
||||
Reference in new issue
Block a user