github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/cli/interactive_tests/test_demo_node_cmds.tcl (about) 1 #! /usr/bin/env expect -f 2 3 source [file join [file dirname $argv0] common.tcl] 4 5 start_test "Check \\demo commands work as expected" 6 # Start a demo with 5 nodes. 7 spawn $argv demo movr --nodes=5 8 9 # Ensure db is movr. 10 eexpect "movr>" 11 12 # Wrong number of args 13 send "\\demo node\r" 14 eexpect "\\demo expects 2 parameters" 15 16 # Cannot shutdown node 1 17 send "\\demo shutdown 1\r" 18 eexpect "cannot shutdown node 1" 19 20 # Cannot operate on a node which does not exist. 21 send "\\demo shutdown 8\r" 22 eexpect "node 8 does not exist" 23 send "\\demo restart 8\r" 24 eexpect "node 8 does not exist" 25 send "\\demo decommission 8\r" 26 eexpect "node 8 does not exist" 27 send "\\demo recommission 8\r" 28 eexpect "node 8 does not exist" 29 30 # Cannot restart a node that is not shut down. 31 send "\\demo restart 2\r" 32 eexpect "node 2 is already running" 33 34 # Shut down a separate node. 35 send "\\demo shutdown 3\r" 36 eexpect "node 3 has been shutdown" 37 38 send "select node_id, draining, decommissioning from crdb_internal.gossip_liveness ORDER BY node_id;\r" 39 eexpect "1 | false | false" 40 eexpect "2 | false | false" 41 eexpect "3 | true | false" 42 eexpect "4 | false | false" 43 eexpect "5 | false | false" 44 45 # Cannot shut it down again. 46 send "\\demo shutdown 3\r" 47 eexpect "node 3 is already shut down" 48 49 # Expect queries to still work with just one node down. 50 send "SELECT count(*) FROM movr.rides;\r" 51 eexpect "500" 52 eexpect "movr>" 53 54 # Now restart the node. 55 send "\\demo restart 3\r" 56 eexpect "node 3 has been restarted" 57 58 send "select node_id, draining, decommissioning from crdb_internal.gossip_liveness ORDER BY node_id;\r" 59 eexpect "1 | false | false" 60 eexpect "2 | false | false" 61 eexpect "3 | false | false" 62 eexpect "4 | false | false" 63 eexpect "5 | false | false" 64 65 # Try commissioning commands 66 send "\\demo decommission 4\r" 67 eexpect "node 4 has been decommissioned" 68 69 send "select node_id, draining, decommissioning from crdb_internal.gossip_liveness ORDER BY node_id;\r" 70 eexpect "1 | false | false" 71 eexpect "2 | false | false" 72 eexpect "3 | false | false" 73 eexpect "4 | false | true" 74 eexpect "5 | false | false" 75 76 send "\\demo recommission 4\r" 77 eexpect "node 4 has been recommissioned" 78 79 send "select node_id, draining, decommissioning from crdb_internal.gossip_liveness ORDER BY node_id;\r" 80 eexpect "1 | false | false" 81 eexpect "2 | false | false" 82 eexpect "3 | false | false" 83 eexpect "4 | false | false" 84 eexpect "5 | false | false" 85 86 interrupt 87 eexpect eof 88 end_test