fix: gracefully explode of missing context #679

Merged
decentral1se merged 2 commits from fix/675 into main 2025-10-01 09:50:49 +00:00
4 changed files with 52 additions and 20 deletions

View File

@ -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))
}

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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"
}