diff options
author | Christian Poessinger <christian@poessinger.com> | 2019-03-08 18:54:57 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2019-03-08 19:03:06 +0100 |
commit | a6700c7d3b75854c3b213b65951a51464cd073be (patch) | |
tree | c1fb68e7c98e066b18f53612e4498f6a26743355 /src/op_mode | |
parent | 2100c5947b143d73afa8cc23d8ca80264aad8dc6 (diff) | |
download | vyos-1x-a6700c7d3b75854c3b213b65951a51464cd073be.tar.gz vyos-1x-a6700c7d3b75854c3b213b65951a51464cd073be.zip |
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 <module>
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'
Diffstat (limited to 'src/op_mode')
-rwxr-xr-x | src/op_mode/show_dhcpv6.py | 12 |
1 files 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) |