[node-patches] Change in ovirt-node[master]: Log about non-zero exit codes from lvm displays, try partials

rbarry at redhat.com rbarry at redhat.com
Wed Oct 7 15:03:37 UTC 2015


Ryan Barry has uploaded a new change for review.

Change subject: Log about non-zero exit codes from lvm displays, try partials
......................................................................

Log about non-zero exit codes from lvm displays, try partials

For non-destructive operations (like listing volume groups), keep
track of non-zero exits and log them, but it's probably ok to
continue.

Try to use partial volume groups with missing devs (-P) to avoid
this in the first place

Change-Id: If8ff2930ca97731af512d0dfede441dc7aeea785
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1269338
Signed-off-by: Ryan Barry <rbarry at redhat.com>
---
M src/ovirt/node/utils/system.py
M src/ovirtnode/storage.py
2 files changed, 14 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/90/47090/1

diff --git a/src/ovirt/node/utils/system.py b/src/ovirt/node/utils/system.py
index 472d0bb..84ff003 100755
--- a/src/ovirt/node/utils/system.py
+++ b/src/ovirt/node/utils/system.py
@@ -1299,12 +1299,23 @@
 
     @classmethod
     def _query_vgs(self, option, pv=None):
-        cmd = ["lvm", "vgs", "--noheadings", "-o", option]
+        cmd = ["lvm", "vgs", "-P", "--noheadings", "-o", option]
 
         if pv:
             cmd.append(pv)
 
-        out = process.check_output(cmd).strip()
+        out = None
+        try:
+            out = process.check_output(cmd).strip()
+        except process.CalledProcessError as e:
+            # For just displaying vgs, we can probably ignore warnings
+            # about partial vgs
+            if e.returncode == 5 or "Couldn't find device with uuid" in \
+                    e.output:
+                self.logger.warning("Non-zero exit code when displaying vgs. "
+                                    "Please check the output of 'lvm vgs', "
+                                    "too verbose to log here")
+
         vgs = None
 
         # If not VGs are found, just simulate an empty list of VGs
diff --git a/src/ovirtnode/storage.py b/src/ovirtnode/storage.py
index 5d43100..5d8d971 100644
--- a/src/ovirtnode/storage.py
+++ b/src/ovirtnode/storage.py
@@ -195,7 +195,7 @@
 
     def _lvm_name_for_disk(self, disk):
         name = None
-        cmd = "lvm pvs --noheadings --nameprefixes --unquoted -o pv_name,vg_name '%s' 2> /dev/null" % disk
+        cmd = "lvm pvs --noheadings --nameprefixes --unquoted -P -o pv_name,vg_name '%s' 2> /dev/null" % disk
         lines = str(_functions.passthrough(cmd)).strip().split("\n")
         if len(lines) > 1:
             logger.warning("More than one PV for disk '%s' found: %s" % (disk,


-- 
To view, visit https://gerrit.ovirt.org/47090
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If8ff2930ca97731af512d0dfede441dc7aeea785
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-node
Gerrit-Branch: master
Gerrit-Owner: Ryan Barry <rbarry at redhat.com>



More information about the node-patches mailing list