diff --git a/cli/server/add.go b/cli/server/add.go index 24788dc1..2a99b650 100644 --- a/cli/server/add.go +++ b/cli/server/add.go @@ -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) }, } diff --git a/pkg/dns/dns.go b/pkg/dns/dns.go index 62a6f588..40497d66 100644 --- a/pkg/dns/dns.go +++ b/pkg/dns/dns.go @@ -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