Change in vdsm[master]: monitoring: Port vdsm.storage.check to python 3
nsoffer at redhat.com
nsoffer at redhat.com
Wed Mar 30 14:20:03 UTC 2016
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 <nsoffer at redhat.com>
---
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 <nsoffer at redhat.com>
More information about the vdsm-patches
mailing list