apiVersion: api/v1
kind: Case
name: br_pitr_restart_tikv_followed_by_tikv_network_partition_chaos
framework:
    generic:
        command:
            - /pitrRestartTiKVAndNetworkChaosPartition
        workingDir: /
        image: hub-new.pingcap.net/tools/br-pitr-restart-tikv-n-network-chaos:latest
        imagePullPolicy: Always
        defaultTimeout: 7200
parameters:
    - type: RESOURCE
      name: dst_tidb
      default: dst-tidb
    - type: RESOURCE
      name: src_tidb
      default: src-tidb
    - type: RESOURCE
      name: br
      default: br
    - type: RESOURCE
      name: mc
      default: mc
    - type: RESOURCE
      name: workload
      default: workload
    - type: RESOURCE
      name: syncdiff
      default: syncdiff
    - type: STRING
      name: br_log_opts
      default: |
          {"storage":"s3://tmp/br-log-backup?access-key=minioadmin&secret-access-key=minioadmin&endpoint=http%3a%2f%2fminio.pingcap.net%3a9000&force-path-style=true","timeout":"10m", "task-name": "task1"}
    - type: STRING
      name: br_opts
      default: |
          {"storage":"s3://tmp/br-log-backup?access-key=minioadmin&secret-access-key=minioadmin&endpoint=http%3a%2f%2fminio.pingcap.net%3a9000&force-path-style=true","timeout":"30m"}
    - type: STRING
      name: br_log_restore_opts
      default: |
          {"storage":"s3://tmp/br-log-backup?access-key=minioadmin&secret-access-key=minioadmin&endpoint=http%3a%2f%2fminio.pingcap.net%3a9000&force-path-style=true","timeout":"30m"}
    - type: STRING
      name: global_variable
      default: '[{"name": "tidb_multi_statement_mode", "value": "on"}, {"name":"tidb_gc_life_time","value":"24h"}]'
    - type: STRING
      name: mc_rm_opts
      default: |
          {"path":"qa-minio/tmp/br-log-backup","timeout":"180m"}

summary: start log backup -> do full backup -> run paypay workload -> restart tikv -> run network chaos between tikv for 20 minutes -> wait checkpoint move forward (repeat) -> pitr restore and consitency check
steps: |
    1. Start log backup
    2. Do full backup
    3. Start workload, and keep it running in background
    4. Restart tikv
    5. Run network partition chaos between tikv for 20 minutes
    6. wait checkpoint move forward (repeated for several times)
    6. Do a PiTR restore, and check data consistency
expectedResult: |
    1. PiTR restore and log restore is successful, and data consistency check passed
category: FUNCTIONALITY
priority: P1
supportedVersions:
    - '>=6.1'
automation: AUTOMATED
tags:
    - br
    - acceptance
    - pitr
designer: zhangfubin@pingcap.com
