import system-storage-manager-1.2-2.el8

This commit is contained in:
CentOS Sources 2019-05-07 06:10:05 -04:00 committed by Andrew Lukoshko
commit 62237fb887
7 changed files with 537 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/system-storage-manager-1.2.tar.gz

View File

@ -0,0 +1 @@
d108c18383f5b143cee5ffb69eafe44d6d666d54 SOURCES/system-storage-manager-1.2.tar.gz

View File

@ -0,0 +1,86 @@
From 4966dad8a241f431bc064982486b711e02fc0095 Mon Sep 17 00:00:00 2001
From: Jan Tulak <jtulak@redhat.com>
Date: Fri, 10 Aug 2018 17:29:48 +0200
Subject: [PATCH 2/2] change 'python' to 'python3'
Future RHEL will have a default of python3.
Signed-off-by: Jan Tulak <jtulak@redhat.com>
---
Makefile | 8 ++++----
bin/ssm | 2 +-
bin/ssm.local | 2 +-
test.py | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index 2d887c4..80ae3f9 100644
--- a/Makefile
+++ b/Makefile
@@ -28,7 +28,7 @@ ifndef PREVIOUS
endif
clean:
- @python setup.py clean
+ @python3 setup.py clean
rm -f MANIFEST
find . -\( -name "*.pyc" -o -name '*.pyo' -o -name "*~" -\) -delete
@@ -36,7 +36,7 @@ git-clean:
git clean -f
install:
- @python setup.py install
+ @python3 setup.py install
spec: check_vars
@(LC_ALL=C date +"* %a %b %e %Y `git config --get user.name` <`git config --get user.email`> - $(VERSION)"; git log --pretty="format:- %s (%an)" $(PREVIOUS)..HEAD| cat; echo -e "\n\n"; cat CHANGES) > CHANGES.bck; mv CHANGES.bck CHANGES
@@ -51,10 +51,10 @@ docs:
@make dist -C doc
source: test clean
- @python setup.py sdist
+ @python3 setup.py sdist
test:
- @python test.py
+ @python3 test.py
push_html:
scp -r doc/_build/singlehtml/* lczerner@shell.sourceforge.net:/home/project-web/storagemanager/htdocs/
diff --git a/bin/ssm b/bin/ssm
index 53aece6..13b2241 100755
--- a/bin/ssm
+++ b/bin/ssm
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# (C)2011 Red Hat, Inc., Lukas Czerner <lczerner@redhat.com>
#
diff --git a/bin/ssm.local b/bin/ssm.local
index d5bedec..94ea9dd 100755
--- a/bin/ssm.local
+++ b/bin/ssm.local
@@ -26,7 +26,7 @@ export PYTHONPATH="$SSMDIR"
# Run coverage if the environment variable is set up.
if [ "$RUN_COVERAGE" = "" ]; then
- python $SSMDIR/bin/ssm "$@"
+ python3 $SSMDIR/bin/ssm "$@"
else
$RUN_COVERAGE $SSMDIR/bin/ssm "$@"
fi
diff --git a/test.py b/test.py
index 7501cc0..247b1dc 100755
--- a/test.py
+++ b/test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# (C)2011 Red Hat, Inc., Lukas Czerner <lczerner@redhat.com>
#
--
2.16.2

View File

@ -0,0 +1,231 @@
From d395fbf4c1cb2289cb512dd255b420b8b1cf7971 Mon Sep 17 00:00:00 2001
From: Jan Tulak <jtulak@redhat.com>
Date: Fri, 10 Aug 2018 16:43:45 +0200
Subject: [PATCH 1/2] Remove info command for RHEL
Signed-off-by: Jan Tulak <jtulak@redhat.com>
---
README | 9 ---------
doc/generate_usage_includes.py | 10 ----------
doc/src/commands/index.rst | 1 -
doc/src/commands/info.rst | 8 --------
doc/src/commands/info.txt | 7 -------
man8/ssm.8 | 20 +-------------------
ssmlib/main.py | 32 --------------------------------
7 files changed, 1 insertion(+), 86 deletions(-)
delete mode 100644 doc/src/commands/info.rst
delete mode 100644 doc/src/commands/info.txt
diff --git a/README b/README
index fe16990..efce489 100644
--- a/README
+++ b/README
@@ -148,15 +148,6 @@ The following sections can be specified:
Info command
************
-**EXPERIMENTAL** This feature is currently experimental. The output
-format can change and fields can be added or removed.
-
-Show detailed information about all detected devices, pools, volumes
-and snapshots found on the system. The **info** command can be used
-either alone to show all available items, or you can specify a device,
-pool, or any other identifier to see information about the specific
-item.
-
Remove command
**************
diff --git a/doc/generate_usage_includes.py b/doc/generate_usage_includes.py
index d7695f8..e694722 100755
--- a/doc/generate_usage_includes.py
+++ b/doc/generate_usage_includes.py
@@ -12,7 +12,6 @@ SYNOPSIS_INC = "src/synopsis.inc"
OPTIONS_DIR = "src/options/"
SSM_OPTIONS_INC = OPTIONS_DIR + "ssm_options.inc"
CREATE_OPTIONS_INC = OPTIONS_DIR + "create_options.inc"
-INFO_OPTIONS_INC = OPTIONS_DIR + "info_options.inc"
LIST_OPTIONS_INC = OPTIONS_DIR + "list_options.inc"
REMOVE_OPTIONS_INC = OPTIONS_DIR + "remove_options.inc"
RESIZE_OPTIONS_INC = OPTIONS_DIR + "resize_options.inc"
@@ -24,7 +23,6 @@ MIGRATE_OPTIONS_INC = OPTIONS_DIR + "migrate_options.inc"
SSM_USAGE_INC = OPTIONS_DIR + "ssm_usage.inc"
CREATE_USAGE_INC = OPTIONS_DIR + "create_usage.inc"
-INFO_USAGE_INC = OPTIONS_DIR + "info_usage.inc"
LIST_USAGE_INC = OPTIONS_DIR + "list_usage.inc"
REMOVE_USAGE_INC = OPTIONS_DIR + "remove_usage.inc"
RESIZE_USAGE_INC = OPTIONS_DIR + "resize_usage.inc"
@@ -68,10 +66,6 @@ class GenerateIncludes(object):
message = self.format_synopsis(self.ssm_parser.parser_create)
self._write_message(message, CREATE_USAGE_INC)
- def write_info_usage(self):
- message = self.format_synopsis(self.ssm_parser.parser_info)
- self._write_message(message, INFO_USAGE_INC)
-
def write_list_usage(self):
message = self.format_synopsis(self.ssm_parser.parser_list)
self._write_message(message, LIST_USAGE_INC)
@@ -107,7 +101,6 @@ class GenerateIncludes(object):
def write_usage(self):
self.write_ssm_usage()
self.write_create_usage()
- self.write_info_usage()
self.write_list_usage()
self.write_remove_usage()
self.write_resize_usage()
@@ -137,9 +130,6 @@ class GenerateIncludes(object):
message = self._format_options(self.ssm_parser.parser_create)
self._write_message(message, CREATE_OPTIONS_INC)
- message = self._format_options(self.ssm_parser.parser_info)
- self._write_message(message, INFO_OPTIONS_INC)
-
message = self._format_options(self.ssm_parser.parser_list)
self._write_message(message, LIST_OPTIONS_INC)
diff --git a/doc/src/commands/index.rst b/doc/src/commands/index.rst
index 85ee495..d3f0a0f 100644
--- a/doc/src/commands/index.rst
+++ b/doc/src/commands/index.rst
@@ -7,7 +7,6 @@ System Storage Manager Commands
commands_introduction
create
- info
list
remove
resize
diff --git a/doc/src/commands/info.rst b/doc/src/commands/info.rst
deleted file mode 100644
index d2917ef..0000000
--- a/doc/src/commands/info.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-Info command
-============
-
-.. include:: ../options/info_usage.inc
-
-.. include:: info.txt
-
-.. include:: ../options/info_options.inc
\ No newline at end of file
diff --git a/doc/src/commands/info.txt b/doc/src/commands/info.txt
deleted file mode 100644
index 7fadda0..0000000
--- a/doc/src/commands/info.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-**EXPERIMENTAL** This feature is currently experimental. The output format can
-change and fields can be added or removed.
-
-Show detailed information about all detected devices, pools, volumes and
-snapshots found on the system. The **info** command can be used either alone
-to show all available items, or you can specify a device, pool, or any other
-identifier to see information about the specific item.
\ No newline at end of file
diff --git a/man8/ssm.8 b/man8/ssm.8
index c1de972..d421814 100644
--- a/man8/ssm.8
+++ b/man8/ssm.8
@@ -59,14 +59,12 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
..
.SH SYNOPSIS
.sp
-\fBssm\fP [\fB\-h\fP] [\fB\-\-version\fP] [\fB\-v\fP] [\fB\-f\fP] [\fB\-b\fP BACKEND] [\fB\-n\fP] {check,resize,create,list,info,add,remove,snapshot,mount,migrate} ...
+\fBssm\fP [\fB\-h\fP] [\fB\-\-version\fP] [\fB\-v\fP] [\fB\-f\fP] [\fB\-b\fP BACKEND] [\fB\-n\fP] {check,resize,create,list,add,remove,snapshot,mount,migrate} ...
.sp
\fBssm\fP \fBcreate\fP [\fB\-h\fP] [\fB\-s\fP SIZE] [\fB\-n\fP NAME] [\fB\-\-fstype\fP FSTYPE] [\fB\-r\fP LEVEL] [\fB\-I\fP STRIPESIZE] [\fB\-i\fP STRIPES] [\fB\-p\fP POOL] [\fB\-e\fP [{luks,plain}]] [\fB\-o\fP MNT_OPTIONS] [\fB\-v\fP VIRTUAL_SIZE] [\fBdevice\fP [\fBdevice\fP ...]] [mount]
.sp
\fBssm\fP \fBlist\fP [\fB\-h\fP] [{volumes,vol,dev,devices,pool,pools,fs,filesystems,snap,snapshots}]
.sp
-\fBssm\fP \fBinfo\fP [\fB\-h\fP] [item]
-.sp
\fBssm\fP \fBremove\fP [\fB\-h\fP] [\fB\-a\fP] [\fBitems\fP [\fBitems\fP ...]]
.sp
\fBssm\fP \fBresize\fP [\fB\-h\fP] [\fB\-s\fP SIZE] \fBvolume\fP [\fBdevice\fP [\fBdevice\fP ...]]
@@ -243,22 +241,6 @@ volume. A size suffix K|k, M|m, G|g, T|t, P|p, E|e can
be used to define \(aqpower of two\(aq units. If no unit is
provided, it defaults to kilobytes.
.UNINDENT
-.SS Info command
-.sp
-\fBssm\fP \fBinfo\fP [\fB\-h\fP] [item]
-.sp
-\fBEXPERIMENTAL\fP This feature is currently experimental. The output format can
-change and fields can be added or removed.
-.sp
-Show detailed information about all detected devices, pools, volumes and
-snapshots found on the system. The \fBinfo\fP command can be used either alone
-to show all available items, or you can specify a device, pool, or any other
-identifier to see information about the specific item.
-.INDENT 0.0
-.TP
-.B \-h\fP,\fB \-\-help
-show this help message and exit
-.UNINDENT
.SS List command
.sp
\fBssm\fP \fBlist\fP [\fB\-h\fP] [{volumes,vol,dev,devices,pool,pools,fs,filesystems,snap,snapshots}]
diff --git a/ssmlib/main.py b/ssmlib/main.py
index 9bbffd0..1e323df 100644
--- a/ssmlib/main.py
+++ b/ssmlib/main.py
@@ -1976,26 +1976,6 @@ class StorageHandle(object):
elif args.type in ['snap', 'snapshots']:
self.snap.psummary()
- def info(self, args):
- """
- Show a detailed info about an object
- """
- sources = [self.pool, self.dev, self.vol, self.snap]
- create_graph(*sources)
- print("EXPERIMENTAL FEATURE (The format can yet change)\n")
-
- if not args.item:
- for source in sources:
- source.pinfo()
- else:
- found = False
- for source in sources:
- found |= source.pinfo(item=args.item)
- if not found:
- err = "The item '%s' was not found." % args.item
- raise argparse.ArgumentTypeError(err)
-
-
def add(self, args, skip_check=False):
"""
Add devices into the pool
@@ -2529,7 +2509,6 @@ class SsmParser(object):
self.parser_resize = self._get_parser_resize()
self.parser_create = self._get_parser_create()
self.parser_list = self._get_parser_list()
- self.parser_info = self._get_parser_info()
self.parser_add = self._get_parser_add()
self.parser_remove = self._get_parser_remove()
self.parser_snapshot = self._get_parser_snapshot()
@@ -2707,17 +2686,6 @@ class SsmParser(object):
parser_list.set_defaults(func=self.storage.list)
return parser_list
- def _get_parser_info(self):
- """
- Info command
- """
- parser_info = self.subcommands.add_parser("info",
- help='''Show detailed information about
- an object. EXPERIMENTAL''')
- parser_info.add_argument('item', nargs='?')
- parser_info.set_defaults(func=self.storage.info)
- return parser_info
-
def _get_parser_add(self):
"""
Add command
--
2.16.2

View File

@ -0,0 +1,34 @@
From 8a07c9b2349633a603da5b1bea9bf5ea3fa320b7 Mon Sep 17 00:00:00 2001
From: Jan Tulak <jtulak@redhat.com>
Date: Thu, 24 Jan 2019 13:59:02 +0100
Subject: [PATCH] ssmlib: fix pwquality support for python3
The pwquality.PWQError has some differences between Python 2 and 3. The
semantics for P3 works for P2, but not the other way around, so use
ex.args instead of a simple ex.
Resolves: rhbz#1670714
Signed-off-by: Jan Tulak <jtulak@redhat.com>
---
ssmlib/main.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ssmlib/main.py b/ssmlib/main.py
index 1e323df..102e30c 100644
--- a/ssmlib/main.py
+++ b/ssmlib/main.py
@@ -1790,8 +1790,8 @@ class StorageHandle(object):
pwq = pwquality.PWQSettings()
pwq.check(password)
except pwquality.PWQError as ex:
- if not PR.check(PR.WEAK_PASSWORD, ex[1]):
- raise problem.WeakPassword(ex[1])
+ if not PR.check(PR.WEAK_PASSWORD, ex.args[1]):
+ raise problem.WeakPassword(ex.args[1])
else:
force_weak_password = True
--
2.20.1

View File

@ -0,0 +1,23 @@
diff --git a/doc/Makefile b/doc/Makefile
index 135bfb4..efe5f22 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -3,7 +3,7 @@
# You can set these variables from the command line.
SPHINXOPTS =
-SPHINXBUILD = sphinx-build
+SPHINXBUILD = sphinx-build-3
PAPER = a4
BUILDDIR = _build
diff --git a/doc/generate_usage_includes.py b/doc/generate_usage_includes.py
index 257ba51..0182116 100755
--- a/doc/generate_usage_includes.py
+++ b/doc/generate_usage_includes.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import re
import sys, os

View File

@ -0,0 +1,161 @@
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
Name: system-storage-manager
Version: 1.2
Release: 2%{?dist}
Summary: A single tool to manage your storage
Group: System Environment/Base
License: GPLv2+
URL: https://system-storage-manager.github.io/
Source0: https://github.com/system-storage-manager/ssm/archive/%{name}-%{version}.tar.gz
Patch1: ssm-1.2-python3-sphinx.patch
Patch2: ssm-1.2-Remove-info-command-for-RHEL.patch
Patch3: ssm-1.2-Change-python-to-python3.patch
Patch4: ssm-1.2-fix-pwquality.patch
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: python3-sphinx
BuildRequires: python3-pwquality
Requires: util-linux
Requires: which
Requires: xfsprogs
Requires: e2fsprogs
Requires: python3-pwquality
%description
System Storage Manager provides an easy to use command line interface to manage
your storage using various technologies like lvm, btrfs, encrypted volumes and
more.
In more sophisticated enterprise storage environments, management with Device
Mapper (dm), Logical Volume Manager (LVM), or Multiple Devices (md) is becoming
increasingly more difficult. With file systems added to the mix, the number of
tools needed to configure and manage storage has grown so large that it is
simply not user friendly. With so many options for a system administrator to
consider, the opportunity for errors and problems is large.
The btrfs administration tools have shown us that storage management can be
simplified, and we are working to bring that ease of use to Linux file systems
in general.
You should install the ssm if you need to manage your storage with various
technologies via a single unified interface.
%prep
%setup -q -n ssm-%{name}-%{version}
# ssm-1.2-python3-sphinx.patch
%patch1 -p1
# ssm-1.2-Remove-info-command-for-RHEL.patch
%patch2 -p1
# ssm-1.2-Change-python-to-python3.patch
%patch3 -p1
%patch4 -p1
%build
make docs
%install
rm -rf ${RPM_BUILD_ROOT}
%{__python3} setup.py install --root=${RPM_BUILD_ROOT}
if [ "%{_pkgdocdir}" != "%{_docdir}/%{name}-%{version}" ]; then
mv ${RPM_BUILD_ROOT}/{%{_docdir}/%{name}-%{version},%{_pkgdocdir}}
fi
%check
%{__python3} test.py || :
%files
%{_bindir}/ssm
%{_pkgdocdir}/
%{_mandir}/man8/ssm.8*
%{python3_sitelib}/ssmlib/
%{python3_sitelib}/*.egg-info
%changelog
*Fri Feb 15 2019 Jan Tulak <jtulak@redhat.com> - 1.2-2:
- fix poor luks password leads to ssm crash (rhbz#1670714)
* Sun Aug 12 2018 Jan Tulak <jtulak@redhat.com> - 1.2-1
- Upstream release 1.2 which fixes:
- use pwquality to test password strength for cryptsetup (#1141871)
- add multipath detection support (#1309729)
- add migrate command (#1014708)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.5-1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Oct 30 2017 Jan Tulak <jtulak@redhat.com> - 0.5-0
- New upstream stable version 0.5
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.4-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.4-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 0.4-12
- Rebuild for Python 3.6
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-11
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.4-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-9
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
* Mon Jul 27 2015 Lukas Czerner <lczerner@redhat.com> 0.4-7
- Big upstream update
- Python3 support (#1239016)
- Error out if file system is not supported (#1196428)
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Jan 20 2014 Lukas Czerner <lczerner@redhat.com> 0.4-4
- Update to a new upstream release v0.4
- Remove btrfs resize support
- Unmount all btrfs subvolumes when removing a filesystem
- Fix size argument parsing for create and snapshot command
- Fix list output for some cases
- Add support to create encrypted volumes with crypt backend
- Add dry-run option
- Fix removing volumes with crypt backend
- Add raid1 and raid10 support for lvm backend
- Allow to check btrfs volumes
- Fix error handling when trying to resize btrfs subvolume
- Fix ssm mount command so it detects directory properly
- Suppress backtrace when a command fails
- Fix ssm to recognize units in new btrfs output properly
- Use correct sysfs file to get size for a partition
- Fix ssm to be able add a device with signature to btrfs file system
- Resognize btrfs devices from new btrfs output properly
* Mon Dec 16 2013 Ville Skyttä <ville.skytta@iki.fi> - 0.2-4
- Install docs to %%{_pkgdocdir} where available (#994122).
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Jun 1 2012 Lukas Czerner <lczerner@redhat.com> 0.2-1
- Initial version of the package