ha_cluster: &ha_cluster
  cluster:
    replica_1:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7688", "--log-level=TRACE", "--management-port=10011"]
      log_file: "replication-e2e-replica1.log"
      setup_queries: []
    replica_2:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7689", "--log-level=TRACE", "--management-port=10012"]
      log_file: "replication-e2e-replica2.log"
      setup_queries: []
    main:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7687", "--log-level=TRACE", "--management-port=10013"]
      log_file: "replication-e2e-main.log"
      setup_queries: []
    coordinator:
      args: ["--experimental-enabled=high-availability", "--bolt-port", "7690", "--log-level=TRACE", "--coordinator-id=1", "--coordinator-port=10111"]
      log_file: "replication-e2e-coordinator.log"
      setup_queries: [
        "REGISTER INSTANCE instance_1 WITH CONFIG {'bolt_server': '127.0.0.1:7688', 'management_server': '127.0.0.1:10011', 'replication_server': '127.0.0.1:10001'};",
        "REGISTER INSTANCE instance_2 WITH CONFIG {'bolt_server': '127.0.0.1:7689', 'management_server': '127.0.0.1:10012', 'replication_server': '127.0.0.1:10002'};",
        "REGISTER INSTANCE instance_3 WITH CONFIG {'bolt_server': '127.0.0.1:7687', 'management_server': '127.0.0.1:10013', 'replication_server': '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"]