# Test that we are able to create a basic mixedversion test, and that
# the pretty printing functionality works as expected.

in-mixed-version name=(mixed-version 1)
----
ok

in-mixed-version name=(mixed-version 2)
----
ok

workload name=bank
----
ok

workload name=rand
----
ok

background-command name=(csv server)
----
ok

plan
----
Seed:               12345
Upgrades:           v24.1.1 → v24.2.2 → <current>
Deployment mode:    system-only
Plan:
├── install fixtures for version "v24.1.1" (1)
├── start cluster at version "v24.1.1" (2)
├── wait for all nodes (:1-4) to acknowledge cluster version '24.1' on system tenant (3)
├── run startup hooks concurrently
│   ├── run "initialize bank workload", after 3m0s delay (4)
│   └── run "initialize rand workload", after 0s delay (5)
├── start background hooks concurrently
│   ├── run "bank workload", after 500ms delay (6)
│   ├── run "rand workload", after 3m0s delay (7)
│   └── run "csv server", after 3m0s delay (8)
├── upgrade cluster from "v24.1.1" to "v24.2.2"
│   ├── prevent auto-upgrades on system tenant by setting `preserve_downgrade_option` (9)
│   ├── upgrade nodes :1-4 from "v24.1.1" to "v24.2.2"
│   │   ├── restart node 4 with binary version v24.2.2 (10)
│   │   ├── restart node 1 with binary version v24.2.2 (11)
│   │   ├── run mixed-version hooks concurrently
│   │   │   ├── run "mixed-version 1", after 500ms delay (12)
│   │   │   └── run "mixed-version 2", after 5s delay (13)
│   │   ├── restart node 2 with binary version v24.2.2 (14)
│   │   └── restart node 3 with binary version v24.2.2 (15)
│   ├── allow upgrade to happen on system tenant by resetting `preserve_downgrade_option` (16)
│   ├── run mixed-version hooks concurrently
│   │   ├── run "mixed-version 1", after 100ms delay (17)
│   │   └── run "mixed-version 2", after 500ms delay (18)
│   └── wait for all nodes (:1-4) to acknowledge cluster version '24.2' on system tenant (19)
└── upgrade cluster from "v24.2.2" to "<current>"
   ├── prevent auto-upgrades on system tenant by setting `preserve_downgrade_option` (20)
   ├── upgrade nodes :1-4 from "v24.2.2" to "<current>"
   │   ├── restart node 3 with binary version <current> (21)
   │   ├── run "mixed-version 1" (22)
   │   ├── restart node 2 with binary version <current> (23)
   │   ├── restart node 4 with binary version <current> (24)
   │   ├── run "mixed-version 2" (25)
   │   └── restart node 1 with binary version <current> (26)
   ├── downgrade nodes :1-4 from "<current>" to "v24.2.2"
   │   ├── restart node 4 with binary version v24.2.2 (27)
   │   ├── run "mixed-version 1" (28)
   │   ├── restart node 3 with binary version v24.2.2 (29)
   │   ├── restart node 1 with binary version v24.2.2 (30)
   │   └── restart node 2 with binary version v24.2.2 (31)
   ├── upgrade nodes :1-4 from "v24.2.2" to "<current>"
   │   ├── restart node 3 with binary version <current> (32)
   │   ├── run "mixed-version 1" (33)
   │   ├── restart node 2 with binary version <current> (34)
   │   ├── restart node 1 with binary version <current> (35)
   │   ├── run "mixed-version 2" (36)
   │   └── restart node 4 with binary version <current> (37)
   ├── allow upgrade to happen on system tenant by resetting `preserve_downgrade_option` (38)
   └── wait for all nodes (:1-4) to acknowledge cluster version <current> on system tenant (39)
