Hello community,
here is the log from the commit of package yast2-storage-ng for
openSUSE:Factory checked in at 2020-10-26 16:12:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-storage-ng (Old)
and /work/SRC/openSUSE:Factory/.yast2-storage-ng.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-storage-ng"
Mon Oct 26 16:12:15 2020 rev:89 rq:843421 version:4.3.16
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-storage-ng/yast2-storage-ng.changes
2020-09-03 01:09:48.772380160 +0200
+++
/work/SRC/openSUSE:Factory/.yast2-storage-ng.new.3463/yast2-storage-ng.changes
2020-10-26 16:12:51.118745978 +0100
@@ -1,0 +2,6 @@
+Tue Oct 20 15:36:03 UTC 2020 - Stefan Hundhammer <[email protected]>
+
+- Added $LIBSTORAGE_IGNORE_PROBE_ERRORS environment variable
+ to ignore storage probing errors (bsc#1177332)
+- 4.3.16
+-------------------------------------------------------------------
Old:
----
yast2-storage-ng-4.3.15.tar.bz2
New:
----
yast2-storage-ng-4.3.16.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-storage-ng.spec ++++++
--- /var/tmp/diff_new_pack.4RriWe/_old 2020-10-26 16:12:52.318747083 +0100
+++ /var/tmp/diff_new_pack.4RriWe/_new 2020-10-26 16:12:52.322747087 +0100
@@ -17,7 +17,7 @@
Name: yast2-storage-ng
-Version: 4.3.15
+Version: 4.3.16
Release: 0
Summary: YaST2 - Storage Configuration
License: GPL-2.0-only OR GPL-3.0-only
++++++ yast2-storage-ng-4.3.15.tar.bz2 -> yast2-storage-ng-4.3.16.tar.bz2 ++++++
Binary files
old/yast2-storage-ng-4.3.15/doc/partitioner_ui/img/list-qdirstat.png and
new/yast2-storage-ng-4.3.16/doc/partitioner_ui/img/list-qdirstat.png differ
Binary files
old/yast2-storage-ng-4.3.15/doc/partitioner_ui/img/list-thunderbird.png and
new/yast2-storage-ng-4.3.16/doc/partitioner_ui/img/list-thunderbird.png differ
Binary files old/yast2-storage-ng-4.3.15/doc/partitioner_ui/img/menu_system.png
and new/yast2-storage-ng-4.3.16/doc/partitioner_ui/img/menu_system.png differ
Binary files
old/yast2-storage-ng-4.3.15/doc/partitioner_ui/img/overview_new.png and
new/yast2-storage-ng-4.3.16/doc/partitioner_ui/img/overview_new.png differ
Binary files old/yast2-storage-ng-4.3.15/doc/partitioner_ui/img/system_new.png
and new/yast2-storage-ng-4.3.16/doc/partitioner_ui/img/system_new.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-storage-ng-4.3.15/doc/partitioner_ui.md
new/yast2-storage-ng-4.3.16/doc/partitioner_ui.md
--- old/yast2-storage-ng-4.3.15/doc/partitioner_ui.md 2020-08-26
16:42:50.000000000 +0200
+++ new/yast2-storage-ng-4.3.16/doc/partitioner_ui.md 2020-10-22
14:15:17.000000000 +0200
@@ -61,57 +61,45 @@
This is the main plan to overcome the mentioned challenges and problems.
Readers interested in the
result can simply check this section.
-To make navigation more understandable we plan to introduce three big changes
in the layout used
-by the Partitioner to present the full picture:
+To make navigation more understandable we plan to introduce some changes in
the layout used by the
+Partitioner:
-- Use a menu to allocate global actions that do not really fit in other parts
of the UI (like
- rescanning devices) and also for some contextual options that are not common
enough to justify a
- button.
-- Turn the left tree into a plain list of possible "views" with some numbers
indicating the number
- of elements presented in each view.
+- Use an application menu bar. It would contain global actions that do not
really fit in other
+ parts of the UI (like rescanning devices) and also all the options that are
contextual to the
+ device currently selected.
+- Simplify the contextual actions that are displayed below each table, showing
only plain buttons
+ with the most common options, instead of menu-buttons with all
possibilities. The less common
+ actions would now have to be reached through the menu.
- Use nesting (with the possibility of expanding/collapsing) in the tables to
better represent the
relationship of disks vs partitions, volume groups vs logical volumes,
filesystems vs subvolumes,
etc.
+- Create a new Device Overview tab that would be similar for all kind of
devices. It should display a
+ table with the device itself as first element and all the dependent devices
(like partitions of
+ the given disk) nested below.
+- Limit the nesting in the left tree to display only a first level of devices.
Navigating below that
+ level will not be possible (eg. there will be no "Device Overview" for an
individual partition).
+- Show any other information as pop-ups.
With all that, the previous screenshot will turn into something similar to
this:
-```
-[Configure↓][View↓][Settings↓]
+
- ┌View ──────────────┐Available Storage on guanche
- │─System Overview │┌──────────────────────────────────────────────────┐
- │─Hard Disks (3) ││Device │ Size│F│Enc│Type │
- │─RAID (2) ││┬─/dev/sda │ 8.00 GiB│ │ │HGST-HGST HTS72│
- │─Volume Manager (1)││├──/dev/sda1 │500.00 MiB│ │ │Part of EFI │
- │─Bcache (0) ││└──/dev/sda2 │ 7.51 GiB│ │ │Part of OS │
- │─NFS (0) ││+─/dev/sdb │468.00 GiB│ │ │Disk │
- │─Btrfs (1) ││┬─/dev/sdc │ 2.00 TiB│ │ │Disk │
- │ ││└──/dev/sdc1 │ 12.00 GiB│ │ │FAT Partition │
- │ ││──/dev/md/EFI │499.94 MiB│ │ │FAT RAID │
- │ ││──/dev/md/OS │ 7.51 GiB│ │ │PV of system │
- │ ││┬─/dev/system │ 7.50 GiB│ │ │LVM │
- │ ││└──/dev/system/ro│ 6.00 GiB│ │ │Btrfs LV │
- │ │└├───────────────────────────────┤─────────────────┘
- │ │[Modify↓][Partitions↓]
- └───────────────────┘
- [ Help ] [Abort] [Finish]
-
-```
-
-Of course, the look and feel of the table with nested elements may not be
exactly as represented
-above. That widget still must be developed and could end up looking similar to
the typical list of
-mails from a mail client (in which nesting is used to manage threads) or to
the widgets currently
-used to display a hierarchy of directories in QDirStat.
+The options that are not longer visible at first sight in that screenshot are
moved to the
+appropriate menus.
-
+
-
+Adopting the new table-based Device Overview tab and using pop-ups dialogs
when necessary will
+result in a more consistent and less confusing interface, with subvolumes
management nicely
+integrated.
+
+
## Other ideas
Section with ideas and concepts that were important during the development of
the current plan.
-Kept for completeness and for future reference, since we still plan to
incorporate parts of them to
-the final implementation.
+Kept for completeness and for future reference, since we are still considering
to incorporate parts
+of them to the final implementation.
### Initial ideas
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-4.3.15/package/yast2-storage-ng.changes
new/yast2-storage-ng-4.3.16/package/yast2-storage-ng.changes
--- old/yast2-storage-ng-4.3.15/package/yast2-storage-ng.changes
2020-08-26 16:42:50.000000000 +0200
+++ new/yast2-storage-ng-4.3.16/package/yast2-storage-ng.changes
2020-10-22 14:15:17.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Tue Oct 20 15:36:03 UTC 2020 - Stefan Hundhammer <[email protected]>
+
+- Added $LIBSTORAGE_IGNORE_PROBE_ERRORS environment variable
+ to ignore storage probing errors (bsc#1177332)
+- 4.3.16
+-------------------------------------------------------------------
Wed Aug 26 10:08:03 UTC 2020 - Imobach Gonzalez Sosa <[email protected]>
- Unify profile element paths (bsc#1175680).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-4.3.15/package/yast2-storage-ng.spec
new/yast2-storage-ng-4.3.16/package/yast2-storage-ng.spec
--- old/yast2-storage-ng-4.3.15/package/yast2-storage-ng.spec 2020-08-26
16:42:50.000000000 +0200
+++ new/yast2-storage-ng-4.3.16/package/yast2-storage-ng.spec 2020-10-22
14:15:17.000000000 +0200
@@ -16,7 +16,7 @@
#
Name: yast2-storage-ng
-Version: 4.3.15
+Version: 4.3.16
Release: 0
Summary: YaST2 - Storage Configuration
License: GPL-2.0-only OR GPL-3.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-4.3.15/src/lib/y2storage/callbacks/probe.rb
new/yast2-storage-ng-4.3.16/src/lib/y2storage/callbacks/probe.rb
--- old/yast2-storage-ng-4.3.15/src/lib/y2storage/callbacks/probe.rb
2020-08-26 16:42:50.000000000 +0200
+++ new/yast2-storage-ng-4.3.16/src/lib/y2storage/callbacks/probe.rb
2020-10-22 14:15:17.000000000 +0200
@@ -31,6 +31,31 @@
class Probe < Storage::ProbeCallbacksV3
include LibstorageCallback
+ # Callback for libstorage-ng to report an error to the user.
+ #
+ # If the $LIBSTORAGE_IGNORE_PROBE_ERRORS environment variable is set,
+ # this just returns 'true', i.e. the error is ignored.
+ #
+ # Otherwise, this displays the error and prompts the user if the error
+ # should be ignored.
+ #
+ # @note If the user rejects to continue, the method will return false
+ # which implies libstorage-ng will raise the corresponding exception for
+ # the error.
+ #
+ # See Storage::Callbacks#error in libstorage-ng
+ #
+ # @param message [String] error title coming from libstorage-ng
+ # (in the ASCII-8BIT encoding! see
https://sourceforge.net/p/swig/feature-requests/89/)
+ # @param what [String] details coming from libstorage-ng (in the
ASCII-8BIT encoding!)
+ # @return [Boolean] true will make libstorage-ng ignore the error, false
+ # will result in a libstorage-ng exception
+ def error(message, what)
+ return true if StorageEnv.instance.ignore_probe_errors?
+
+ super(message, what)
+ end
+
# Callback for missing commands during probing.
#
# @param message [String] error title coming from libstorage-ng
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-4.3.15/src/lib/y2storage/storage_env.rb
new/yast2-storage-ng-4.3.16/src/lib/y2storage/storage_env.rb
--- old/yast2-storage-ng-4.3.15/src/lib/y2storage/storage_env.rb
2020-08-26 16:42:50.000000000 +0200
+++ new/yast2-storage-ng-4.3.16/src/lib/y2storage/storage_env.rb
2020-10-22 14:15:17.000000000 +0200
@@ -32,7 +32,10 @@
ENV_ACTIVATE_LUKS = "YAST_ACTIVATE_LUKS".freeze
+ ENV_LIBSTORAGE_IGNORE_PROBE_ERRORS =
"LIBSTORAGE_IGNORE_PROBE_ERRORS".freeze
+
private_constant :ENV_MULTIPATH, :ENV_BIOS_RAID, :ENV_ACTIVATE_LUKS
+ private_constant :ENV_LIBSTORAGE_IGNORE_PROBE_ERRORS
def initialize
@active_cache = {}
@@ -67,6 +70,21 @@
active?(ENV_ACTIVATE_LUKS, true)
end
+ # Whether errors during libstorage probing should be ignored.
+ #
+ # See bsc#1177332:
+ #
+ # Some storage technologies like Veritas Volume Manager use disk labels
+ # like "sun" that we don't support in libstorage / storage-ng. Setting the
+ # LIBSTORAGE_IGNORE_PROBE_ERRORS env var gives the admin a chance to use
+ # the YaST partitioner despite that. Those disks will show up like empty
+ # disks and not cause an error pop-up for each one.
+ def ignore_probe_errors?
+ result = active?(ENV_LIBSTORAGE_IGNORE_PROBE_ERRORS)
+ log.info("Ignoring libstorage probe errors") if result
+ result
+ end
+
private
# Whether the env variable is active
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-storage-ng-4.3.15/test/y2storage/callbacks/probe_test.rb
new/yast2-storage-ng-4.3.16/test/y2storage/callbacks/probe_test.rb
--- old/yast2-storage-ng-4.3.15/test/y2storage/callbacks/probe_test.rb
2020-08-26 16:42:50.000000000 +0200
+++ new/yast2-storage-ng-4.3.16/test/y2storage/callbacks/probe_test.rb
2020-10-22 14:15:17.000000000 +0200
@@ -28,6 +28,25 @@
describe "#error" do
include_examples "general #error examples"
include_examples "default #error true examples"
+
+ context "without LIBSTORAGE_IGNORE_PROBE_ERRORS" do
+ before { mock_env(env_vars) }
+ let(:env_vars) { {} }
+ it "it displays an error pop-up" do
+ expect(Yast::Report).to receive(:yesno_popup)
+ subject.error("probing failed", "")
+ end
+ end
+
+ context "with LIBSTORAGE_IGNORE_PROBE_ERRORS set" do
+ before { mock_env(env_vars) }
+ after { mock_env({}) } # clean up for future tests
+ let(:env_vars) { { "LIBSTORAGE_IGNORE_PROBE_ERRORS" => "1" } }
+ it "does not display an error pop-up and returns true" do
+ expect(Yast::Report).not_to receive(:yesno_popup)
+ expect(subject.error("probing failed", "")).to be true
+ end
+ end
end
describe "#begin" do