test: app move (basics)
This commit is contained in:
@ -6,6 +6,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
contextPkg "coopcloud.tech/abra/pkg/context"
|
contextPkg "coopcloud.tech/abra/pkg/context"
|
||||||
@ -38,18 +39,24 @@ func WithTimeout(timeout int) Opt {
|
|||||||
func New(serverName string, opts ...Opt) (*client.Client, error) {
|
func New(serverName string, opts ...Opt) (*client.Client, error) {
|
||||||
var clientOpts []client.Opt
|
var clientOpts []client.Opt
|
||||||
|
|
||||||
if serverName != "default" {
|
ctx, err := GetContext(serverName)
|
||||||
context, err := GetContext(serverName)
|
if err != nil {
|
||||||
if err != nil {
|
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
|
||||||
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
|
}
|
||||||
}
|
|
||||||
|
|
||||||
ctxEndpoint, err := contextPkg.GetContextEndpoint(context)
|
ctxEndpoint, err := contextPkg.GetContextEndpoint(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var isUnix bool
|
||||||
|
if strings.Contains(ctxEndpoint, "unix://") {
|
||||||
|
isUnix = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if serverName != "default" && !isUnix {
|
||||||
conf := &Conf{}
|
conf := &Conf{}
|
||||||
|
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
opt(conf)
|
opt(conf)
|
||||||
}
|
}
|
||||||
@ -93,7 +100,7 @@ func New(serverName string, opts ...Opt) (*client.Client, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if info.Swarm.LocalNodeState == "inactive" {
|
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))
|
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_NAME="$(basename "${BATS_TEST_FILENAME//./_}")"
|
||||||
export TEST_APP_DOMAIN="$TEST_APP_NAME.$TEST_SERVER"
|
export TEST_APP_DOMAIN="$TEST_APP_NAME.$TEST_SERVER"
|
||||||
|
export TEST_MOVE_SERVER="default2"
|
||||||
export TEST_RECIPE="abra-test-recipe"
|
export TEST_RECIPE="abra-test-recipe"
|
||||||
|
|
||||||
_ensure_swarm
|
_ensure_swarm
|
||||||
|
@ -10,6 +10,15 @@ _add_server() {
|
|||||||
assert_exists "$ABRA_DIR/servers/$TEST_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() {
|
_rm_server() {
|
||||||
if [[ "$TEST_SERVER" == "default" ]]; then
|
if [[ "$TEST_SERVER" == "default" ]]; then
|
||||||
run rm -rf "$ABRA_DIR/servers/default"
|
run rm -rf "$ABRA_DIR/servers/default"
|
||||||
@ -20,6 +29,15 @@ _rm_server() {
|
|||||||
assert_not_exists "$ABRA_DIR/servers/$TEST_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(){
|
_rm_default_server(){
|
||||||
run rm -rf "$ABRA_DIR/servers/default"
|
run rm -rf "$ABRA_DIR/servers/default"
|
||||||
assert_success
|
assert_success
|
||||||
|
Reference in New Issue
Block a user