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