fix: --chaos/--offline for abra app ps
See coop-cloud/organising#628 See coop-cloud/organising#629
This commit is contained in:
parent
518c5795f4
commit
fd8652e26d
@ -30,12 +30,14 @@ var appPsCommand = cli.Command{
|
|||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
internal.MachineReadableFlag,
|
internal.MachineReadableFlag,
|
||||||
internal.DebugFlag,
|
internal.DebugFlag,
|
||||||
|
internal.ChaosFlag,
|
||||||
|
internal.OfflineFlag,
|
||||||
},
|
},
|
||||||
Before: internal.SubCommandBefore,
|
Before: internal.SubCommandBefore,
|
||||||
BashComplete: autocomplete.AppNameComplete,
|
BashComplete: autocomplete.AppNameComplete,
|
||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
app := internal.ValidateApp(c)
|
app := internal.ValidateApp(c)
|
||||||
if err := app.Recipe.Ensure(false, false); err != nil {
|
if err := app.Recipe.Ensure(internal.Chaos, internal.Offline); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,12 +58,7 @@ var appPsCommand = cli.Command{
|
|||||||
chaosVersion := config.CHAOS_DEFAULT
|
chaosVersion := config.CHAOS_DEFAULT
|
||||||
statuses, err := appPkg.GetAppStatuses([]appPkg.App{app}, true)
|
statuses, err := appPkg.GetAppStatuses([]appPkg.App{app}, true)
|
||||||
if statusMeta, ok := statuses[app.StackName()]; ok {
|
if statusMeta, ok := statuses[app.StackName()]; ok {
|
||||||
isChaos, exists := statusMeta["chaos"]
|
if isChaos, exists := statusMeta["chaos"]; exists && isChaos == "true" {
|
||||||
if exists && isChaos == "false" {
|
|
||||||
if _, err := app.Recipe.EnsureVersion(deployMeta.Version); err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
chaosVersion, err = app.Recipe.ChaosVersion()
|
chaosVersion, err = app.Recipe.ChaosVersion()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -31,6 +31,84 @@ teardown(){
|
|||||||
assert_output --partial 'cannot find app'
|
assert_output --partial 'cannot find app'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# bats test_tags=slow
|
||||||
|
@test "retrieve recipe if missing" {
|
||||||
|
_deploy_app
|
||||||
|
|
||||||
|
run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE"
|
||||||
|
assert_success
|
||||||
|
assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE"
|
||||||
|
|
||||||
|
run $ABRA app ps "$TEST_APP_DOMAIN"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# bats test_tags=slow
|
||||||
|
@test "bail if unstaged changes and no --chaos" {
|
||||||
|
_deploy_app
|
||||||
|
|
||||||
|
run bash -c "echo foo >> $ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
assert_success
|
||||||
|
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
|
||||||
|
run $ABRA app ps "$TEST_APP_DOMAIN"
|
||||||
|
assert_failure
|
||||||
|
assert_output --partial 'locally unstaged changes'
|
||||||
|
|
||||||
|
run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
}
|
||||||
|
|
||||||
|
# bats test_tags=slow
|
||||||
|
@test "do not bail if unstaged changes and --chaos" {
|
||||||
|
_deploy_app
|
||||||
|
|
||||||
|
run bash -c "echo foo >> $ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
assert_success
|
||||||
|
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
|
||||||
|
run $ABRA app ps --chaos "$TEST_APP_DOMAIN"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
|
||||||
|
}
|
||||||
|
|
||||||
|
# bats test_tags=slow
|
||||||
|
@test "ensure recipe up to date if no --offline" {
|
||||||
|
_deploy_app
|
||||||
|
|
||||||
|
wantHash=$(_get_n_hash 3)
|
||||||
|
|
||||||
|
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" reset --hard HEAD~3
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_equal $(_get_current_hash) "$wantHash"
|
||||||
|
|
||||||
|
run $ABRA app ps "$TEST_APP_DOMAIN"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
assert_equal $(_get_head_hash) $(_get_current_hash)
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "ensure recipe not up to date if --offline" {
|
||||||
|
_deploy_app
|
||||||
|
|
||||||
|
_ensure_env_version "0.1.0+1.20.0"
|
||||||
|
latestRelease=$(_latest_release)
|
||||||
|
|
||||||
|
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" tag -d "$latestRelease"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
run $ABRA app ps --offline "$TEST_APP_DOMAIN"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" tag -l
|
||||||
|
refute_output --partial "$latestRelease"
|
||||||
|
}
|
||||||
|
|
||||||
@test "error if not deployed" {
|
@test "error if not deployed" {
|
||||||
run $ABRA app ps "$TEST_APP_DOMAIN"
|
run $ABRA app ps "$TEST_APP_DOMAIN"
|
||||||
assert_failure
|
assert_failure
|
||||||
|
Loading…
x
Reference in New Issue
Block a user