From a6700c7d3b75854c3b213b65951a51464cd073be Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Fri, 8 Mar 2019 18:54:57 +0100 Subject: T1277: [dhcpv6-server] bugfix 'show dhcpv6 server leases' The script did not check if the service was actually configured or not. This caused a FileNotFoundError for unconfigured services. vyos@vyos:~$ show dhcpv6 server leases Traceback (most recent call last): File "/usr/libexec/vyos/op_mode/show_dhcpv6.py", line 77, in leases = get_leases(lease_file, state='active') File "/usr/libexec/vyos/op_mode/show_dhcpv6.py", line 46, in get_leases leases = IscDhcpLeases(lease_file).get() File "/usr/lib/python3/dist-packages/isc_dhcp_leases/iscdhcpleases.py", line 110, in get with open(self.filename) as lease_file: FileNotFoundError: [Errno 2] No such file or directory: '/config/dhcpdv6.leases' --- src/op_mode/show_dhcpv6.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/op_mode/show_dhcpv6.py b/src/op_mode/show_dhcpv6.py index 8879a45c5..bf73b92ea 100755 --- a/src/op_mode/show_dhcpv6.py +++ b/src/op_mode/show_dhcpv6.py @@ -18,14 +18,12 @@ import json import argparse import ipaddress - import tabulate +import sys -import vyos.config - +from vyos.config import Config from isc_dhcp_leases import Lease, IscDhcpLeases - lease_file = "/config/dhcpdv6.leases" def get_lease_data(lease): @@ -73,6 +71,12 @@ if __name__ == '__main__': args = parser.parse_args() + # Do nothing if service is not configured + c = Config() + if not c.exists_effective('service dhcpv6-server'): + print("DHCPv6 service is not configured") + sys.exit(0) + if args.leases: leases = get_leases(lease_file, state='active') show_leases(leases) -- cgit v1.2.3