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 <shundham...@suse.com>
+
+- 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↓]
+![System view with agreed changes](partitioner_ui/img/system_new.png)
 
-   ┌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.
 
-![Nested list in Thunderbird](partitioner_ui/img/list-thunderbird.png)
+![Menu](partitioner_ui/img/menu_system.png)
 
-![Nested list in QDirStat](partitioner_ui/img/list-qdirstat.png)
+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.
+
+![New Overview Tab](partitioner_ui/img/overview_new.png)
 
 ## 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 <shundham...@suse.com>
+
+- 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 <igonzalezs...@suse.com>
 
 - 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


Reply via email to