65598582f5
OBS-URL: https://build.opensuse.org/package/show/systemsmanagement:saltstack/salt?expand=0&rev=179
219 lines
7.2 KiB
Diff
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
|
|
|
|
|