feat: untie server name from a domain in the add command
This commit is contained in:
parent
ca91abbed9
commit
5d503319e3
|
@ -169,7 +169,7 @@ var NewAppServerFlag = &cli.StringFlag{
|
|||
var NoDomainChecks bool
|
||||
var NoDomainChecksFlag = &cli.BoolFlag{
|
||||
Name: "no-domain-checks, D",
|
||||
Usage: "Disable app domain sanity checks",
|
||||
Usage: "Disable domain sanity checks",
|
||||
Destination: &NoDomainChecks,
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ func cleanUp(domainName string) {
|
|||
// Docker manages SSH connection details. These are stored to disk in
|
||||
// ~/.docker. Abra can manage this completely for the user, so it's an
|
||||
// implementation detail.
|
||||
func newContext(c *cli.Context, domainName, username, port string) error {
|
||||
func newContext(c *cli.Context, name, host, username, port string) error {
|
||||
store := contextPkg.NewDefaultDockerContextStore()
|
||||
contexts, err := store.Store.List()
|
||||
if err != nil {
|
||||
|
@ -61,15 +61,15 @@ func newContext(c *cli.Context, domainName, username, port string) error {
|
|||
}
|
||||
|
||||
for _, context := range contexts {
|
||||
if context.Name == domainName {
|
||||
logrus.Debugf("context for %s already exists", domainName)
|
||||
if context.Name == name {
|
||||
logrus.Debugf("context for %s already exists", name)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
logrus.Debugf("creating context with domain %s, username %s and port %s", domainName, username, port)
|
||||
logrus.Debugf("creating context with name %s, host %s, username %s and port %s", name, host, username, port)
|
||||
|
||||
if err := client.CreateContext(domainName, username, port); err != nil {
|
||||
if err := client.CreateContext(name, host, username, port); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -112,11 +112,16 @@ Abra can then load SSH connection details from this configuratiion with:
|
|||
If "--local" is passed, then Abra assumes that the current local server is
|
||||
intended as the target server. This is useful when you want to have your entire
|
||||
Co-op Cloud config located on the server itself, and not on your local
|
||||
developer machine.
|
||||
developer machine. The domain is then set to "default".
|
||||
|
||||
You can also pass "--no-domain-checks" flag to use any arbitrary name instead
|
||||
of a real domain. Host will be resolved with the "hostname" entry of your SSH
|
||||
configuration. Checks for a valid online domain will be skipped.
|
||||
`,
|
||||
Flags: []cli.Flag{
|
||||
internal.DebugFlag,
|
||||
internal.NoInputFlag,
|
||||
internal.NoDomainChecksFlag,
|
||||
localFlag,
|
||||
},
|
||||
Before: internal.SubCommandBefore,
|
||||
|
@ -150,23 +155,29 @@ developer machine.
|
|||
return nil
|
||||
}
|
||||
|
||||
if _, err := dns.EnsureIPv4(domainName); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
if err := createServerDir(domainName); err != nil {
|
||||
logrus.Fatal(err)
|
||||
if !internal.NoDomainChecks {
|
||||
if _, err := dns.EnsureIPv4(domainName); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
hostConfig, err := sshPkg.GetHostConfig(domainName)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
if hostConfig.Host == "" {
|
||||
hostConfig.Host = domainName
|
||||
}
|
||||
|
||||
if err := newContext(c, domainName, hostConfig.User, hostConfig.Port); err != nil {
|
||||
if err := createServerDir(domainName); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
if err := newContext(c, domainName, hostConfig.Host, hostConfig.User, hostConfig.Port); err != nil {
|
||||
logrus.Fatal(err)
|
||||
cleanUp(domainName)
|
||||
}
|
||||
|
||||
logrus.Infof("attempting to create client for %s", domainName)
|
||||
if _, err := client.New(domainName); err != nil {
|
||||
cleanUp(domainName)
|
||||
|
|
|
@ -14,8 +14,7 @@ import (
|
|||
|
||||
type Context = contextStore.Metadata
|
||||
|
||||
func CreateContext(contextName string, user string, port string) error {
|
||||
host := contextName
|
||||
func CreateContext(contextName string, host string, user string, port string) error {
|
||||
if user != "" {
|
||||
host = fmt.Sprintf("%s@%s", user, host)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue