fix: gracefully explode of missing context #679
@ -6,9 +6,11 @@ import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"coopcloud.tech/abra/pkg/config"
|
||||
contextPkg "coopcloud.tech/abra/pkg/context"
|
||||
"coopcloud.tech/abra/pkg/i18n"
|
||||
"coopcloud.tech/abra/pkg/log"
|
||||
@ -41,6 +43,11 @@ func New(serverName string, opts ...Opt) (*client.Client, error) {
|
||||
|
||||
ctx, err := GetContext(serverName)
|
||||
if err != nil {
|
||||
serverDir := path.Join(config.SERVERS_DIR, serverName)
|
||||
if _, err := os.Stat(serverDir); err == nil {
|
||||
return nil, errors.New(i18n.G("server missing context, run \"abra server add %s\"?", serverName))
|
||||
}
|
||||
|
||||
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||
"POT-Creation-Date: 2025-10-01 11:18+0200\n"
|
||||
"POT-Creation-Date: 2025-10-01 11:49+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -2323,7 +2323,7 @@ msgstr ""
|
||||
msgid "create remote directory: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ./pkg/client/client.go:95
|
||||
#: ./pkg/client/client.go:102
|
||||
#, c-format
|
||||
msgid "created client for %s"
|
||||
msgstr ""
|
||||
@ -4695,6 +4695,11 @@ msgstr ""
|
||||
msgid "server doesn't exist?"
|
||||
msgstr ""
|
||||
|
||||
#: ./pkg/client/client.go:48
|
||||
#, c-format
|
||||
msgid "server missing context, run \"abra server add %s\"?"
|
||||
msgstr ""
|
||||
|
||||
#: ./cli/server/add.go:148
|
||||
#, c-format
|
||||
msgid "serverAdd: cleanUp: %s is not empty, aborting cleanup"
|
||||
@ -4970,12 +4975,12 @@ msgstr ""
|
||||
msgid "successfully created %s"
|
||||
msgstr ""
|
||||
|
||||
#: ./pkg/client/client.go:104
|
||||
#: ./pkg/client/client.go:111
|
||||
#, c-format
|
||||
msgid "swarm mode not enabled on %s?"
|
||||
msgstr ""
|
||||
|
||||
#: ./pkg/client/client.go:107
|
||||
#: ./pkg/client/client.go:114
|
||||
msgid "swarm mode not enabled on local server?"
|
||||
msgstr ""
|
||||
|
||||
@ -5426,7 +5431,7 @@ msgstr ""
|
||||
msgid "unknown restart policy: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ./pkg/client/client.go:44
|
||||
#: ./pkg/client/client.go:51
|
||||
#, c-format
|
||||
msgid "unknown server, run \"abra server add %s\"?"
|
||||
msgstr ""
|
||||
|
||||
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||
"POT-Creation-Date: 2025-10-01 11:18+0200\n"
|
||||
"POT-Creation-Date: 2025-10-01 11:49+0200\n"
|
||||
"PO-Revision-Date: 2025-09-04 08:14+0000\n"
|
||||
"Last-Translator: chasqui <chasqui@cryptolab.net>\n"
|
||||
"Language-Team: Spanish <https://translate.coopcloud.tech/projects/co-op-"
|
||||
@ -1706,19 +1706,19 @@ msgid ""
|
||||
"\n"
|
||||
"Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name "
|
||||
"\"help\"))}}\n"
|
||||
" {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}"
|
||||
"{{if .HasAvailableLocalFlags}}\n"
|
||||
" {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if ."
|
||||
"HasAvailableLocalFlags}}\n"
|
||||
"\n"
|
||||
"Flags:\n"
|
||||
"{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}"
|
||||
"{{if .HasAvailableInheritedFlags}}\n"
|
||||
"{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if ."
|
||||
"HasAvailableInheritedFlags}}\n"
|
||||
"\n"
|
||||
"Global Flags:\n"
|
||||
"{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}"
|
||||
"{{if .HasHelpSubCommands}}\n"
|
||||
"{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if ."
|
||||
"HasHelpSubCommands}}\n"
|
||||
"\n"
|
||||
"Additional help topics:{{range .Commands}}"
|
||||
"{{if .IsAdditionalHelpTopicCommand}}\n"
|
||||
"Additional help topics:{{range .Commands}}{{if ."
|
||||
"IsAdditionalHelpTopicCommand}}\n"
|
||||
" {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}"
|
||||
"{{if .HasAvailableSubCommands}}\n"
|
||||
"\n"
|
||||
@ -2509,7 +2509,7 @@ msgstr ""
|
||||
msgid "create remote directory: %s"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/client/client.go:95
|
||||
#: pkg/client/client.go:102
|
||||
#, c-format
|
||||
msgid "created client for %s"
|
||||
msgstr ""
|
||||
@ -4947,6 +4947,11 @@ msgstr ""
|
||||
msgid "server doesn't exist?"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/client/client.go:48
|
||||
#, c-format
|
||||
msgid "server missing context, run \"abra server add %s\"?"
|
||||
msgstr ""
|
||||
|
||||
#: cli/server/add.go:148
|
||||
#, c-format
|
||||
msgid "serverAdd: cleanUp: %s is not empty, aborting cleanup"
|
||||
@ -4970,8 +4975,8 @@ msgstr ""
|
||||
#: cli/recipe/upgrade.go:228
|
||||
#, c-format
|
||||
msgid ""
|
||||
"service %s is at version %s, but pinned to %s, please correct your "
|
||||
"compose.yml file manually!"
|
||||
"service %s is at version %s, but pinned to %s, please correct your compose."
|
||||
"yml file manually!"
|
||||
msgstr ""
|
||||
|
||||
#: cli/recipe/upgrade.go:224
|
||||
@ -5226,12 +5231,12 @@ msgstr ""
|
||||
msgid "successfully created %s"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/client/client.go:104
|
||||
#: pkg/client/client.go:111
|
||||
#, c-format
|
||||
msgid "swarm mode not enabled on %s?"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/client/client.go:107
|
||||
#: pkg/client/client.go:114
|
||||
msgid "swarm mode not enabled on local server?"
|
||||
msgstr ""
|
||||
|
||||
@ -5692,7 +5697,7 @@ msgstr ""
|
||||
msgid "unknown restart policy: %s"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/client/client.go:44
|
||||
#: pkg/client/client.go:51
|
||||
#, c-format
|
||||
msgid "unknown server, run \"abra server add %s\"?"
|
||||
msgstr ""
|
||||
|
||||
@ -577,3 +577,18 @@ teardown(){
|
||||
assert_success
|
||||
refute_output --partial "IMAGES"
|
||||
}
|
||||
|
||||
# bats test_tags=slow
|
||||
@test "manually created server without context bails gracefully" {
|
||||
run mkdir -p "$ABRA_DIR/servers/default2"
|
||||
assert_success
|
||||
assert_exists "$ABRA_DIR/servers/default2"
|
||||
|
||||
run cp "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" "$ABRA_DIR/servers/default2/$TEST_APP_DOMAIN_2.env"
|
||||
assert_success
|
||||
assert_exists "$ABRA_DIR/servers/default2/$TEST_APP_DOMAIN_2.env"
|
||||
|
||||
run $ABRA app deploy "$TEST_APP_DOMAIN_2" --no-input --no-converge-checks
|
||||
assert_failure
|
||||
assert_output --partial "server missing context"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user