Skip to content

tests: Increase transfer integration tests coverage - #494

Merged
Dany9966 merged 2 commits into
cloudbase:masterfrom
claudiubelu:coveragability-increasability-transferability
Aug 12, 2026
Merged

tests: Increase transfer integration tests coverage#494
Dany9966 merged 2 commits into
cloudbase:masterfrom
claudiubelu:coveragability-increasability-transferability

Conversation

@claudiubelu

Copy link
Copy Markdown
Member

Adds verify_checksum source_environment flag through the test provider's replicate_disks call (False by default). test_incremental_replica_transfer will now also check the checksum.

Adds a backup_writer_backend destination_environment option through _create_minion, so a test can request the SSH backend for one transfer. Adds a transfer test using the mentioned SSH backup writer.

data_transfer.compression_proxy falls back to in-process gzip / zlib compression when compressor_address is unset (None by default). That means that the external compressor service scenario is not covered. Spins up a unix-socket HTTP service in-process, points compressor_address at it for the duration of one transfer, and asserts it was invoked.

A transfer with more than one instance is considered "clustered". The conductor runs a cross-instance sync barrier and assigns disk owners across instances.

In the added tests, each instance in this has its own disk + a disk shared between the (same disk id in both instances' export_info). The conductor will assign the first instance as the shared disk's owner, only its DEPLOY_TRANSFER_DISKS task creates a destination volume and replicates data into it, while the other instance's task records a placeholder volumes_info entry with replicate_disk_data False and no volume_dev.

Adds integration test for clustered sync-barrier abort on peer error. If one instance's task errors out while a peer instance's task of the same type is stuck waiting at the cross-instance sync barrier, the stuck peer must be aborted rather than left deadlocked forever.

Updates the test providers to support shared disks.

Adds verify_checksum source_environment flag through the test provider's
replicate_disks call (False by default). test_incremental_replica_transfer
will now also check the checksum.

Adds a "backup_writer_backend" destination-environment option through
_create_minion, so a test can request the SSH backend for one transfer.
Adds a transfer test using the mentioned SSH backup writer.

data_transfer.compression_proxy falls back to in-process gzip / zlib
compression when compressor_address is unset (None by default). That means
that the external compressor service scenario is not covered. Spins up a
unix-socket HTTP service in-process, points compressor_address at it for the
duration of one transfer, and asserts it was invoked.
A transfer with more than one instance is considered "clustered".
The conductor runs a cross-instance sync barrier and assigns disk
owners across instances.

In the added tests, each instance in this has its own disk + a disk
shared between the (same disk id in both instances' export_info).
The conductor will assign the first instance as the shared disk's owner,
only its DEPLOY_TRANSFER_DISKS task creates a destination volume and
replicates data into it, while the other instance's task records
a placeholder volumes_info entry with "replicate_disk_data" False
and no "volume_dev".

Adds integration test for clustered sync-barrier abort on peer error.
If one instance's task errors out while a peer instance's task of the
same type is stuck waiting at the cross-instance sync barrier, the
stuck peer must be aborted rather than left deadlocked forever.

Updates the test providers to support shared disks.
@claudiubelu
claudiubelu force-pushed the coveragability-increasability-transferability branch from d1630c8 to c9d6469 Compare August 11, 2026 12:34

@fabi200123 fabi200123 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Dany9966
Dany9966 merged commit d618717 into cloudbase:master Aug 12, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants