This patch makes a few small changes that are required in order to
have the Cinder Backup service working on Windows.
- all physial disks must be open in byte mode. 'rb+' must be used
when writing.
- reading passed the disk size boundary will not return an empty
string, raising an IOError instead. For this reason, we're avoiding
doing it.
- we ensure that the chunk size is a multiple of the sector size.
- the chmod command is not available on Windows. Although changing
owners is possible, it is not needed. For this reason, the
'temporary_chown' helper will be a noop on Windows. It's easier to
do it here rather than do platform checks wherever this gets called.
- when connecting the volumes, we pass the 'expect_raw_disk' argument,
which provides a hint to the connector about what we expect. This
allows the SMBFS connector to return a mounted raw disk path instead
of a virtual image path.
- when the driver provides temporary snapshots to be used during
the backup process, the API is bypassed. For this reason, we need to
ensure that the snapshot state and progress gets updated accordingly.
Otherwise, this breaks the nova assisted snapshot workflow.
We're doing platform checks, ensuring that we don't break/change
the current workflow.
The Swift and Posix backup drivers are known to be working on Windows.
Implements: blueprint windows-smb-backup
Depends-On: #I20f791482fb0912772fa62d2949fa5becaec5675
Change-Id: I8769a135974240fdf7cebd4b6d74aaa439ba1f27