salt/xfs-do-not-fails-if-type-is-not-present.patch

219 lines
7.2 KiB
Diff

From fb8c573cffff1c3909cd6c84c5474193ac5588a6 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 | 47 +++++++++++++++-------------------
tests/unit/modules/test_xfs.py | 8 ------
2 files changed, 20 insertions(+), 35 deletions(-)
diff --git a/salt/modules/xfs.py b/salt/modules/xfs.py
index 6782872cf7..7563bd2d65 100644
--- a/salt/modules/xfs.py
+++ b/salt/modules/xfs.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
#
# The MIT License (MIT)
# Copyright (C) 2014 SUSE LLC
@@ -25,8 +24,6 @@
Module for managing XFS file systems.
"""
-# Import Python libs
-from __future__ import absolute_import, print_function, unicode_literals
import logging
import os
@@ -34,14 +31,10 @@ import re
import time
import salt.utils.data
-
-# Import Salt libs
import salt.utils.files
import salt.utils.path
import salt.utils.platform
from salt.exceptions import CommandExecutionError
-
-# Import 3rd-party libs
from salt.ext import six
from salt.ext.six.moves import range
@@ -120,7 +113,7 @@ def info(device):
salt '*' xfs.info /dev/sda1
"""
- out = __salt__["cmd.run_all"]("xfs_info {0}".format(device))
+ out = __salt__["cmd.run_all"]("xfs_info {}".format(device))
if out.get("stderr"):
raise CommandExecutionError(out["stderr"].replace("xfs_info:", "").strip())
return _parse_xfs_info(out["stdout"])
@@ -195,16 +188,16 @@ def dump(device, destination, level=0, label=None, noerase=None):
label
and label
or time.strftime(
- 'XFS dump for "{0}" of %Y.%m.%d, %H:%M'.format(device), time.localtime()
+ 'XFS dump for "{}" of %Y.%m.%d, %H:%M'.format(device), time.localtime()
).replace("'", '"')
)
cmd = ["xfsdump"]
cmd.append("-F") # Force
if not noerase:
cmd.append("-E") # pre-erase
- cmd.append("-L '{0}'".format(label)) # Label
- cmd.append("-l {0}".format(level)) # Dump level
- cmd.append("-f {0}".format(destination)) # Media destination
+ cmd.append("-L '{}'".format(label)) # Label
+ cmd.append("-l {}".format(level)) # Dump level
+ cmd.append("-f {}".format(destination)) # Media destination
cmd.append(device) # Device
cmd = " ".join(cmd)
@@ -220,10 +213,10 @@ def _xr_to_keyset(line):
"""
tkns = [elm for elm in line.strip().split(":", 1) if elm]
if len(tkns) == 1:
- return "'{0}': ".format(tkns[0])
+ return "'{}': ".format(tkns[0])
else:
key, val = tkns
- return "'{0}': '{1}',".format(key.strip(), val.strip())
+ return "'{}': '{}',".format(key.strip(), val.strip())
def _xfs_inventory_output(out):
@@ -314,14 +307,14 @@ def prune_dump(sessionid):
salt '*' xfs.prune_dump b74a3586-e52e-4a4a-8775-c3334fa8ea2c
"""
- out = __salt__["cmd.run_all"]("xfsinvutil -s {0} -F".format(sessionid))
+ out = __salt__["cmd.run_all"]("xfsinvutil -s {} -F".format(sessionid))
_verify_run(out)
data = _xfs_prune_output(out["stdout"], sessionid)
if data:
return data
- raise CommandExecutionError('Session UUID "{0}" was not found.'.format(sessionid))
+ raise CommandExecutionError('Session UUID "{}" was not found.'.format(sessionid))
def _blkid_output(out):
@@ -340,7 +333,7 @@ def _blkid_output(out):
data[dev.pop("devname")] = dev
mounts = _get_mounts()
- for device in six.iterkeys(mounts):
+ for device in mounts.keys():
if data.get(device):
data[device].update(mounts[device])
@@ -396,9 +389,9 @@ def estimate(path):
salt '*' xfs.estimate /path/to/dir/*
"""
if not os.path.exists(path):
- raise CommandExecutionError('Path "{0}" was not found.'.format(path))
+ raise CommandExecutionError('Path "{}" was not found.'.format(path))
- out = __salt__["cmd.run_all"]("xfs_estimate -v {0}".format(path))
+ out = __salt__["cmd.run_all"]("xfs_estimate -v {}".format(path))
_verify_run(out)
return _xfs_estimate_output(out["stdout"])
@@ -449,14 +442,14 @@ def mkfs(
"""
getopts = lambda args: dict(
- ((args and ("=" in args) and args or None))
+ (args and ("=" in args) and args or None)
and [kw.split("=") for kw in args.split(",")]
or []
)
cmd = ["mkfs.xfs"]
if label:
cmd.append("-L")
- cmd.append("'{0}'".format(label))
+ cmd.append("'{}'".format(label))
if ssize:
cmd.append("-s")
@@ -477,7 +470,7 @@ def mkfs(
cmd.append(opts)
except Exception: # pylint: disable=broad-except
raise CommandExecutionError(
- 'Wrong parameters "{0}" for option "{1}"'.format(opts, switch)
+ 'Wrong parameters "{}" for option "{}"'.format(opts, switch)
)
if not noforce:
@@ -505,13 +498,13 @@ def modify(device, label=None, lazy_counting=None, uuid=None):
"""
if not label and lazy_counting is None and uuid is None:
raise CommandExecutionError(
- 'Nothing specified for modification for "{0}" device'.format(device)
+ 'Nothing specified for modification for "{}" device'.format(device)
)
cmd = ["xfs_admin"]
if label:
cmd.append("-L")
- cmd.append("'{0}'".format(label))
+ cmd.append("'{}'".format(label))
if lazy_counting is False:
cmd.append("-c")
@@ -531,7 +524,7 @@ def modify(device, label=None, lazy_counting=None, uuid=None):
cmd = " ".join(cmd)
_verify_run(__salt__["cmd.run_all"](cmd), cmd=cmd)
- out = __salt__["cmd.run_all"]("blkid -o export {0}".format(device))
+ out = __salt__["cmd.run_all"]("blkid -o export {}".format(device))
_verify_run(out)
return _blkid_output(out["stdout"])
@@ -572,9 +565,9 @@ def defragment(device):
raise CommandExecutionError("Root is not a device.")
if not _get_mounts().get(device):
- raise CommandExecutionError('Device "{0}" is not mounted'.format(device))
+ raise CommandExecutionError('Device "{}" is not mounted'.format(device))
- out = __salt__["cmd.run_all"]("xfs_fsr {0}".format(device))
+ out = __salt__["cmd.run_all"]("xfs_fsr {}".format(device))
_verify_run(out)
return {"log": out["stdout"]}
diff --git a/tests/unit/modules/test_xfs.py b/tests/unit/modules/test_xfs.py
index 149f6c8f7b..778aff793d 100644
--- a/tests/unit/modules/test_xfs.py
+++ b/tests/unit/modules/test_xfs.py
@@ -1,14 +1,6 @@
-# -*- coding: utf-8 -*-
-
-# Import Python libs
-from __future__ import absolute_import, print_function, unicode_literals
-
import textwrap
-# Import Salt Libs
import salt.modules.xfs as xfs
-
-# Import Salt Testing Libs
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.mock import MagicMock, patch
from tests.support.unit import TestCase
--
2.29.2