3535rbd --cluster ${CLUSTER1} --pool ${POOL} mirror pool info --format json | jq -e ' .peers[0].direction == "tx-only"'
3636
3737create_image_and_enable_mirror ${CLUSTER1} ${POOL} image1
38+ create_image_and_enable_mirror ${CLUSTER1} ${POOL} /${NS1} image1
3839
3940wait_for_image_replay_started ${CLUSTER2} ${POOL} image1
4041write_image ${CLUSTER1} ${POOL} image1 100
4142wait_for_replay_complete ${CLUSTER2} ${CLUSTER1} ${POOL} ${POOL} image1
4243wait_for_replaying_status_in_pool_dir ${CLUSTER2} ${POOL} image1
4344
45+ POOL_STATUS=$( get_pool_status_json ${CLUSTER1} ${POOL} )
46+ jq -e ' .summary.states == {"replaying": 1}' <<< ${POOL_STATUS}
47+ POOL_STATUS=$( get_pool_status_json ${CLUSTER2} ${POOL} )
48+ jq -e ' .summary.states == {"replaying": 1}' <<< ${POOL_STATUS}
49+
50+ wait_for_image_replay_started ${CLUSTER2} ${POOL} /${NS1} image1
51+ write_image ${CLUSTER1} ${POOL} /${NS1} image1 100
52+ wait_for_replay_complete ${CLUSTER2} ${CLUSTER1} ${POOL} /${NS1} ${POOL} /${NS1} image1
53+ wait_for_replaying_status_in_pool_dir ${CLUSTER2} ${POOL} /${NS1} image1
54+
55+ POOL_STATUS=$( get_pool_status_json ${CLUSTER1} ${POOL} /${NS1} )
56+ jq -e ' .summary.states == {"replaying": 1}' <<< ${POOL_STATUS}
57+ POOL_STATUS=$( get_pool_status_json ${CLUSTER2} ${POOL} /${NS1} )
58+ jq -e ' .summary.states == {"replaying": 1}' <<< ${POOL_STATUS}
59+
4460testlog " TEST: verify rx-tx direction"
4561# both rx-tx peers are added immediately by "rbd mirror pool peer bootstrap import"
4662rbd --cluster ${CLUSTER1} --pool ${PARENT_POOL} mirror pool info --format json | jq -e ' .peers[0].direction == "rx-tx"'
4763rbd --cluster ${CLUSTER2} --pool ${PARENT_POOL} mirror pool info --format json | jq -e ' .peers[0].direction == "rx-tx"'
4864
49- create_image ${CLUSTER1} ${PARENT_POOL} image1
50- create_image ${CLUSTER2} ${PARENT_POOL} image2
51-
52- enable_mirror ${CLUSTER1} ${PARENT_POOL} image1
53- enable_mirror ${CLUSTER2} ${PARENT_POOL} image2
65+ create_image_and_enable_mirror ${CLUSTER1} ${PARENT_POOL} image1
66+ create_image_and_enable_mirror ${CLUSTER2} ${PARENT_POOL} image2
67+ create_image_and_enable_mirror ${CLUSTER1} ${PARENT_POOL} /${NS1} image1
68+ create_image_and_enable_mirror ${CLUSTER2} ${PARENT_POOL} /${NS1} image2
5469
5570wait_for_image_replay_started ${CLUSTER2} ${PARENT_POOL} image1
5671write_image ${CLUSTER1} ${PARENT_POOL} image1 100
@@ -62,6 +77,26 @@ write_image ${CLUSTER2} ${PARENT_POOL} image2 100
6277wait_for_replay_complete ${CLUSTER1} ${CLUSTER2} ${PARENT_POOL} ${PARENT_POOL} image2
6378wait_for_replaying_status_in_pool_dir ${CLUSTER1} ${PARENT_POOL} image2
6479
80+ POOL_STATUS=$( get_pool_status_json ${CLUSTER1} ${PARENT_POOL} )
81+ jq -e ' .summary.states == {"replaying": 2}' <<< ${POOL_STATUS}
82+ POOL_STATUS=$( get_pool_status_json ${CLUSTER2} ${PARENT_POOL} )
83+ jq -e ' .summary.states == {"replaying": 2}' <<< ${POOL_STATUS}
84+
85+ wait_for_image_replay_started ${CLUSTER2} ${PARENT_POOL} /${NS1} image1
86+ write_image ${CLUSTER1} ${PARENT_POOL} /${NS1} image1 100
87+ wait_for_replay_complete ${CLUSTER2} ${CLUSTER1} ${PARENT_POOL} /${NS1} ${PARENT_POOL} /${NS1} image1
88+ wait_for_replaying_status_in_pool_dir ${CLUSTER2} ${PARENT_POOL} /${NS1} image1
89+
90+ wait_for_image_replay_started ${CLUSTER1} ${PARENT_POOL} /${NS1} image2
91+ write_image ${CLUSTER2} ${PARENT_POOL} /${NS1} image2 100
92+ wait_for_replay_complete ${CLUSTER1} ${CLUSTER2} ${PARENT_POOL} /${NS1} ${PARENT_POOL} /${NS1} image2
93+ wait_for_replaying_status_in_pool_dir ${CLUSTER1} ${PARENT_POOL} /${NS1} image2
94+
95+ POOL_STATUS=$( get_pool_status_json ${CLUSTER1} ${PARENT_POOL} /${NS1} )
96+ jq -e ' .summary.states == {"replaying": 2}' <<< ${POOL_STATUS}
97+ POOL_STATUS=$( get_pool_status_json ${CLUSTER2} ${PARENT_POOL} /${NS1} )
98+ jq -e ' .summary.states == {"replaying": 2}' <<< ${POOL_STATUS}
99+
65100testlog " TEST: pool replayer and callout cleanup when peer is updated"
66101test_health_state ${CLUSTER1} ${PARENT_POOL} ' OK'
67102test_health_state ${CLUSTER2} ${PARENT_POOL} ' OK'
0 commit comments