Skip to content

Commit ca24e57

Browse files
authored
Merge pull request #1090 from Dstack-TEE/fix/gateway-test-suite-keys
test(gateway): register with public keys the gateway can accept
2 parents 981a4e7 + a106a27 commit ca24e57

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

dstack/gateway/test-run/test_suite.sh

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,11 @@ get_node_uuid() {
412412
admin_get_status "$admin_port" | python3 -c "import sys,json; print(json.dumps(json.load(sys.stdin)['uuid']))" 2>/dev/null || true
413413
}
414414

415+
# A deterministic, *valid* WireGuard public key: 32 bytes, so 44 base64
416+
# characters. Registration rejects anything else (see WG_PUBLIC_KEY_B64_LEN in
417+
# gateway/src/kv/import.rs), so a hand-written placeholder is not a shortcut —
418+
# it is a test that can only fail. Use a distinct seed per registration; two
419+
# instances sharing a public key are refused as a conflict.
415420
test_public_key() {
416421
local seed=$1
417422
python3 -c "import base64; print(base64.b64encode(int($seed).to_bytes(32, 'big')).decode())"
@@ -1035,7 +1040,7 @@ test_prpc_register() {
10351040
log_info "Debug service is available"
10361041

10371042
# Register via debug port
1038-
local register_response=$(debug_register_cvm $debug_port "prpctest12345678901234567890123456789012=" "deadbeef" "cafebabe")
1043+
local register_response=$(debug_register_cvm $debug_port "$(test_public_key 501)" "deadbeef" "cafebabe")
10391044
log_info "Register response: $register_response"
10401045

10411046
# Verify registration succeeded
@@ -1113,7 +1118,7 @@ test_client_registration_persistence() {
11131118

11141119
# Register a client via debug port
11151120
log_info "Registering client..."
1116-
local register_response=$(debug_register_cvm $debug_port "persisttest1234567890123456789012345678901=" "persist_app" "persist_inst")
1121+
local register_response=$(debug_register_cvm $debug_port "$(test_public_key 502)" "persist_app" "persist_inst")
11171122
log_info "Register response: $register_response"
11181123

11191124
# Verify registration succeeded
@@ -1169,7 +1174,7 @@ test_stress_writes() {
11691174

11701175
log_info "Registering $num_clients clients via debug port..."
11711176
for i in $(seq 1 $num_clients); do
1172-
local key=$(printf "stresstest%02d12345678901234567890123456=" "$i")
1177+
local key=$(test_public_key $((600 + i)))
11731178
local app_id=$(printf "stressapp%02d" "$i")
11741179
local inst_id=$(printf "stressinst%02d" "$i")
11751180
local response=$(debug_register_cvm $debug_port "$key" "$app_id" "$inst_id")
@@ -1235,7 +1240,7 @@ test_network_partition() {
12351240
log_info "Registering clients on node 1 during partition..."
12361241
local success_count=0
12371242
for i in $(seq 1 3); do
1238-
local key=$(printf "partition%02d123456789012345678901234567=" "$i")
1243+
local key=$(test_public_key $((700 + i)))
12391244
local response=$(debug_register_cvm $debug_port1 "$key" "partition_app$i" "partition_inst$i")
12401245
if verify_register_response "$response" >/dev/null 2>&1; then
12411246
((success_count++))
@@ -1343,7 +1348,7 @@ test_three_node_cluster() {
13431348

13441349
# Register client on node 1
13451350
log_info "Registering client on node 1..."
1346-
local response=$(debug_register_cvm $debug_port1 "threenode12345678901234567890123456789=" "threenode_app" "threenode_inst")
1351+
local response=$(debug_register_cvm $debug_port1 "$(test_public_key 503)" "threenode_app" "threenode_inst")
13471352
local client_ip=$(verify_register_response "$response")
13481353
if [[ -z "$client_ip" ]]; then
13491354
log_error "Registration failed"
@@ -1425,7 +1430,7 @@ test_wal_integrity() {
14251430

14261431
# Register some clients via debug port
14271432
for i in $(seq 1 5); do
1428-
local key=$(printf "waltest%02d1234567890123456789012345678901=" "$i")
1433+
local key=$(test_public_key $((800 + i)))
14291434
local response=$(debug_register_cvm $debug_port "$key" "wal_app$i" "wal_inst$i")
14301435
if verify_register_response "$response" >/dev/null 2>&1; then
14311436
((success_count++))
@@ -1512,7 +1517,7 @@ test_three_node_bootnode() {
15121517

15131518
# Register client on node 2 (not the bootnode)
15141519
log_info "Registering client on node 2..."
1515-
local response=$(debug_register_cvm $debug_port2 "bootnode12345678901234567890123456789=" "bootnode_app" "bootnode_inst")
1520+
local response=$(debug_register_cvm $debug_port2 "$(test_public_key 504)" "bootnode_app" "bootnode_inst")
15161521
local client_ip=$(verify_register_response "$response")
15171522
if [[ -z "$client_ip" ]]; then
15181523
log_error "Registration failed"
@@ -1708,7 +1713,7 @@ test_periodic_persistence() {
17081713
log_info "Registering clients to create data..."
17091714
local success_count=0
17101715
for i in $(seq 1 3); do
1711-
local key=$(printf "persist%02d123456789012345678901234567890=" "$i")
1716+
local key=$(test_public_key $((900 + i)))
17121717
local response=$(debug_register_cvm $debug_port "$key" "persist_app$i" "persist_inst$i")
17131718
if verify_register_response "$response" >/dev/null 2>&1; then
17141719
((success_count++))
@@ -1995,7 +2000,7 @@ test_node_status_register_exclude() {
19952000

19962001
# Register a client on node 1
19972002
log_info "Registering client on node 1 (node 2 is down)..."
1998-
local response=$(debug_register_cvm $debug_port1 "downtest12345678901234567890123456789012=" "downtest_app" "downtest_inst")
2003+
local response=$(debug_register_cvm $debug_port1 "$(test_public_key 505)" "downtest_app" "downtest_inst")
19992004
log_info "Register response: $response"
20002005

20012006
# Verify registration succeeded
@@ -2035,7 +2040,7 @@ except Exception:
20352040

20362041
# Register another client
20372042
log_info "Registering client on node 1 (node 2 is now up)..."
2038-
response=$(debug_register_cvm $debug_port1 "uptest123456789012345678901234567890123=" "uptest_app" "uptest_inst2")
2043+
response=$(debug_register_cvm $debug_port1 "$(test_public_key 506)" "uptest_app" "uptest_inst2")
20392044

20402045
# Check gateways list - should now include node 2
20412046
has_node2=$(echo "$response" | python3 -c "
@@ -2086,7 +2091,7 @@ test_node_status_register_reject() {
20862091

20872092
# Register a client when node is up (should succeed)
20882093
log_info "Registering client when node 1 is up..."
2089-
local response=$(debug_register_cvm $debug_port "upnode123456789012345678901234567890123=" "upnode_app" "upnode_inst")
2094+
local response=$(debug_register_cvm $debug_port "$(test_public_key 507)" "upnode_app" "upnode_inst")
20902095
local client_ip=$(verify_register_response "$response")
20912096
if [[ -z "$client_ip" ]]; then
20922097
log_error "Registration failed when node was up"
@@ -2101,7 +2106,7 @@ test_node_status_register_reject() {
21012106

21022107
# Try to register a client when node is down (should fail)
21032108
log_info "Attempting to register client when node 1 is down..."
2104-
response=$(debug_register_cvm $debug_port "downnode12345678901234567890123456789012=" "downnode_app" "downnode_inst")
2109+
response=$(debug_register_cvm $debug_port "$(test_public_key 508)" "downnode_app" "downnode_inst")
21052110
log_info "Register response: $response"
21062111

21072112
# Check if response contains error about node being down
@@ -2123,7 +2128,7 @@ test_node_status_register_reject() {
21232128

21242129
# Register a client again (should succeed)
21252130
log_info "Registering client when node 1 is back up..."
2126-
response=$(debug_register_cvm $debug_port "backup123456789012345678901234567890123=" "backup_app" "backup_inst")
2131+
response=$(debug_register_cvm $debug_port "$(test_public_key 509)" "backup_app" "backup_inst")
21272132
client_ip=$(verify_register_response "$response")
21282133
if [[ -z "$client_ip" ]]; then
21292134
log_error "Registration failed when node was back up"

0 commit comments

Comments
 (0)