refactor!: --problems/p goes away
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing

Follow up for coop-cloud/abra#413
This commit is contained in:
decentral1se 2024-07-10 13:06:46 +02:00
parent f6b7510da6
commit 3c9405a4ed
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410
3 changed files with 36 additions and 54 deletions

View File

@ -12,20 +12,11 @@ import (
"github.com/urfave/cli"
)
var problemsFilter bool
var problemsFilterFlag = &cli.BoolFlag{
Name: "problems, p",
Usage: "Show only servers with potential connection problems",
Destination: &problemsFilter,
}
var serverListCommand = cli.Command{
Name: "list",
Aliases: []string{"ls"},
Usage: "List managed servers",
Flags: []cli.Flag{
problemsFilterFlag,
internal.DebugFlag,
internal.MachineReadableFlag,
internal.OfflineFlag,
@ -38,7 +29,7 @@ var serverListCommand = cli.Command{
log.Fatal(err)
}
tableColumns := []string{"name", "host", "user", "port"}
tableColumns := []string{"name", "host"}
table := formatter.CreateTable(tableColumns)
serverNames, err := config.ReadServerNames()
@ -64,47 +55,29 @@ var serverListCommand = cli.Command{
if sp.Host == "" {
sp.Host = "unknown"
}
if sp.User == "" {
sp.User = "unknown"
}
if sp.Port == "" {
sp.Port = "unknown"
}
row = []string{serverName, sp.Host, sp.User, sp.Port}
row = []string{serverName, sp.Host}
}
}
if len(row) == 0 {
if serverName == "default" {
row = []string{serverName, "local", "n/a", "n/a"}
row = []string{serverName, "local"}
} else {
row = []string{serverName, "unknown", "unknown", "unknown"}
row = []string{serverName, "unknown"}
}
}
if problemsFilter {
for _, val := range row {
if val == "unknown" {
table.Append(row)
break
}
}
} else {
table.Append(row)
}
table.Append(row)
}
if internal.MachineReadable {
table.JSONRender()
} else {
if problemsFilter && table.NumLines() == 0 {
log.Info("all servers wired up correctly 👏")
} else {
table.Render()
}
return nil
}
table.Render()
return nil
},
}

View File

@ -15,6 +15,20 @@ setup(){
_common_setup
}
teardown(){
if [[ -d "$ABRA_DIR/servers/nowhere.com" ]]; then
run rm -rf "$ABRA_DIR/servers/nowhere.com"
assert_success
run docker context rm nowhere.com
assert_success
fi
if [[ -d "$ABRA_DIR/servers/default" ]]; then
_rm_default_server
fi
}
@test "list server" {
run "$ABRA" server ls
assert_success
@ -30,29 +44,20 @@ setup(){
assert_success
assert_output --partial 'default'
assert_output --partial 'local'
assert_output --partial 'n/a'
}
@test "filter by problem" {
run "$ABRA" server ls --problems
assert_success
assert_output --partial 'all servers wired up correctly'
@test "list correct details" {
if [ "$TEST_SERVER" = "default" ]; then
skip "cannot add 'default' server (local)"
fi
run docker context create --docker host=ssh://incorrect nowhere.com
assert_success
run mkdir -p "$ABRA_DIR/servers/nowhere.com"
assert_success
run "$ABRA" server ls --problems
assert_success
assert_output --partial 'unknown'
run rm -rf "$ABRA_DIR/servers/nowhere.com"
assert_success
run docker context rm nowhere.com
run "$ABRA" server ls
assert_success
assert_output --partial "$TEST_SERVER"
assert_output --partial "NAME"
assert_output --partial "HOST"
refute_output --partial "USER"
refute_output --partial "PORT"
}
@test "machine readable output" {

View File

@ -15,6 +15,10 @@ setup(){
_common_setup
}
teardown(){
_add_server
}
@test "validate server" {
run $ABRA server remove --no-input
assert_failure