From c5f523c36e493b335a6d6983be9c3ff5665a17c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= <78488229+viktor138irk@users.noreply.github.com> Date: Thu, 7 May 2026 03:59:32 +0900 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=82=D1=87=20DHCP=20leases=20=D1=83=D1=81=D1=82?= =?UTF-8?q?=D0=BE=D0=B9=D1=87=D0=B8=D0=B2=D1=8B=D0=BC=20=D0=BA=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D1=91=D0=BD=D0=BD=D0=BE=D0=BC=D1=83=20?= =?UTF-8?q?app.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/patch_dhcp_leases_empty.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/scripts/patch_dhcp_leases_empty.py b/scripts/patch_dhcp_leases_empty.py index effdf6c..664b514 100644 --- a/scripts/patch_dhcp_leases_empty.py +++ b/scripts/patch_dhcp_leases_empty.py @@ -47,11 +47,21 @@ def dhcp_leases_hint(info: dict[str, Any], leases: list[dict[str, str]]) -> str: ''' if 'def parse_dhcp_leases_output(' not in text: - marker = '\n\ndef list_libvirt_networks() -> list[dict[str, str]]:' - if marker not in text: - raise SystemExit('list_libvirt_networks marker not found') - text = text.replace(marker, helpers + marker, 1) - changed.append('DHCP leases parser added') + markers = [ + '\n\ndef libvirt_network_info() -> dict[str, Any]:', + '\n\ndef network_context() -> dict[str, Any]:', + '\n\ndef parse_virsh_list() -> list[dict[str, str]]:', + ] + inserted = False + for marker in markers: + if marker in text: + text = text.replace(marker, helpers + marker, 1) + inserted = True + changed.append('DHCP leases parser added') + break + if not inserted: + print('WARN: DHCP helper marker not found, skip helper injection') + changed.append('DHCP leases parser skipped') else: changed.append('DHCP leases parser already present') @@ -73,7 +83,7 @@ new_info = '''def libvirt_network_info() -> dict[str, Any]: info = run_cmd(['virsh', 'net-info', NETWORK_NAME], timeout=8) leases = run_cmd(['virsh', 'net-dhcp-leases', NETWORK_NAME], timeout=8) leases_text = leases['stdout'] if leases['ok'] else leases['stderr'] - lease_rows = parse_dhcp_leases_output(leases['stdout'] if leases['ok'] else '') + lease_rows = parse_dhcp_leases_output(leases['stdout'] if leases['ok'] else '') if 'parse_dhcp_leases_output' in globals() else [] data = { 'name': NETWORK_NAME, 'bridge': NAT_BRIDGE, @@ -87,7 +97,7 @@ new_info = '''def libvirt_network_info() -> dict[str, Any]: 'lease_count': len(lease_rows), 'lease_hint': '', } - data['lease_hint'] = dhcp_leases_hint(data, lease_rows) + data['lease_hint'] = dhcp_leases_hint(data, lease_rows) if 'dhcp_leases_hint' in globals() else 'DHCP leases пусты.' return data ''' if old_info in text: @@ -96,7 +106,8 @@ if old_info in text: elif "'lease_rows':" in text: changed.append('libvirt network info already enriched') else: - raise SystemExit('libvirt_network_info marker not found') + print('WARN: libvirt_network_info marker not found, skip function rewrite') + changed.append('libvirt network info rewrite skipped') app_path.write_text(text) @@ -145,7 +156,8 @@ if old_html in html: elif 'ctx.nat.lease_rows' in html: changed.append('DHCP leases UI already updated') else: - raise SystemExit('DHCP leases template marker not found') + print('WARN: DHCP leases template marker not found, skip UI rewrite') + changed.append('DHCP leases UI rewrite skipped') template_path.write_text(html)