Nir Soffer has uploaded a new change for review. Change subject: monitoring: Port vdsm.storage.check to python 3 ......................................................................
monitoring: Port vdsm.storage.check to python 3 Change-Id: I41df272678c63a48d51ab17cea0ed424ccda17c8 Signed-off-by: Nir Soffer <[email protected]> --- M lib/vdsm/storage/check.py M tests/Makefile.am M tests/storage_check_test.py 3 files changed, 27 insertions(+), 25 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/90/55490/1 diff --git a/lib/vdsm/storage/check.py b/lib/vdsm/storage/check.py index f7de037..109e883 100644 --- a/lib/vdsm/storage/check.py +++ b/lib/vdsm/storage/check.py @@ -34,13 +34,13 @@ import logging import re +import subprocess import threading - -import cpopen from vdsm import cmdutils from vdsm import concurrent from vdsm import constants +from vdsm.compat import CPopen from vdsm.storage import asyncevent from vdsm.storage import exception @@ -284,8 +284,8 @@ self._check_time = self._loop.time() _log.debug("START check %r cmd=%s delay=%.2f", self._path, cmd, self._check_time - self._next_check) - self._proc = cpopen.CPopen(cmd, stdin=None, stdout=None, - stderr=cpopen.PIPE) + self._proc = CPopen(cmd, stdin=None, stdout=None, + stderr=subprocess.PIPE) self._reader = self._loop.create_dispatcher( asyncevent.BufferedReader, self._proc.stderr, self._read_completed) @@ -339,9 +339,9 @@ class CheckResult(object): _PATTERN = re.compile( - r"\d+ bytes? \([\de\-.]+ [kMGT]*B\) copied, " - r"([\de\-.]+) s, " - r"(?:[\de\-.]+|Infinity) [kMGT]*B/s") + br"\d+ bytes? \([\de\-.]+ [kMGT]*B\) copied, " + br"([\de\-.]+) s, " + br"(?:[\de\-.]+|Infinity) [kMGT]*B/s") def __init__(self, path, rc, err, time, elapsed): self.path = path diff --git a/tests/Makefile.am b/tests/Makefile.am index e51eec3..f5d6cc1 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,6 +43,7 @@ responseTests.py \ scheduleTests.py \ storage_asyncevent_test.py \ + storage_check_test.py \ vmStatsTests.py \ $(NULL) diff --git a/tests/storage_check_test.py b/tests/storage_check_test.py index 44ba2c4..f9a106c 100644 --- a/tests/storage_check_test.py +++ b/tests/storage_check_test.py @@ -67,7 +67,7 @@ def test_path_ok(self): self.checks = 1 - with temporaryPath(data="blah") as path: + with temporaryPath(data=b"blah") as path: checker = check.DirectioChecker(self.loop, path, self.complete) checker.start() self.loop.run_forever() @@ -214,7 +214,7 @@ @permutations([[1], [50], [100], [200]]) def test_path_ok(self, checkers): self.checkers = checkers - with temporaryPath(data="blah") as path: + with temporaryPath(data=b"blah") as path: start = time.time() for i in range(checkers): checker = check.DirectioChecker(self.loop, path, self.complete) @@ -250,21 +250,21 @@ @permutations([ # err, seconds - ("1\n2\n1 byte (1 B) copied, 1 s, 1 B/s\n", + (b"1\n2\n1 byte (1 B) copied, 1 s, 1 B/s\n", 1.0), - ("1\n2\n1024 bytes (1 kB) copied, 1 s, 1 kB/s\n", + (b"1\n2\n1024 bytes (1 kB) copied, 1 s, 1 kB/s\n", 1.0), - ("1\n2\n1572864 bytes (1.5 MB) copied, 1.5 s, 1 MB/s\n", + (b"1\n2\n1572864 bytes (1.5 MB) copied, 1.5 s, 1 MB/s\n", 1.5), - ("1\n2\n1610612736 bytes (1.5 GB) copied, 1000.5 s, 1.53 MB/s\n", + (b"1\n2\n1610612736 bytes (1.5 GB) copied, 1000.5 s, 1.53 MB/s\n", 1000.5), - ("1\n2\n479 bytes (479 B) copied, 5.6832e-05 s, 8.4 MB/s\n", + (b"1\n2\n479 bytes (479 B) copied, 5.6832e-05 s, 8.4 MB/s\n", 5.6832e-05), - ("1\n2\n512 bytes (512e-3 MB) copied, 1 s, 512e-3 MB/s\n", + (b"1\n2\n512 bytes (512e-3 MB) copied, 1 s, 512e-3 MB/s\n", 1.0), - ("1\n2\n524288 bytes (512e3 B) copied, 1 s, 512e3 B/s\n", + (b"1\n2\n524288 bytes (512e3 B) copied, 1 s, 512e3 B/s\n", 1.0), - ("1\n2\n517 bytes (517 B) copied, 0 s, Infinity B/s\n", + (b"1\n2\n517 bytes (517 B) copied, 0 s, Infinity B/s\n", 0.0) ]) def test_success(self, err, seconds): @@ -281,14 +281,14 @@ self.assertIn(reason, str(ctx.exception)) @permutations([ - ("",), - ("1\n2\n\n",), - ("1\n2\nBAD, 1 s, 1 kB/s\n",), - ("1\n2\n1024 bytes (1 kB) copied, 1 s, 1 BAD\n",), - ("1\n2\n1024 bytes (1 kB) copied, BAD, 1 kB/s\n",), - ("1\n2\n1024 bytes (1 kB) copied, BAD s, 1 kB/s\n",), - ("1\n2\n1024 bytes (1 kB) copied, -1- s, 1 kB/s\n",), - ("1\n2\n1024 bytes (1 kB) copied, e3- s, 1 kB/s\n",), + (b"",), + (b"1\n2\n\n",), + (b"1\n2\nBAD, 1 s, 1 kB/s\n",), + (b"1\n2\n1024 bytes (1 kB) copied, 1 s, 1 BAD\n",), + (b"1\n2\n1024 bytes (1 kB) copied, BAD, 1 kB/s\n",), + (b"1\n2\n1024 bytes (1 kB) copied, BAD s, 1 kB/s\n",), + (b"1\n2\n1024 bytes (1 kB) copied, -1- s, 1 kB/s\n",), + (b"1\n2\n1024 bytes (1 kB) copied, e3- s, 1 kB/s\n",), ]) def test_unexpected_output(self, err): result = check.CheckResult("/path", 0, err, 0, 0) @@ -350,6 +350,7 @@ @contextmanager def fake_dd(delay): script = "#!/bin/sh\nsleep %.1f\n" % delay + script = script.encode('ascii') with temporaryPath(data=script) as fake_dd: os.chmod(fake_dd, 0o700) with MonkeyPatchScope([(constants, "EXT_DD", fake_dd)]): -- To view, visit https://gerrit.ovirt.org/55490 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I41df272678c63a48d51ab17cea0ed424ccda17c8 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Nir Soffer <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
