dede5bd1d4
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=166
93 lines
2.8 KiB
Diff
93 lines
2.8 KiB
Diff
From 9d1e598bf8c7aff612a58405ad864ba701f022c3 Mon Sep 17 00:00:00 2001
|
|
From: Alberto Planas <aplanas@gmail.com>
|
|
Date: Tue, 11 Jun 2019 17:21:05 +0200
|
|
Subject: [PATCH] xfs: do not fails if type is not present
|
|
|
|
The command `blkid -o export` not always provides a 'TYPE' output
|
|
for all the devices. One example is non-formatted partitions, like for
|
|
example the BIOS partition.
|
|
|
|
This patch do not force the presence of this field in the blkid
|
|
output.
|
|
|
|
(cherry picked from commit 88df6963470007aa4fe2adb09f000311f48226a8)
|
|
---
|
|
salt/modules/xfs.py | 2 +-
|
|
tests/unit/modules/test_xfs.py | 50 ++++++++++++++++++++++++++++++++++++++++++
|
|
2 files changed, 51 insertions(+), 1 deletion(-)
|
|
create mode 100644 tests/unit/modules/test_xfs.py
|
|
|
|
diff --git a/salt/modules/xfs.py b/salt/modules/xfs.py
|
|
index ce7bd187fe..0116d7600e 100644
|
|
--- a/salt/modules/xfs.py
|
|
+++ b/salt/modules/xfs.py
|
|
@@ -329,7 +329,7 @@ def _blkid_output(out):
|
|
for items in flt(dev_meta.strip().split("\n")):
|
|
key, val = items.split("=", 1)
|
|
dev[key.lower()] = val
|
|
- if dev.pop("type") == "xfs":
|
|
+ if dev.pop("type", None) == "xfs":
|
|
dev['label'] = dev.get('label')
|
|
data[dev.pop("devname")] = dev
|
|
|
|
diff --git a/tests/unit/modules/test_xfs.py b/tests/unit/modules/test_xfs.py
|
|
new file mode 100644
|
|
index 0000000000..4b423d69d1
|
|
--- /dev/null
|
|
+++ b/tests/unit/modules/test_xfs.py
|
|
@@ -0,0 +1,50 @@
|
|
+# -*- coding: utf-8 -*-
|
|
+
|
|
+# Import Python libs
|
|
+from __future__ import absolute_import, print_function, unicode_literals
|
|
+import textwrap
|
|
+
|
|
+# Import Salt Testing Libs
|
|
+from tests.support.mixins import LoaderModuleMockMixin
|
|
+from tests.support.unit import skipIf, TestCase
|
|
+from tests.support.mock import (
|
|
+ NO_MOCK,
|
|
+ NO_MOCK_REASON,
|
|
+ MagicMock,
|
|
+ patch)
|
|
+
|
|
+# Import Salt Libs
|
|
+import salt.modules.xfs as xfs
|
|
+
|
|
+
|
|
+@skipIf(NO_MOCK, NO_MOCK_REASON)
|
|
+@patch('salt.modules.xfs._get_mounts', MagicMock(return_value={}))
|
|
+class XFSTestCase(TestCase, LoaderModuleMockMixin):
|
|
+ '''
|
|
+ Test cases for salt.modules.xfs
|
|
+ '''
|
|
+ def setup_loader_modules(self):
|
|
+ return {xfs: {}}
|
|
+
|
|
+ def test__blkid_output(self):
|
|
+ '''
|
|
+ Test xfs._blkid_output when there is data
|
|
+ '''
|
|
+ blkid_export = textwrap.dedent('''
|
|
+ DEVNAME=/dev/sda1
|
|
+ UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
+ TYPE=xfs
|
|
+ PARTUUID=YYYYYYYY-YY
|
|
+
|
|
+ DEVNAME=/dev/sdb1
|
|
+ PARTUUID=ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ
|
|
+ ''')
|
|
+ # We expect to find only data from /dev/sda1, nothig from
|
|
+ # /dev/sdb1
|
|
+ self.assertEqual(xfs._blkid_output(blkid_export), {
|
|
+ '/dev/sda1': {
|
|
+ 'label': None,
|
|
+ 'partuuid': 'YYYYYYYY-YY',
|
|
+ 'uuid': 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
|
|
+ }
|
|
+ })
|
|
--
|
|
2.16.4
|
|
|
|
|