[master 3/4] Retry interruptible calls
dashea
installerbot-noreply at redhat.com
Tue Jun 23 14:54:02 UTC 2015
From: David Shea <dshea at redhat.com>
Redefine open to a wrapper that retries open, and wrap a call to
os.mknod.
---
blivet/arch.py | 1 +
blivet/blivet.py | 1 +
blivet/devicelibs/edd.py | 1 +
blivet/devices/disk.py | 1 +
blivet/devices/lib.py | 1 +
blivet/devices/md.py | 1 +
blivet/devices/storage.py | 1 +
blivet/devicetree.py | 1 +
blivet/fcoe.py | 1 +
blivet/flags.py | 2 ++
blivet/formats/fslib.py | 2 ++
blivet/mounts.py | 1 +
blivet/osinstall.py | 3 ++-
blivet/populator.py | 1 +
blivet/udev.py | 1 +
blivet/util.py | 5 +++++
blivet/zfcp.py | 1 +
17 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/blivet/arch.py b/blivet/arch.py
index ca40832..7759963 100644
--- a/blivet/arch.py
+++ b/blivet/arch.py
@@ -35,6 +35,7 @@
from .flags import flags
from .storage_log import log_exception_info
+from .util import open # pylint: disable=redefined-builtin
import logging
log = logging.getLogger("blivet")
diff --git a/blivet/blivet.py b/blivet/blivet.py
index 306a479..cc9607f 100644
--- a/blivet/blivet.py
+++ b/blivet/blivet.py
@@ -53,6 +53,7 @@
from . import zfcp
from . import devicefactory
from . import get_bootloader, getSysroot, shortProductName, __version__
+from .util import open # pylint: disable=redefined-builtin
from .i18n import _
diff --git a/blivet/devicelibs/edd.py b/blivet/devicelibs/edd.py
index 7c99bb1..71fb271 100644
--- a/blivet/devicelibs/edd.py
+++ b/blivet/devicelibs/edd.py
@@ -28,6 +28,7 @@
import struct
from .. import util
+from ..util import open # pylint: disable=redefined-builtin
log = logging.getLogger("blivet")
diff --git a/blivet/devices/disk.py b/blivet/devices/disk.py
index e2b9dee..7b3bfdd 100644
--- a/blivet/devices/disk.py
+++ b/blivet/devices/disk.py
@@ -30,6 +30,7 @@
from .. import udev
from ..size import Size
from ..tasks import availability
+from ..util import open # pylint: disable=redefined-builtin
from ..fcoe import fcoe
diff --git a/blivet/devices/lib.py b/blivet/devices/lib.py
index 14e9501..5faada5 100644
--- a/blivet/devices/lib.py
+++ b/blivet/devices/lib.py
@@ -23,6 +23,7 @@
from .. import errors
from .. import udev
from ..size import Size
+from ..util import open # pylint: disable=redefined-builtin
LINUX_SECTOR_SIZE = Size(512)
diff --git a/blivet/devices/md.py b/blivet/devices/md.py
index 513d2dd..3291e71 100644
--- a/blivet/devices/md.py
+++ b/blivet/devices/md.py
@@ -33,6 +33,7 @@
from .. import udev
from ..size import Size
from ..tasks import availability
+from ..util import open # pylint: disable=redefined-builtin
import logging
log = logging.getLogger("blivet")
diff --git a/blivet/devices/storage.py b/blivet/devices/storage.py
index e63c7f9..525db63 100644
--- a/blivet/devices/storage.py
+++ b/blivet/devices/storage.py
@@ -31,6 +31,7 @@
from .. import udev
from ..formats import getFormat
from ..size import Size
+from ..util import open # pylint: disable=redefined-builtin
import logging
log = logging.getLogger("blivet")
diff --git a/blivet/devicetree.py b/blivet/devicetree.py
index 3349569..6392b65 100644
--- a/blivet/devicetree.py
+++ b/blivet/devicetree.py
@@ -35,6 +35,7 @@
from .devicelibs import edd
from . import udev
from . import util
+from .util import open # pylint: disable=redefined-builtin
from .flags import flags
from .populator import Populator
from .storage_log import log_method_call, log_method_return
diff --git a/blivet/fcoe.py b/blivet/fcoe.py
index a7d7a4c..861e412 100644
--- a/blivet/fcoe.py
+++ b/blivet/fcoe.py
@@ -20,6 +20,7 @@
import os
from . import udev
from . import util
+from .util import open # pylint: disable=redefined-builtin
import logging
import time
from .i18n import _
diff --git a/blivet/flags.py b/blivet/flags.py
index 0ff1c96..7c0319c 100644
--- a/blivet/flags.py
+++ b/blivet/flags.py
@@ -22,6 +22,8 @@
import shlex
import selinux
+from .util import open # pylint: disable=redefined-builtin
+
class Flags(object):
def __init__(self):
#
diff --git a/blivet/formats/fslib.py b/blivet/formats/fslib.py
index 618c15b..a0e419d 100644
--- a/blivet/formats/fslib.py
+++ b/blivet/formats/fslib.py
@@ -21,6 +21,8 @@
# David Cantrell <dcantrell at redhat.com>
# Anne Mulhern <amulhern at redhat.com>
+from ..util import open # pylint: disable=redefined-builtin
+
kernel_filesystems = []
nodev_filesystems = []
diff --git a/blivet/mounts.py b/blivet/mounts.py
index a7763cf..8e32220 100644
--- a/blivet/mounts.py
+++ b/blivet/mounts.py
@@ -21,6 +21,7 @@
#
from collections import defaultdict
from . import util
+from .util import open # pylint: disable=redefined-builtin
from .devicelibs import btrfs
import logging
diff --git a/blivet/osinstall.py b/blivet/osinstall.py
index 1c63302..7608bf6 100644
--- a/blivet/osinstall.py
+++ b/blivet/osinstall.py
@@ -28,6 +28,7 @@
from . import util
from . import getSysroot, getTargetPhysicalRoot, errorHandler, ERROR_RAISE
+from .util import open # pylint: disable=redefined-builtin
from .storage_log import log_exception_info
from .devices import FileDevice, NFSDevice, NoDevice, OpticalDevice, NetworkStorageDevice, DirectoryDevice
@@ -644,7 +645,7 @@ def mkDevRoot(self):
dev = "%s/%s" % (getSysroot(), root.path)
if not os.path.exists("%s/dev/root" %(getSysroot(),)) and os.path.exists(dev):
rdev = os.stat(dev).st_rdev
- os.mknod("%s/dev/root" % (getSysroot(),), stat.S_IFBLK | 0o600, rdev)
+ util.eintr_retry_call(os.mknod, "%s/dev/root" % (getSysroot(),), stat.S_IFBLK | 0o600, rdev)
@property
def swapDevices(self):
diff --git a/blivet/populator.py b/blivet/populator.py
index d86fa39..3ff6f8e 100644
--- a/blivet/populator.py
+++ b/blivet/populator.py
@@ -47,6 +47,7 @@
from .devicelibs import raid
from . import udev
from . import util
+from .util import open # pylint: disable=redefined-builtin
from .flags import flags
from .storage_log import log_exception_info, log_method_call
from .i18n import _
diff --git a/blivet/udev.py b/blivet/udev.py
index 99a7bc3..1c36cbc 100644
--- a/blivet/udev.py
+++ b/blivet/udev.py
@@ -25,6 +25,7 @@
import re
from . import util
+from .util import open # pylint: disable=redefined-builtin
from .size import Size
from .flags import flags
diff --git a/blivet/util.py b/blivet/util.py
index 30db569..069a266 100644
--- a/blivet/util.py
+++ b/blivet/util.py
@@ -651,3 +651,8 @@ def eintr_ignore(func, *args, **kwargs):
if e.errno == errno.EINTR:
pass
raise
+
+_open = open
+def open(*args, **kwargs): # pylint: disable=redefined-builtin
+ """Open a file, and retry on EINTR."""
+ return eintr_retry_call(_open, *args, **kwargs)
diff --git a/blivet/zfcp.py b/blivet/zfcp.py
index 74620bd..b1a1317 100644
--- a/blivet/zfcp.py
+++ b/blivet/zfcp.py
@@ -22,6 +22,7 @@
import os
from . import udev
from . import util
+from .util import open # pylint: disable=redefined-builtin
from .i18n import _
from .util import stringize, unicodeize
from gi.repository import BlockDev as blockdev
--
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/bcddee289102e7be66e58c7ebb92ea4bb1517078
More information about the anaconda-patches
mailing list