feat: complete professional cli with full lifecycle and tests

This commit is contained in:
Fredrick Amnehagen 2026-02-05 11:37:29 +01:00
parent a7d97227d3
commit 34ba255024
12 changed files with 112 additions and 9 deletions

View file

@ -21,7 +21,8 @@ class DNSManager:
if res.returncode == 0:
raise ValueError(f"MAC {mac} already exists")
self.client.run(f"pct exec {self.lxc_id} -- sh -c \"echo 'dhcp-host={mac},{hostname},{ip}' >> {self.hosts_file}\")
cmd = f"sh -c \"echo 'dhcp-host={mac},{hostname},{ip}' >> {self.hosts_file}\""
self.exec_lxc(cmd)
self.reload()
def remove_host(self, mac):
@ -30,11 +31,13 @@ class DNSManager:
def add_dns(self, domain, ip):
self.exec_lxc(f"touch {self.dns_file}")
self.client.run(f"pct exec {self.lxc_id} -- sh -c \"echo 'address=/{domain}/{ip}' >> {self.dns_file}\")
cmd = f"sh -c \"echo 'address=/{domain}/{ip}' >> {self.dns_file}\""
self.exec_lxc(cmd)
self.reload()
def remove_dns(self, domain):
self.client.run(f"pct exec {self.lxc_id} -- sh -c \"sed -i '\#address=/{domain}/#d' {self.dns_file}\")
cmd = f"sh -c \"sed -i '\#address=/{domain}/#d' {self.dns_file}\""
self.exec_lxc(cmd)
self.reload()
def reload(self):
@ -47,4 +50,4 @@ class DNSManager:
def list(self):
hosts = self.exec_lxc(f"cat {self.hosts_file}").stdout
dns = self.exec_lxc(f"cat {self.dns_file}").stdout
return {"hosts": hosts, "dns": dns}
return {"hosts": hosts, "dns": dns}