test: app move (basics)
This commit is contained in:
@ -6,6 +6,7 @@ import (
|
||||
"errors"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
contextPkg "coopcloud.tech/abra/pkg/context"
|
||||
@ -38,18 +39,24 @@ func WithTimeout(timeout int) Opt {
|
||||
func New(serverName string, opts ...Opt) (*client.Client, error) {
|
||||
var clientOpts []client.Opt
|
||||
|
||||
if serverName != "default" {
|
||||
context, err := GetContext(serverName)
|
||||
if err != nil {
|
||||
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
|
||||
}
|
||||
ctx, err := GetContext(serverName)
|
||||
if err != nil {
|
||||
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
|
||||
}
|
||||
|
||||
ctxEndpoint, err := contextPkg.GetContextEndpoint(context)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ctxEndpoint, err := contextPkg.GetContextEndpoint(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var isUnix bool
|
||||
if strings.Contains(ctxEndpoint, "unix://") {
|
||||
isUnix = true
|
||||
}
|
||||
|
||||
if serverName != "default" && !isUnix {
|
||||
conf := &Conf{}
|
||||
|
||||
for _, opt := range opts {
|
||||
opt(conf)
|
||||
}
|
||||
@ -93,7 +100,7 @@ func New(serverName string, opts ...Opt) (*client.Client, error) {
|
||||
}
|
||||
|
||||
if info.Swarm.LocalNodeState == "inactive" {
|
||||
if serverName != "default" {
|
||||
if serverName != "default" && !isUnix {
|
||||
return cl, errors.New(i18n.G("swarm mode not enabled on %s?", serverName))
|
||||
}
|
||||
|
||||
|
42
tests/integration/app_move.bats
Normal file
42
tests/integration/app_move.bats
Normal file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
setup_file(){
|
||||
load "$PWD/tests/integration/helpers/common"
|
||||
_common_setup
|
||||
_add_server
|
||||
_add_move_server
|
||||
_new_app
|
||||
}
|
||||
|
||||
teardown_file(){
|
||||
_rm_app
|
||||
_rm_server
|
||||
_rm_move_server
|
||||
}
|
||||
|
||||
setup(){
|
||||
load "$PWD/tests/integration/helpers/common"
|
||||
_common_setup
|
||||
_ensure_catalogue
|
||||
}
|
||||
|
||||
teardown(){
|
||||
_undeploy_app
|
||||
}
|
||||
|
||||
@test "validate app argument" {
|
||||
run $ABRA app move
|
||||
assert_failure
|
||||
|
||||
run $ABRA app move DOESNTEXIST
|
||||
assert_failure
|
||||
|
||||
run $ABRA app move "$TEST_APP_DOMAIN" DOESNTEXIST
|
||||
assert_failure
|
||||
}
|
||||
|
||||
@test "move app fails if not deployed" {
|
||||
run $ABRA app move "$TEST_APP_DOMAIN" "$TEST_MOVE_SERVER"
|
||||
assert_failure
|
||||
assert_output --partial 'must first be deployed'
|
||||
}
|
@ -17,6 +17,7 @@ _common_setup() {
|
||||
|
||||
export TEST_APP_NAME="$(basename "${BATS_TEST_FILENAME//./_}")"
|
||||
export TEST_APP_DOMAIN="$TEST_APP_NAME.$TEST_SERVER"
|
||||
export TEST_MOVE_SERVER="default2"
|
||||
export TEST_RECIPE="abra-test-recipe"
|
||||
|
||||
_ensure_swarm
|
||||
|
@ -10,6 +10,15 @@ _add_server() {
|
||||
assert_exists "$ABRA_DIR/servers/$TEST_SERVER"
|
||||
}
|
||||
|
||||
_add_move_server() {
|
||||
run docker context create default2 --docker "host=unix:///var/run/docker.sock"
|
||||
assert_success
|
||||
|
||||
run mkdir -p "$ABRA_DIR/servers/default2"
|
||||
assert_success
|
||||
assert_exists "$ABRA_DIR/servers/default2"
|
||||
}
|
||||
|
||||
_rm_server() {
|
||||
if [[ "$TEST_SERVER" == "default" ]]; then
|
||||
run rm -rf "$ABRA_DIR/servers/default"
|
||||
@ -20,6 +29,15 @@ _rm_server() {
|
||||
assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER"
|
||||
}
|
||||
|
||||
_rm_move_server() {
|
||||
run docker context rm default2
|
||||
assert_success
|
||||
|
||||
run rm -rf "$ABRA_DIR/servers/default2"
|
||||
assert_success
|
||||
assert_not_exists "$ABRA_DIR/servers/default2"
|
||||
}
|
||||
|
||||
_rm_default_server(){
|
||||
run rm -rf "$ABRA_DIR/servers/default"
|
||||
assert_success
|
||||
|
Reference in New Issue
Block a user