ha_cluster: &ha_cluster
  cluster:
    replica_1:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7688", "--log-level=TRACE", "--coordinator-server-port=10011"]
      log_file: "replication-e2e-replica1.log"
      setup_queries: []
    replica_2:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7689", "--log-level=TRACE", "--coordinator-server-port=10012"]
      log_file: "replication-e2e-replica2.log"
      setup_queries: []
    main:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7687", "--log-level=TRACE", "--coordinator-server-port=10013"]
      log_file: "replication-e2e-main.log"
      setup_queries: []
    coordinator:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7690", "--log-level=TRACE", "--raft-server-id=1", "--raft-server-port=10111"]
      log_file: "replication-e2e-coordinator.log"
      setup_queries: [
        "REGISTER INSTANCE instance_1 ON '127.0.0.1:10011' WITH '127.0.0.1:10001';",
        "REGISTER INSTANCE instance_2 ON '127.0.0.1:10012' WITH '127.0.0.1:10002';",
        "REGISTER INSTANCE instance_3 ON '127.0.0.1:10013' WITH '127.0.0.1:10003';",
        "SET INSTANCE instance_3 TO MAIN;"
      ]

workloads:
  - name: "Coordinator"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/coordinator.py"]
    <<: *ha_cluster

  - name: "Single coordinator"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/single_coordinator.py"]

  - name: "Disabled manual setting of replication cluster"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/manual_setting_replicas.py"]

  - name: "Coordinator cluster registration"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/coord_cluster_registration.py"]

  - name: "Not replicate from old main"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/not_replicate_from_old_main.py"]

  - name: "Disable writing on main after restart"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/disable_writing_on_main_after_restart.py"]

  - name: "Distributed coordinators"
    binary: "tests/e2e/pytest_runner.sh"
    args: ["high_availability/distributed_coords.py"]
