summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2022-11-20 15:00:22 -0600
committerJohn Estabrook <jestabro@vyos.io>2022-11-20 16:12:14 -0600
commit97771d427c1660f16122da1260bf28e22e12612d (patch)
tree823ae5952786e3f5d7bdcd3f84b903b57d612f7d /src
parent11273157f6511d49c24d14516a44d581e9f3c126 (diff)
downloadvyos-1x-97771d427c1660f16122da1260bf28e22e12612d.tar.gz
vyos-1x-97771d427c1660f16122da1260bf28e22e12612d.zip
IPsec: T4829: use type hint Optional for arg tunnel in reset_peer
Diffstat (limited to 'src')
-rwxr-xr-xsrc/op_mode/ipsec.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/op_mode/ipsec.py b/src/op_mode/ipsec.py
index 3389254e3..e0d204a0a 100755
--- a/src/op_mode/ipsec.py
+++ b/src/op_mode/ipsec.py
@@ -17,6 +17,7 @@
import os
import re
import sys
+import typing
from collections import OrderedDict
from hurry import filesize
@@ -403,23 +404,27 @@ def _get_formatted_output_conections(data):
# Connections block end
-def get_peer_connections(peer, tunnel, return_all = False):
+def get_peer_connections(peer, tunnel):
search = rf'^[\s]*({peer}-(tunnel-[\d]+|vti)).*'
matches = []
if not os.path.exists(SWANCTL_CONF):
raise vyos.opmode.UnconfiguredSubsystem("IPsec not initialized")
+ suffix = None if tunnel is None else (f'tunnel-{tunnel}' if
+ tunnel.isnumeric() else tunnel)
with open(SWANCTL_CONF, 'r') as f:
for line in f.readlines():
result = re.match(search, line)
if result:
- suffix = f'tunnel-{tunnel}' if tunnel.isnumeric() else tunnel
- if return_all or (result[2] == suffix):
+ if tunnel is None:
matches.append(result[1])
+ else:
+ if result[2] == suffix:
+ matches.append(result[1])
return matches
-def reset_peer(peer: str, tunnel:str):
- conns = get_peer_connections(peer, tunnel, return_all = (not tunnel or tunnel == 'all'))
+def reset_peer(peer: str, tunnel:typing.Optional[str]):
+ conns = get_peer_connections(peer, tunnel)
if not conns:
raise vyos.opmode.IncorrectValue('Peer or tunnel(s) not found, aborting')