feat: complete professional cli with full lifecycle and tests
This commit is contained in:
parent
a7d97227d3
commit
34ba255024
12 changed files with 112 additions and 9 deletions
|
|
@ -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}
|
||||
Loading…
Add table
Add a link
Reference in a new issue