refactor: move all port management code to standalone ports plugin
This change makes interacting with port mappings more clear - folks might previously set the port mapping to the proxy type or vice-versa. The existing proxy:ports* commands still exist but will show a deprecation warning for a single minor release.
This commit is contained in:
@@ -114,7 +114,7 @@ teardown() {
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku --quiet proxy:ports app-without-ssl | xargs"
|
||||
run /bin/bash -c "dokku --quiet ports:list app-without-ssl | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 80 5000"
|
||||
|
||||
@@ -137,7 +137,7 @@ teardown() {
|
||||
assert_success
|
||||
assert_output "$TEST_APP.dokku.me"
|
||||
|
||||
run /bin/bash -c "dokku proxy:report $TEST_APP --proxy-port-map"
|
||||
run /bin/bash -c "dokku ports:report $TEST_APP --ports-map"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http:80:5000"
|
||||
|
||||
@@ -154,7 +154,7 @@ teardown() {
|
||||
assert_success
|
||||
assert_output "true"
|
||||
|
||||
run /bin/bash -c "dokku proxy:report $TEST_APP --proxy-port-map"
|
||||
run /bin/bash -c "dokku ports:report $TEST_APP --ports-map"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http:80:5000"
|
||||
|
||||
@@ -18,14 +18,14 @@ teardown() {
|
||||
|
||||
@test "(nginx-vhosts) grpc endpoint" {
|
||||
deploy_app gogrpc
|
||||
dokku proxy:ports-add "$TEST_APP" "grpc:80:50051"
|
||||
dokku ports:add "$TEST_APP" "grpc:80:50051"
|
||||
run /bin/bash -c "docker run --rm ${TEST_APP}-docker-image /go/bin/greeter_client -address ${TEST_APP}.dokku.me:80 -name grpc"
|
||||
assert_output "Greeting: Hello grpc"
|
||||
}
|
||||
|
||||
@test "(nginx-vhosts) grpc endpoint on a port other than 80" {
|
||||
deploy_app gogrpc
|
||||
dokku proxy:ports-add "$TEST_APP" "grpc:8080:50051"
|
||||
dokku ports:add "$TEST_APP" "grpc:8080:50051"
|
||||
run /bin/bash -c "docker run --rm ${TEST_APP}-docker-image /go/bin/greeter_client -address ${TEST_APP}.dokku.me:8080 -name grpc8080"
|
||||
assert_output "Greeting: Hello grpc8080"
|
||||
}
|
||||
@@ -33,7 +33,7 @@ teardown() {
|
||||
@test "(nginx-vhosts) grpcs endpoint" {
|
||||
setup_test_tls
|
||||
deploy_app gogrpc
|
||||
dokku proxy:ports-add "$TEST_APP" "grpcs:443:50051"
|
||||
dokku ports:add "$TEST_APP" "grpcs:443:50051"
|
||||
run /bin/bash -c "docker run --rm ${TEST_APP}-docker-image /go/bin/greeter_client -address ${TEST_APP}.dokku.me:443 -name grpcs -tls"
|
||||
assert_output "Greeting: Hello grpcs"
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ teardown() {
|
||||
assert_output_contains "Ignoring detected https port mapping without an accompanying ssl certificate" 0
|
||||
|
||||
teardown_test_tls
|
||||
run /bin/bash -c "dokku proxy:report $TEST_APP --proxy-port-map"
|
||||
run /bin/bash -c "dokku ports:report $TEST_APP --ports-map"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http:80:5000 https:443:5000"
|
||||
@@ -135,7 +135,7 @@ teardown() {
|
||||
echo "status: $status"
|
||||
assert_output_contains "Ignoring detected https port mapping without an accompanying ssl certificate" 1
|
||||
|
||||
run /bin/bash -c "dokku proxy:report $TEST_APP --proxy-port-map"
|
||||
run /bin/bash -c "dokku ports:report $TEST_APP --ports-map"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http:80:5000 https:443:5000"
|
||||
|
||||
106
tests/unit/ports.bats
Normal file
106
tests/unit/ports.bats
Normal file
@@ -0,0 +1,106 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
global_setup
|
||||
[[ -f "$DOKKU_ROOT/VHOST" ]] && cp -fp "$DOKKU_ROOT/VHOST" "$DOKKU_ROOT/VHOST.bak"
|
||||
create_app
|
||||
}
|
||||
|
||||
teardown() {
|
||||
destroy_app 0 $TEST_APP
|
||||
[[ -f "$DOKKU_ROOT/VHOST.bak" ]] && mv "$DOKKU_ROOT/VHOST.bak" "$DOKKU_ROOT/VHOST" && chown dokku:dokku "$DOKKU_ROOT/VHOST"
|
||||
global_teardown
|
||||
}
|
||||
|
||||
@test "(ports) ports:help" {
|
||||
run /bin/bash -c "dokku ports"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output_contains "Manage ports for an app"
|
||||
help_output="$output"
|
||||
|
||||
run /bin/bash -c "dokku ports:help"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output_contains "Manage ports for an app"
|
||||
assert_output "$help_output"
|
||||
}
|
||||
|
||||
@test "(ports) ports subcommands (list/add/set/remove/clear)" {
|
||||
run /bin/bash -c "dokku ports:set $TEST_APP http:1234:5001"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet ports:list $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001"
|
||||
|
||||
run /bin/bash -c "dokku ports:add $TEST_APP http:8080:5002 https:8443:5003"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet ports:list $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001 http 8080 5002 https 8443 5003"
|
||||
|
||||
run /bin/bash -c "dokku ports:set $TEST_APP http:8080:5000 https:8443:5000 http:1234:5001"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet ports:list $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001 http 8080 5000 https 8443 5000"
|
||||
|
||||
run /bin/bash -c "dokku ports:remove $TEST_APP 8080"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet ports:list $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001 https 8443 5000"
|
||||
|
||||
run /bin/bash -c "dokku ports:remove $TEST_APP http:1234:5001"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet ports:list $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "https 8443 5000"
|
||||
|
||||
run /bin/bash -c "dokku ports:clear $TEST_APP"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet ports:list $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 80 5000"
|
||||
}
|
||||
|
||||
@test "(ports) ports:add (post-deploy add)" {
|
||||
deploy_app
|
||||
run /bin/bash -c "dokku ports:add $TEST_APP http:8080:5000 http:8081:5000"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
URLS="$(dokku --quiet urls "$TEST_APP")"
|
||||
for URL in $URLS; do
|
||||
assert_http_success $URL
|
||||
done
|
||||
assert_http_success "http://$TEST_APP.dokku.me:8080"
|
||||
assert_http_success "http://$TEST_APP.dokku.me:8081"
|
||||
}
|
||||
@@ -29,7 +29,7 @@ teardown() {
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku proxy:ports-set $TEST_APP http:80:8080"
|
||||
run /bin/bash -c "dokku ports:set $TEST_APP http:80:8080"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
@@ -113,80 +113,3 @@ teardown() {
|
||||
assert_not_external_port $(<$CID_FILE)
|
||||
done
|
||||
}
|
||||
|
||||
@test "(proxy) proxy:ports (list/add/set/remove/clear)" {
|
||||
run /bin/bash -c "dokku proxy:ports-set $TEST_APP http:1234:5001"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet proxy:ports $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001"
|
||||
|
||||
run /bin/bash -c "dokku proxy:ports-add $TEST_APP http:8080:5002 https:8443:5003"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet proxy:ports $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001 http 8080 5002 https 8443 5003"
|
||||
|
||||
run /bin/bash -c "dokku proxy:ports-set $TEST_APP http:8080:5000 https:8443:5000 http:1234:5001"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet proxy:ports $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001 http 8080 5000 https 8443 5000"
|
||||
|
||||
run /bin/bash -c "dokku proxy:ports-remove $TEST_APP 8080"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet proxy:ports $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 1234 5001 https 8443 5000"
|
||||
|
||||
run /bin/bash -c "dokku proxy:ports-remove $TEST_APP http:1234:5001"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet proxy:ports $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "https 8443 5000"
|
||||
|
||||
run /bin/bash -c "dokku proxy:ports-clear $TEST_APP"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku --quiet proxy:ports $TEST_APP | xargs"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http 80 5000"
|
||||
}
|
||||
|
||||
@test "(proxy) proxy:ports (post-deploy add)" {
|
||||
deploy_app
|
||||
run /bin/bash -c "dokku proxy:ports-add $TEST_APP http:8080:5000 http:8081:5000"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_success
|
||||
|
||||
URLS="$(dokku --quiet urls "$TEST_APP")"
|
||||
for URL in $URLS; do
|
||||
assert_http_success $URL
|
||||
done
|
||||
assert_http_success "http://$TEST_APP.dokku.me:8080"
|
||||
assert_http_success "http://$TEST_APP.dokku.me:8081"
|
||||
}
|
||||
|
||||
@@ -233,7 +233,7 @@ teardown() {
|
||||
assert_success
|
||||
assert_output "5000"
|
||||
|
||||
run /bin/bash -c "dokku proxy:report $TEST_APP --proxy-port-map"
|
||||
run /bin/bash -c "dokku ports:report $TEST_APP --ports-map"
|
||||
echo "output: $output"
|
||||
echo "status: $status"
|
||||
assert_output "http:80:5000"
|
||||
|
||||
Reference in New Issue
Block a user