Ryan Barry has uploaded a new change for review. Change subject: Trigger udevadm in the installer to refresh disk info ......................................................................
Trigger udevadm in the installer to refresh disk info To (hopefully) avoid presenting installer pages with partially populated disk trees, tell udev to trigger a change to check DB completeness. Change-Id: I0446e0dfd093528d2a95bfd857c29e2a89f25b41 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1218941 Signed-off-by: Ryan Barry <[email protected]> --- M src/ovirt/node/installer/core/boot_device_page.py M src/ovirt/node/utils/storage.py 2 files changed, 16 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/27/40827/1 diff --git a/src/ovirt/node/installer/core/boot_device_page.py b/src/ovirt/node/installer/core/boot_device_page.py index 209e070..dd6dfa7 100644 --- a/src/ovirt/node/installer/core/boot_device_page.py +++ b/src/ovirt/node/installer/core/boot_device_page.py @@ -31,7 +31,7 @@ def __init__(self, app): super(Plugin, self).__init__(app) - self.storage_discovery = StorageDiscovery(app.args.dry) + self.storage_discovery = StorageDiscovery(app.args.dry, refresh=True) self.storage_discovery.run() def name(self): @@ -157,12 +157,14 @@ tbl_tpl = " {bus!s:15.15} {name!s:40.40} {size!s:9.9}" - def __init__(self, do_fake): + def __init__(self, do_fake, refresh=False): super(StorageDiscovery, self).__init__() self.do_fake = do_fake + self.refresh = refresh def run(self): - self.devices = utils.storage.Devices(fake=self.do_fake) + self.devices = utils.storage.Devices(fake=self.do_fake, + refresh=self.refresh) self._all_devices = self.devices.get_all() def all_devices(self): diff --git a/src/ovirt/node/utils/storage.py b/src/ovirt/node/utils/storage.py index 39e1d12..b9993a7 100644 --- a/src/ovirt/node/utils/storage.py +++ b/src/ovirt/node/utils/storage.py @@ -22,6 +22,7 @@ from ovirt.node import base from ovirt.node.utils.fs import File from ovirt.node.utils import system +from ovirt.node.utils import process import subprocess import os @@ -90,7 +91,7 @@ _fake_devices = None _cached_live_disk_name = None - def __init__(self, fake=False): + def __init__(self, fake=False, refresh=False): super(Devices, self).__init__() if fake: self._fake_devices = {} @@ -99,6 +100,15 @@ "desc", "serial", "model"] self._fake_devices[args[1]] = Device(*tuple(args)) else: + if refresh: + try: + process.check_call(["udevadm", "settle"]) + process.check_call(["udevadm", "trigger", + "--action=change", + "--subsystem-match=block"]) + except process.CalledProcessError: + self.logger.error("Couldn't refresh udev block devices") + import ovirtnode.storage self._storage = ovirtnode.storage.Storage() -- To view, visit https://gerrit.ovirt.org/40827 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0446e0dfd093528d2a95bfd857c29e2a89f25b41 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-node Gerrit-Branch: master Gerrit-Owner: Ryan Barry <[email protected]> _______________________________________________ node-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/node-patches
