Ala Hino has posted comments on this change.
Change subject: core: Expose API for qemuimg commit ......................................................................
Patch Set 9:
(6 comments)
https://gerrit.ovirt.org/#/c/64222/9/tests/qemuimg_test.py File tests/qemuimg_test.py:
Line 380: (2, qemuimg.FORMAT.QCOW2, "0.10", True), Line 381: (4, qemuimg.FORMAT.RAW, "1.1", True), Line 382: (4, qemuimg.FORMAT.RAW, "0.10", True), Line 383: (4, qemuimg.FORMAT.QCOW2, "1.1", True), Line 384: (4, qemuimg.FORMAT.QCOW2, "0.10", True)
In all these options, we merge entire chain. It would be nice to test merge
Done Line 385: ]) Line 386: def test_commit(self, chain_len, base_format, qcow2_compat, Line 387: use_base=True): Line 388: size = 1048576
Line 391: parent = None Line 392: for i in range(chain_len): Line 393: vol = os.path.join(tmpdir, "vol%d.img" % i) Line 394: format = base_format if i == 0 else qemuimg.FORMAT.QCOW2 Line 395: make_image(vol, size, format, i, qcow2_compat, parent)
We can take the size of each volume here:
Done Line 396: chain.append(vol) Line 397: parent = vol Line 398: Line 399: op = qemuimg.commit(chain[-1], topFormat=qemuimg.FORMAT.QCOW2,
Line 399: op = qemuimg.commit(chain[-1], topFormat=qemuimg.FORMAT.QCOW2, Line 400: base=chain[0] if use_base else None) Line 401: op.wait_for_completion() Line 402: Line 403: for i, vol in enumerate(chain):
If we stored tuples, we get back:
Done Line 404: offset = "{}k".format(i) Line 405: pattern = 0xf0 + (i) Line 406: qemu_pattern_verify(chain[0], base_format, offset=offset, Line 407: len='1k', pattern=pattern)
Line 401: op.wait_for_completion() Line 402: Line 403: for i, vol in enumerate(chain): Line 404: offset = "{}k".format(i) Line 405: pattern = 0xf0 + (i)
Why (i)? This is same as i.
Done Line 406: qemu_pattern_verify(chain[0], base_format, offset=offset, Line 407: len='1k', pattern=pattern) Line 408: qemu_pattern_verify(vol, qemuimg.FORMAT.QCOW2, offset=offset, Line 409: len='1k', pattern=pattern)
Line 403: for i, vol in enumerate(chain): Line 404: offset = "{}k".format(i) Line 405: pattern = 0xf0 + (i) Line 406: qemu_pattern_verify(chain[0], base_format, offset=offset, Line 407: len='1k', pattern=pattern)
We need to explain this:
Done Line 408: qemu_pattern_verify(vol, qemuimg.FORMAT.QCOW2, offset=offset, Line 409: len='1k', pattern=pattern) Line 410: Line 411: def test_commit_progress(self):
Line 405: pattern = 0xf0 + (i) Line 406: qemu_pattern_verify(chain[0], base_format, offset=offset, Line 407: len='1k', pattern=pattern) Line 408: qemu_pattern_verify(vol, qemuimg.FORMAT.QCOW2, offset=offset, Line 409: len='1k', pattern=pattern)
This check will always succeed, even if you forget to add the -d flag (try
Done Line 410: Line 411: def test_commit_progress(self): Line 412: with namedTemporaryDir() as tmpdir: Line 413: size = 1048576