new script for kea dhcp server mgmt
This commit is contained in:
parent
ce8a4e5a9e
commit
6cbcaa768d
64
kea-mgmt.py
Normal file
64
kea-mgmt.py
Normal file
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import requests
|
||||
import json
|
||||
import re
|
||||
import pprint
|
||||
|
||||
|
||||
url = "http://localhost:8000/"
|
||||
headers = {"Content-Type": "application/json"}
|
||||
|
||||
|
||||
# Validate for correct IPv4 address syntax
|
||||
def is_valid_ipv4(ip_address):
|
||||
ip_regex = re.compile(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$')
|
||||
return bool(ip_regex.match(ip_address))
|
||||
|
||||
|
||||
print("Choose action to execute:")
|
||||
print("1. list all DHCP4 leases")
|
||||
print("2. resend specific IP address to DNS server")
|
||||
|
||||
choice = int(input("Enter choice: "))
|
||||
|
||||
if choice == 1:
|
||||
data = {
|
||||
"command": "lease4-get-all",
|
||||
"service": [
|
||||
"dhcp4"
|
||||
]
|
||||
}
|
||||
elif choice == 2:
|
||||
while True:
|
||||
print("Please enter an IPv4 address:")
|
||||
ip_address = input()
|
||||
|
||||
if is_valid_ipv4(ip_address):
|
||||
break
|
||||
else:
|
||||
print("Invalid IPv4 address. Please try again.")
|
||||
|
||||
data = {
|
||||
"command": "lease4-resend-ddns",
|
||||
"arguments": {
|
||||
"ip-address": ip_address
|
||||
},
|
||||
"service": [
|
||||
"dhcp4"
|
||||
]
|
||||
}
|
||||
else:
|
||||
print("Invalid choice.")
|
||||
exit()
|
||||
|
||||
# Get the json data from the server
|
||||
response = requests.post(url, headers=headers, data=json.dumps(data))
|
||||
|
||||
# Make sure the request was successful
|
||||
response.raise_for_status()
|
||||
|
||||
try:
|
||||
pprint.pprint(response.json())
|
||||
except json.JSONDecodeError:
|
||||
print("Error: The server response is not in a valid JSON format.")
|
Loading…
x
Reference in New Issue
Block a user