Skip to content

Commit f63f5c2

Browse files
committed
python scripts are not meant to execute in uci defaults, noted.
1 parent 2c6b46a commit f63f5c2

File tree

3 files changed

+48
-36
lines changed

3 files changed

+48
-36
lines changed

packages/ns-api/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,8 @@ define Package/ns-api/install
190190
$(INSTALL_BIN) ./files/uci-defaults/99-ns-api.synflood $(1)/etc/uci-defaults
191191
$(INSTALL_BIN) ./files/uci-defaults/99-ns-api.dnsmasq $(1)/etc/uci-defaults
192192
$(INSTALL_BIN) ./files/uci-defaults/99-ns-api.wireguard $(1)/etc/uci-defaults
193+
$(INSTALL_DIR) $(1)/usr/libexec
194+
$(INSTALL_BIN) ./files/misc/wireguard-migrate.py $(1)/usr/libexec/wireguard-migrate
193195
endef
194196

195197
$(eval $(call BuildPackage,ns-api))
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/usr/bin/env python
2+
3+
#
4+
# Copyright (C) 2025 Nethesis S.r.l.
5+
# SPDX-License-Identifier: GPL-2.0-only
6+
#
7+
8+
# this script is supposed to be run by the 99-ns-api.wireguard uci defaults
9+
10+
from euci import EUci
11+
12+
13+
def main():
14+
e_uci = EUci()
15+
wireguard_sections = []
16+
for wg_id in e_uci.get("network"):
17+
if (e_uci.get("network", wg_id, "proto", dtype=str, default="") == "wireguard"
18+
and e_uci.get("network", wg_id, "ns_type", dtype=str, default=None) is None):
19+
wireguard_sections.append(wg_id)
20+
21+
associations = {}
22+
for wg_id in wireguard_sections:
23+
peers = []
24+
for peer_id in e_uci.get("network"):
25+
if e_uci.get("network", peer_id, default="").endswith(wg_id):
26+
peers.append(peer_id)
27+
associations[wg_id] = peers
28+
29+
for wg_id in associations:
30+
e_uci.set("network", wg_id, "ns_type", "server")
31+
for peer_id in associations[wg_id]:
32+
e_uci.set("network", peer_id, "ns_local_routes", e_uci.get("network", wg_id, "ns_routes", dtype=str, default=[], list=True))
33+
e_uci.delete("network", wg_id, "ns_routes")
34+
e_uci.set("network", peer_id, "ns_name", e_uci.get("network", peer_id, "description", dtype=str, default=""))
35+
e_uci.delete("network", peer_id, "description")
36+
e_uci.delete("network", peer_id, "ns_client_to_client")
37+
38+
e_uci.save("network")
39+
e_uci.commit("network")
40+
41+
42+
if __name__ == "__main__":
43+
main()
Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,10 @@
1-
#!/usr/bin/env python
1+
#!/bin/sh
22

33
#
44
# Copyright (C) 2025 Nethesis S.r.l.
55
# SPDX-License-Identifier: GPL-2.0-only
66
#
77

8-
# uci-default converting old wireguard entries in the new format
8+
set -e
99

10-
from euci import EUci
11-
12-
13-
def main():
14-
e_uci = EUci()
15-
wireguard_sections = []
16-
for wg_id in e_uci.get("network"):
17-
if (e_uci.get("network", wg_id, "proto", dtype=str, default="") == "wireguard"
18-
and e_uci.get("network", wg_id, "ns_type", dtype=str, default=None) is None):
19-
wireguard_sections.append(wg_id)
20-
21-
associations = {}
22-
for wg_id in wireguard_sections:
23-
peers = []
24-
for peer_id in e_uci.get("network"):
25-
if e_uci.get("network", peer_id, default="").endswith(wg_id):
26-
peers.append(peer_id)
27-
associations[wg_id] = peers
28-
29-
for wg_id in associations:
30-
e_uci.set("network", wg_id, "ns_type", "server")
31-
for peer_id in associations[wg_id]:
32-
e_uci.set("network", peer_id, "ns_local_routes", e_uci.get("network", wg_id, "ns_routes", dtype=str, default=[], list=True))
33-
e_uci.delete("network", wg_id, "ns_routes")
34-
e_uci.set("network", peer_id, "ns_name", e_uci.get("network", peer_id, "description", dtype=str, default=""))
35-
e_uci.delete("network", peer_id, "description")
36-
e_uci.delete("network", peer_id, "ns_client_to_client")
37-
38-
e_uci.save("network")
39-
e_uci.commit("network")
40-
41-
42-
if __name__ == "__main__":
43-
main()
10+
/usr/libexec/wireguard-migrate

0 commit comments

Comments
 (0)