summaryrefslogtreecommitdiff
path: root/linuxstatus/hostname.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-06 05:24:11 -0600
committerJeff Carr <[email protected]>2024-01-06 05:24:11 -0600
commit4529b473dc12d8a4d1b49c9ee1ba89897f86d616 (patch)
tree20cdc5bd7c644e3fb8d7afa8e7b872b1f2082684 /linuxstatus/hostname.go
parenta808bb55189a44d0c3b2965805c14644f8102cca (diff)
add LinuxStatus()
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'linuxstatus/hostname.go')
-rw-r--r--linuxstatus/hostname.go86
1 files changed, 86 insertions, 0 deletions
diff --git a/linuxstatus/hostname.go b/linuxstatus/hostname.go
new file mode 100644
index 0000000..76854f5
--- /dev/null
+++ b/linuxstatus/hostname.go
@@ -0,0 +1,86 @@
+// figures out if your hostname is valid
+// then checks if your DNS is setup correctly
+package linuxstatus
+
+import (
+ "go.wit.com/log"
+ "go.wit.com/shell"
+
+ // will try to get this hosts FQDN
+ "github.com/Showmax/go-fqdn"
+)
+
+func (ls *LinuxStatus) GetDomainName() string {
+ if ! me.Ready() {return ""}
+ return me.domainname.Get()
+}
+
+func (ls *LinuxStatus) setDomainName(dn string) {
+ if ! me.Ready() {return}
+ me.domainname.Set(dn)
+}
+
+func getHostname() {
+ var err error
+ var s string = "gui.Label == nil"
+ s, err = fqdn.FqdnHostname()
+ if (err != nil) {
+ log.Error(err, "FQDN hostname error")
+ return
+ }
+ log.Warn("full hostname should be:", s)
+
+ dn := run("domainname")
+ if (me.domainname.Get() != dn) {
+ log.Log(CHANGE, "domainname has changed from", me.GetDomainName(), "to", dn)
+ me.setDomainName(dn)
+ me.changed = true
+ }
+
+ hshort := run("hostname -s")
+ if (me.hostshort.Get() != hshort) {
+ log.Log(CHANGE, "hostname -s has changed from", me.hostshort.Get(), "to", hshort)
+ me.hostshort.Set(hshort)
+ me.changed = true
+ }
+
+ /*
+ var test string
+ test = hshort + "." + dn
+ if (me.status.GetHostname() != test) {
+ log.Log(CHANGE, "me.hostname", me.status.GetHostname(), "does not equal", test)
+ if (me.hostnameStatus.S != "BROKEN") {
+ log.Log(CHANGE, "me.hostname", me.status.GetHostname(), "does not equal", test)
+ me.changed = true
+ me.hostnameStatus.SetText("BROKEN")
+ }
+ } else {
+ if (me.hostnameStatus.S != "VALID") {
+ log.Log(CHANGE, "me.hostname", me.status.GetHostname(), "is valid")
+ me.hostnameStatus.SetText("VALID")
+ me.changed = true
+ }
+ }
+ */
+}
+
+// returns true if the hostname is good
+// check that all the OS settings are correct here
+// On Linux, /etc/hosts, /etc/hostname
+// and domainname and hostname
+func goodHostname() bool {
+ hostname := shell.Chomp(shell.Cat("/etc/hostname"))
+ log.Log(NOW, "hostname =", hostname)
+
+ hs := run("hostname -s")
+ dn := run("domainname")
+ log.Log(NOW, "hostname short =", hs, "domainname =", dn)
+
+ tmp := hs + "." + dn
+ if (hostname == tmp) {
+ log.Log(NOW, "hostname seems to be good", hostname)
+ return true
+ }
+
+ return false
+}