fix: better "server add" failure

See toolshed/organising#570
This commit is contained in:
decentral1se 2024-12-28 21:17:51 +01:00
parent 27f68b1dc5
commit 3f32dbb1a3
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410
2 changed files with 13 additions and 11 deletions

View File

@ -88,10 +88,6 @@ developer machine. The domain is then set to "default".`,
return
}
if _, err := dns.EnsureIPv4(name); err != nil {
log.Warn(err)
}
_, err := createServerDir(name)
if err != nil {
log.Fatal(err)
@ -100,21 +96,28 @@ developer machine. The domain is then set to "default".`,
created, err := newContext(name)
if err != nil {
cleanUp(name)
log.Fatal(err)
log.Fatalf("unable to create local context: %s", err)
}
log.Debugf("attempting to create client for %s", name)
if _, err := client.New(name, timeout); err != nil {
cleanUp(name)
log.Fatal(sshPkg.Fatal(name, err))
log.Debugf("ssh %s error: %s", name, sshPkg.Fatal(name, err))
log.Fatalf("can't ssh to %s, make sure \"ssh %s\" works", name, name)
}
if created {
log.Infof("%s successfully added", name)
} else {
log.Warnf("%s already exists", name)
if _, err := dns.EnsureIPv4(name); err != nil {
log.Warnf("unable to resolve IPv4 for %s", name)
}
return
}
log.Warnf("%s already exists", name)
},
}

View File

@ -9,12 +9,11 @@ import (
func EnsureIPv4(domainName string) (string, error) {
ipv4, err := net.ResolveIPAddr("ip4", domainName)
if err != nil {
return "", fmt.Errorf("unable to resolve ipv4 address for %s, %s", domainName, err)
return "", fmt.Errorf("%s: unable to resolve IPv4 address: %s", domainName, err)
}
// NOTE(d1): e.g. when there is only an ipv6 record available
if ipv4 == nil {
return "", fmt.Errorf("unable to resolve ipv4 address for %s", domainName)
return "", fmt.Errorf("%s: no IPv4 available", domainName)
}
return ipv4.String(), nil