diff options
-rw-r--r-- | python/vyos/kea.py | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/python/vyos/kea.py b/python/vyos/kea.py index 5aa91e652..89ae7ca81 100644 --- a/python/vyos/kea.py +++ b/python/vyos/kea.py @@ -56,6 +56,8 @@ kea6_options = { 'captive_portal': 'v6-captive-portal' } +kea_ctrl_socket = '/run/kea/dhcp{inet}-ctrl-socket' + def kea_parse_options(config): options = [] @@ -294,7 +296,9 @@ def kea6_parse_subnet(subnet, config): return out -def _ctrl_socket_command(path, command, args=None): +def _ctrl_socket_command(inet, command, args=None): + path = kea_ctrl_socket.format(inet=inet) + if not os.path.exists(path): return None @@ -319,9 +323,7 @@ def _ctrl_socket_command(path, command, args=None): return json.loads(result.decode('utf-8')) def kea_get_leases(inet): - ctrl_socket = f'/run/kea/dhcp{inet}-ctrl-socket' - - leases = _ctrl_socket_command(ctrl_socket, f'lease{inet}-get-all') + leases = _ctrl_socket_command(inet, f'lease{inet}-get-all') if not leases or 'result' not in leases or leases['result'] != 0: return [] @@ -329,11 +331,9 @@ def kea_get_leases(inet): return leases['arguments']['leases'] def kea_delete_lease(inet, ip_address): - ctrl_socket = f'/run/kea/dhcp{inet}-ctrl-socket' - args = {'ip-address': ip_address} - result = _ctrl_socket_command(ctrl_socket, f'lease{inet}-del', args) + result = _ctrl_socket_command(inet, f'lease{inet}-del', args) if result and 'result' in result: return result['result'] == 0 @@ -341,9 +341,7 @@ def kea_delete_lease(inet, ip_address): return False def kea_get_active_config(inet): - ctrl_socket = f'/run/kea/dhcp{inet}-ctrl-socket' - - config = _ctrl_socket_command(ctrl_socket, 'config-get') + config = _ctrl_socket_command(inet, 'config-get') if not config or 'result' not in config or config['result'] != 0: return None |