Hello community,

here is the log from the commit of package libstorage-ng for openSUSE:Factory 
checked in at 2019-05-05 21:17:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libstorage-ng (Old)
 and      /work/SRC/openSUSE:Factory/.libstorage-ng.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libstorage-ng"

Sun May  5 21:17:35 2019 rev:54 rq:700487 version:4.1.119

Changes:
--------
--- /work/SRC/openSUSE:Factory/libstorage-ng/libstorage-ng.changes      
2019-04-28 20:00:27.406898622 +0200
+++ /work/SRC/openSUSE:Factory/.libstorage-ng.new.5148/libstorage-ng.changes    
2019-05-05 21:17:37.580657210 +0200
@@ -1,0 +2,20 @@
+Thu May 2 06:04:23 UTC 2019 - weblate-nore...@opensuse.org
+
+- Translated using Weblate (Dutch)
+- Translated using Weblate (Finnish)
+- 4.1.119
+
+--------------------------------------------------------------------
+Tue Apr 30 08:54:13 UTC 2019 - aschn...@suse.de
+
+- merge gh#openSUSE/libstorage-ng#644
+- added unit test
+- added integration tests
+- removed unneeded virtual specifier
+- wait for block device
+- moved integration tests
+- added note
+- allow to add devices to existing btrfs (for jsd#SLE-3877)
+- 4.1.118
+
+--------------------------------------------------------------------

Old:
----
  libstorage-ng-4.1.117.tar.xz

New:
----
  libstorage-ng-4.1.119.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libstorage-ng.spec ++++++
--- /var/tmp/diff_new_pack.yGAp9T/_old  2019-05-05 21:17:38.388659411 +0200
+++ /var/tmp/diff_new_pack.yGAp9T/_new  2019-05-05 21:17:38.388659411 +0200
@@ -18,7 +18,7 @@
 
 %define libname %{name}1
 Name:           libstorage-ng
-Version:        4.1.117
+Version:        4.1.119
 Release:        0
 Summary:        Library for storage management
 License:        GPL-2.0-only

++++++ libstorage-ng-4.1.117.tar.xz -> libstorage-ng-4.1.119.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/LIBVERSION 
new/libstorage-ng-4.1.119/LIBVERSION
--- old/libstorage-ng-4.1.117/LIBVERSION        2019-04-26 16:52:00.000000000 
+0200
+++ new/libstorage-ng-4.1.119/LIBVERSION        2019-05-02 08:04:23.000000000 
+0200
@@ -1 +1 @@
-1.10.0
+1.10.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/VERSION 
new/libstorage-ng-4.1.119/VERSION
--- old/libstorage-ng-4.1.117/VERSION   2019-04-26 16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/VERSION   2019-05-02 08:04:23.000000000 +0200
@@ -1 +1 @@
-4.1.117
+4.1.119
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/create-multiple-devices.py
 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/create-multiple-devices.py
--- 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/create-multiple-devices.py
    2019-04-26 16:52:00.000000000 +0200
+++ 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/create-multiple-devices.py
    1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-#!/usr/bin/python3
-
-# requirements: unused partitions /dev/sdc1 and /dev/sdd1
-
-
-from storage import *
-from storageitu import *
-
-
-set_logger(get_logfile_logger())
-
-environment = Environment(False)
-
-storage = Storage(environment)
-storage.probe()
-
-staging = storage.get_staging()
-
-print(staging)
-
-sdc1 = Partition.find_by_name(staging, "/dev/sdc1")
-sdc1.set_id(ID_LINUX)
-
-sdd1 = Partition.find_by_name(staging, "/dev/sdd1")
-sdd1.set_id(ID_LINUX)
-
-btrfs = to_btrfs(sdc1.create_blk_filesystem(FsType_BTRFS))
-btrfs.add_device(sdd1)
-
-btrfs.set_label("TEST")
-btrfs.set_metadata_raid_level(BtrfsRaidLevel_RAID1)
-btrfs.set_data_raid_level(BtrfsRaidLevel_RAID1)
-
-mount_point = btrfs.create_mount_point("/test")
-
-print(staging)
-
-commit(storage)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/delete-multiple-devices.py
 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/delete-multiple-devices.py
--- 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/delete-multiple-devices.py
    2019-04-26 16:52:00.000000000 +0200
+++ 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/delete-multiple-devices.py
    1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
-#!/usr/bin/python3
-
-# requirements: btrfs on /dev/sdc1 and /dev/sdd1
-
-
-from storage import *
-from storageitu import *
-
-
-set_logger(get_logfile_logger())
-
-environment = Environment(False)
-
-storage = Storage(environment)
-storage.probe()
-
-staging = storage.get_staging()
-
-print(staging)
-
-sdc1 = Partition.find_by_name(staging, "/dev/sdc1")
-sdc1.remove_descendants()
-
-print(staging)
-
-commit(storage)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/create.py
 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/create.py
--- 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/create.py
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/create.py
    2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,39 @@
+#!/usr/bin/python3
+
+# requirements: unused partitions /dev/sdc1 and /dev/sdd1
+
+
+from storage import *
+from storageitu import *
+
+
+set_logger(get_logfile_logger())
+
+environment = Environment(False)
+
+storage = Storage(environment)
+storage.probe()
+
+staging = storage.get_staging()
+
+print(staging)
+
+sdc1 = Partition.find_by_name(staging, "/dev/sdc1")
+sdc1.set_id(ID_LINUX)
+
+sdd1 = Partition.find_by_name(staging, "/dev/sdd1")
+sdd1.set_id(ID_LINUX)
+
+btrfs = to_btrfs(sdc1.create_blk_filesystem(FsType_BTRFS))
+btrfs.add_device(sdd1)
+
+btrfs.set_label("TEST")
+btrfs.set_metadata_raid_level(BtrfsRaidLevel_RAID1)
+btrfs.set_data_raid_level(BtrfsRaidLevel_RAID1)
+
+mount_point = btrfs.create_mount_point("/test")
+
+print(staging)
+
+commit(storage)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/delete.py
 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/delete.py
--- 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/delete.py
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/delete.py
    2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,27 @@
+#!/usr/bin/python3
+
+# requirements: btrfs on /dev/sdc1 and /dev/sdd1
+
+
+from storage import *
+from storageitu import *
+
+
+set_logger(get_logfile_logger())
+
+environment = Environment(False)
+
+storage = Storage(environment)
+storage.probe()
+
+staging = storage.get_staging()
+
+print(staging)
+
+sdc1 = Partition.find_by_name(staging, "/dev/sdc1")
+sdc1.remove_descendants()
+
+print(staging)
+
+commit(storage)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/extend.py
 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/extend.py
--- 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/extend.py
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/extend.py
    2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,32 @@
+#!/usr/bin/python3
+
+# requirements: btrfs on /dev/sdc1 and unused /dev/sdd1
+
+
+from storage import *
+from storageitu import *
+
+
+set_logger(get_logfile_logger())
+
+environment = Environment(False)
+
+storage = Storage(environment)
+storage.probe()
+
+staging = storage.get_staging()
+
+print(staging)
+
+sdc1 = Partition.find_by_name(staging, "/dev/sdc1")
+
+sdd1 = Partition.find_by_name(staging, "/dev/sdd1")
+sdd1.set_id(ID_LINUX)
+
+btrfs = to_btrfs(sdc1.get_blk_filesystem())
+btrfs.add_device(sdd1)
+
+print(staging)
+
+commit(storage)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/reduce.py
 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/reduce.py
--- 
old/libstorage-ng-4.1.117/integration-tests/filesystems/btrfs/multiple-devices/reduce.py
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/libstorage-ng-4.1.119/integration-tests/filesystems/btrfs/multiple-devices/reduce.py
    2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,34 @@
+#!/usr/bin/python3
+
+# requirements: btrfs on /dev/sdc1 and /dev/sdd1
+
+# note: removing devices from btrfs is not supported by libstorage-ng
+# so do not use it in production code
+
+
+from storage import *
+from storageitu import *
+
+
+set_logger(get_logfile_logger())
+
+environment = Environment(False)
+
+storage = Storage(environment)
+storage.probe()
+
+staging = storage.get_staging()
+
+print(staging)
+
+sdc1 = Partition.find_by_name(staging, "/dev/sdc1")
+
+sdd1 = Partition.find_by_name(staging, "/dev/sdd1")
+
+btrfs = to_btrfs(sdc1.get_blk_filesystem())
+btrfs.remove_device(sdd1)
+
+print(staging)
+
+commit(storage)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/po/fi.po 
new/libstorage-ng-4.1.119/po/fi.po
--- old/libstorage-ng-4.1.117/po/fi.po  2019-04-26 16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/po/fi.po  2019-05-02 08:04:23.000000000 +0200
@@ -12,16 +12,16 @@
 "Project-Id-Version: libstorage.fi\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-02-25 15:22+0100\n"
-"PO-Revision-Date: 2018-12-02 22:02+0000\n"
+"PO-Revision-Date: 2019-05-02 06:04+0000\n"
 "Last-Translator: Tommi Nieminen <softw...@legisign.org>\n"
-"Language-Team: Finnish <https://l10n.opensuse.org/projects/libstorage/ng-";
-"master/fi/>\n"
+"Language-Team: Finnish <https://l10n.opensuse.org/projects/libstorage/";
+"ng-master/fi/>\n"
 "Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.18\n"
+"X-Generator: Weblate 3.3\n"
 
 msgid ""
 "\n"
@@ -35,7 +35,7 @@
 #. %1$d is replaced by the number of elements omitted
 #, c-format
 msgid "%1$d more"
-msgstr ""
+msgstr "%1$d lisää"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the device name (e.g. /dev/sdc1),
@@ -50,14 +50,14 @@
 #. %2$s is replaced by the number of elements omitted
 #, c-format
 msgid "%1$s and %2$d more"
-msgstr ""
+msgstr "%1$s ja %2$d lisää"
 
 #. TRANSLATORS: used to construct list of values
 #. %1$s is replaced by first value
 #. %2$s is replaced by second value
-#, fuzzy, c-format
+#, c-format
 msgid "%1$s and %2$s"
-msgstr "%1$s (%2$s)"
+msgstr "%1$s ja %2$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the the bcache name (e.g. /dev/bcache0),
@@ -70,9 +70,9 @@
 #. TRANSLATORS: used to construct list of values
 #. %1$s is replaced by first value
 #. %2$s is replaced by second value
-#, fuzzy, c-format
+#, c-format
 msgid "%1$s, %2$s"
-msgstr "%1$s (%2$s)"
+msgstr "%1$s, %2$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda1)
@@ -291,15 +291,16 @@
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by subvolume path (e.g. var/log),
 #. %2$s is replaced by block device name (e.g. /dev/sda1)
-#, fuzzy, c-format
+#, c-format
 msgid "Clear option 'no copy on write' for subvolume %1$s on %2$s"
-msgstr "Luodaan alitaltio %1$s laitteeseen %2$s"
+msgstr ""
+"Poista valinta ”kopioi kirjoitettaessa” alitaltiolta %1$s laitteella %2$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda)
 #, c-format
 msgid "Clear protective MBR boot flag of GPT on %1$s"
-msgstr ""
+msgstr "Poista GPT:n MBR-suojakäynnistyslippu laitteelta %1$s"
 
 #. TRANSLATORS: displayed during action,
 #. %1$s is replaced by partition name (e.g. /dev/sda1)
@@ -319,12 +320,13 @@
 #, c-format
 msgid "Clearing option 'no copy on write' for subvolume %1$s on %2$s"
 msgstr ""
+"Poistetaan valntaa ”kopioi kirjoittamatta” alitaltiolta %1$s laitteella %2$s"
 
 #. TRANSLATORS: displayed during action,
 #. %1$s is replaced by device name (e.g. /dev/sda)
 #, c-format
 msgid "Clearing protective MBR boot flag of GPT on %1$s"
-msgstr ""
+msgstr "Poistetaan GPT:n MBR-suojakäynnistyslippua laitteelta %1$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md level (e.g. RAID1),
@@ -335,11 +337,13 @@
 #. %6$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create %1$s %2$s (%3$s) for %4$s with %5$s\n"
 "from %6$s"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr ""
+"Luo %1$s %2$s (%3$s) liitospisteeseen %4$s tiedostojärjestelmällä %5$s\n"
+"laitteista %6$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md level (e.g. RAID1),
@@ -348,11 +352,13 @@
 #. %4$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create %1$s %2$s (%3$s) for swap\n"
 "from %4$s"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr ""
+"Luo %1$s %2$s (%3$s) sivutusta varten\n"
+"laitteista %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md level (e.g. RAID1),
@@ -361,9 +367,9 @@
 #. %4$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create %1$s %2$s (%3$s) from %4$s"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr "Luo %1$s %2$s (%3$s) laitteista %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md name (e.g. /dev/md0),
@@ -373,11 +379,13 @@
 #. %5$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create %1$s %2$s (%3$s) with %4$s\n"
 "from %5$s"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr ""
+"Luo %1$s %2$s (%3$s) tiedostojärjestelmällä %4$s\n"
+"laitteista %5$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by file system name (e.g. ext4),
@@ -390,16 +398,16 @@
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/bcache0),
 #. %2$s is replaced by size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create Bcache %1$s (%2$s)"
-msgstr "Luo kiintolevy %1$s (%2$s)"
+msgstr "Luo Bcache %1$s (%2$s)"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda1),
 #. %2$s is replaced by size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create Bcache cache set on %1$s (%2$s)"
-msgstr "Luo looginen osio %1$s (%2$s)"
+msgstr "Luo Bcache-välimuistijoukko %1$s (%2$s)"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda)
@@ -417,9 +425,9 @@
 #. %1$s is replaced with the logical volume name (e.g. root),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the volume group name (e.g. system)
-#, fuzzy, c-format
+#, c-format
 msgid "Create LVM logical volume %1$s (%2$s) on volume group %3$s"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr "Luo looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
@@ -427,48 +435,52 @@
 #. %3$s is replaced with the volume group name (e.g. system),
 #. %4$s is replaced with the mount point (e.g. /home),
 #. %5$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create LVM logical volume %1$s (%2$s) on volume group %3$s for %4$s with %5$s"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr ""
+"Luo looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s, liitospiste %4$s ja "
+"tiedostojärjestelmä %5$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the volume group name (e.g. system)
-#, fuzzy, c-format
+#, c-format
 msgid "Create LVM logical volume %1$s (%2$s) on volume group %3$s for swap"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr "Luo looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s sivutusta 
varten"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the volume group name (e.g. system),
 #. %4$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create LVM logical volume %1$s (%2$s) on volume group %3$s with %4$s"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr ""
+"Luo looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s, tiedostojärjestelmä "
+"%4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create LVM physical volume over %1$s (%2$s)"
-msgstr "Luo fyysinen taltio laitteelle %1$s"
+msgstr "Luo fyysinen LVM-taltio laitteelle %1$s (%2$s)"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create LVM physical volume over encrypted %1$s (%2$s)"
-msgstr "Luo fyysinen taltio laitteelle %1$s"
+msgstr "Luo fyysinen LVM-taltio salatulle laitteelle %1$s (%2$s)"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create LVM volume device over %1$s (%2$s)"
-msgstr "Luo taltioryhmä %1$s (%2$s)"
+msgstr "Luo LVM-taltiolaite osiolle %1$s (%2$s)"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by RAID level (e.g. RAID0),
@@ -476,13 +488,13 @@
 #. %3$s is replaced by size (e.g. 2 GiB),
 #. %4$s is replaced by one or more devices (e.g /dev/sda1 (1 GiB) and
 #. /dev/sdb2 (1 GiB))
-#, fuzzy, c-format
+#, c-format
 msgid "Create MD %1$s %2$s (%3$s) from %4$s"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr "Luo MD %1$s %2$s (%3$s) laitteista %4$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda)
-#, fuzzy, c-format
+#, c-format
 msgid "Create MS-DOS partition table on %1$s"
 msgstr "Luo MS-DOS-osiotaulukko laitteelle %1$s"
 
@@ -490,9 +502,9 @@
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
 #. %2$s is replaced with the device name (e.g. /dev/sda1),
 #. %3$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create bcache %1$s on %2$s (%3$s)"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr "Luo Bcache %1$s laitteelle %2$s (%3$s)"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
@@ -500,26 +512,28 @@
 #. %3$s is replaced with the size (e.g. 2 GiB),
 #. %4$s is replaced with the mount point (e.g. /home),
 #. %5$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create bcache %1$s on %2$s (%3$s) for %4$s with %5$s"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr ""
+"Luo Bcache %1$s laitteelle %2$s (%3$s), liitospiste %4$s ja "
+"tiedostojärjestelmä %5$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
 #. %2$s is replaced with the device name (e.g. /dev/sda1),
 #. %3$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create bcache %1$s on %2$s (%3$s) for swap"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr "Luo Bcache %1$s laitteelle %2$s (%3$s) sivutusta varten"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
 #. %2$s is replaced with the device name (e.g. /dev/sda1),
 #. %3$s is replaced with the size (e.g. 2 GiB),
 #. %4$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create bcache %1$s on %2$s (%3$s) with %4$s"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr "Luo Bcache %1$s laitteelle %2$s (%3$s) tiedostojärjestelmänä %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md name (e.g. /dev/md0),
@@ -528,11 +542,13 @@
 #. %4$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted %1$s %2$s (%3$s)\n"
 "from %4$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu %1$s %2$s (%3$s)\n"
+"laitteista %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md name (e.g. /dev/md0),
@@ -543,11 +559,13 @@
 #. %6$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted %1$s %2$s (%3$s) for %4$s with %5$s\n"
 "from %6$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu %1$s %2$s (%3$s), liitospiste %4$s ja tiedostojärjestelmä %5$s,\n"
+"laitteista %6$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md level (e.g. RAID1),
@@ -556,11 +574,13 @@
 #. %4$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted %1$s %2$s (%3$s) for swap\n"
 "from %4$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu %1$s %2$s (%3$s) sivutusta varten\n"
+"laitteista %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the md name (e.g. /dev/md0),
@@ -570,19 +590,21 @@
 #. %5$s is replaced with a comma-spearated list of the devices
 #. the RAID is built from and their sizes: e.g.
 #. /dev/sda (512 GiB), /dev/sdb (512 GiB), /dev/sdc (512 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted %1$s %2$s (%3$s) with %4$s\n"
 "from %5$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu %1$s %2$s (%3$s) tiedostojärjestelmän %4$s\n"
+"laitteista %5$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the volume group name (e.g. system)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted LVM logical volume %1$s (%2$s) on volume group %3$s"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr "Luo salattu looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
@@ -590,39 +612,45 @@
 #. %3$s is replaced with the volume group name (e.g. system),
 #. %4$s is replaced with the mount point (e.g. /home),
 #. %5$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted LVM logical volume %1$s (%2$s) on volume group %3$s for "
 "%4$s with %5$s"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr ""
+"Luo salattu looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s, liitospiste "
+"%4$s ja tiedostojärjestelmä %5$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the volume group name (e.g. system)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted LVM logical volume %1$s (%2$s) on volume group %3$s for swap"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr ""
+"Luo salattu looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s sivutusta "
+"varten"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the logical volume name (e.g. root),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the volume group name (e.g. system),
 #. %4$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Create encrypted LVM logical volume %1$s (%2$s) on volume group %3$s with "
 "%4$s"
-msgstr "Luo looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr ""
+"Luo salattu looginen LVM-taltio %1$s (%2$s) taltioryhmään %3$s "
+"tiedostojärjestelmänä %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
 #. %2$s is replaced with the device name (e.g. /dev/sda1),
 #. %3$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted bcache %1$s on %2$s (%3$s)"
-msgstr "Luo %1$s laitteelle %2$s (%3$s)"
+msgstr "Luo salattu Bcache %1$s laitteelle %2$s (%3$s)"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
@@ -630,70 +658,74 @@
 #. %3$s is replaced with the size (e.g. 2 GiB),
 #. %4$s is replaced with the mount point (e.g. /home),
 #. %5$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted bcache %1$s on %2$s (%3$s) for %4$s with %5$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu Bcache %1$s laitteelle %2$s (%3$s), liitospiste %4$s ja "
+"tiedostojärjestelmä %5$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
 #. %2$s is replaced with the device name (e.g. /dev/sda1),
 #. %3$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted bcache %1$s on %2$s (%3$s) for swap"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr "Luo salattu Bcache %1$s laitteelle %2$s (%3$s) sivutusta varten"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the bcache name (e.g. /dev/bcache0),
 #. %2$s is replaced with the device name (e.g. /dev/sda1),
 #. %3$s is replaced with the size (e.g. 2 GiB),
 #. %4$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted bcache %1$s on %2$s (%3$s) with %4$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu Bcache %1$s laitteelle %2$s (%3$s) tiedostojärjestelmänä %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted partition %1$s (%2$s)"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr "Luo salattu osio %1$s (%2$s)"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted partition %1$s (%2$s) as LVM physical volume"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr "Luo salattu osio %1$s (%2$s) fyysiseksi LVM-osioksi"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the mount point (e.g. /home),
 #. %4$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted partition %1$s (%2$s) for %3$s with %4$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr ""
+"Luo salattu osio %1$s (%2$s), liitospiste %3$s ja tiedostojärjestelmä %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted partition %1$s (%2$s) for swap"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr "Luo salattu osio %1$s (%2$s) sivutusta varten"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encrypted partition %1$s (%2$s) with %3$s"
-msgstr "Luo laajennettu osio %1$s (%2$s)"
+msgstr "Luo salattu osio %1$s (%2$s) tiedostojärjestelmänä %3$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda1)
-#, fuzzy, c-format
+#, c-format
 msgid "Create encryption layer device on %1$s"
-msgstr "Aseta salattu silmukkalaite %1$s"
+msgstr "Luo salattu taso laitteelle %1$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by partition name (e.g. /dev/sda1),
@@ -704,16 +736,16 @@
 
 #. TRANSLATORS:
 #. %1$s is replaced with the names of the devices separated by comma (e.g. 
/dev/sda1, /dev/sda2)
-#, fuzzy, c-format
+#, c-format
 msgid "Create file system btrfs on %1$s"
-msgstr "Luo fyysinen taltio laitteelle %1$s"
+msgstr "Luo Btrfs-tiedostojärjestelmä laitteille %1$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the names of the devices separated by comma (e.g. 
/dev/sda1, /dev/sda2),
 #. %2$s is replaced with the mount point (e.g. /home)
 #, c-format
 msgid "Create file system btrfs on %1$s and mount at %2$s"
-msgstr ""
+msgstr "Luo Btrfs-tiedostojärjestelmä laitteelle %1$s ja liitä se kohtaan %2$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by the device name (e.g. /dev/vda),
@@ -725,15 +757,15 @@
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by partition name (e.g. /dev/dasda1),
 #. %2$s is replaced by size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create implicit partition %1$s (%2$s)"
-msgstr "Luo looginen osio %1$s (%2$s)"
+msgstr "Luo implisiittinen osio %1$s (%2$s)"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/dasda)
-#, fuzzy, c-format
+#, c-format
 msgid "Create implicit partition table on %1$s"
-msgstr "Luo DASD-osiotaulukko laitteelle %1$s"
+msgstr "Luo implisiittinen osiotaulukko laitteelle %1$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by partition name (e.g. /dev/sda1),
@@ -764,40 +796,40 @@
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the partition id string (e.g. Linux LVM)
-#, fuzzy, c-format
+#, c-format
 msgid "Create partition %1$s (%2$s) as %3$s"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr "Luo osio %1$s (%2$s) tunnisteenaan %3$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create partition %1$s (%2$s) as LVM physical volume"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr "Luo osio %1$s (%2$s) fyysiseksi LVM-taltioksi"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the mount point (e.g. /home),
 #. %4$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create partition %1$s (%2$s) for %3$s with %4$s"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr "Luo osio %1$s (%2$s), liitospiste %3$s ja tiedostojärjestelmä %4$s"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB)
-#, fuzzy, c-format
+#, c-format
 msgid "Create partition %1$s (%2$s) for swap"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr "Luo osio %1$s (%2$s) sivutusta varten"
 
 #. TRANSLATORS:
 #. %1$s is replaced with the partition name (e.g. /dev/sda1),
 #. %2$s is replaced with the size (e.g. 2 GiB),
 #. %3$s is replaced with the file system name (e.g. ext4)
-#, fuzzy, c-format
+#, c-format
 msgid "Create partition %1$s (%2$s) with %3$s"
-msgstr "Luo osio %1$s (%2$s)"
+msgstr "Luo osio %1$s (%2$s) tiedostojärjestelmällä %3$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by device name (e.g. /dev/sda1)
@@ -825,17 +857,17 @@
 #. TRANSLATORS:
 #. %1$s is replaced with the subvolume path (e.g. var/log),
 #. %2$s is replaced with the block device name (e.g. /dev/sda1)
-#, fuzzy, c-format
+#, c-format
 msgid "Create subvolume %1$s on %2$s with option 'no copy on write'"
-msgstr "Luo alitaltio %1$s laitteelle %2$s"
+msgstr "Luo alitaltio %1$s laitteelle %2$s valinnalla ”kopioi kirjoittamatta”"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by logical volume name (e.g. root),
 #. %2$s is replaced by size (e.g. 2GiB),
 #. %3$s is replaced by volume group name (e.g. system)
-#, fuzzy, c-format
+#, c-format
 msgid "Create thin logical volume %1$s (%2$s) on volume group %3$s"
-msgstr "Luodaan looginen taltio %1$s (%2$s) taltioryhmään %3$s"
+msgstr "Luo ohut looginen taltio %1$s (%2$s) taltioryhmään %3$s"
 
 #. TRANSLATORS: displayed before action,
 #. %1$s is replaced by logical volume name (e.g. root),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/po/nl.po 
new/libstorage-ng-4.1.119/po/nl.po
--- old/libstorage-ng-4.1.117/po/nl.po  2019-04-26 16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/po/nl.po  2019-05-02 08:04:23.000000000 +0200
@@ -15,8 +15,8 @@
 "Project-Id-Version: libstorage.nl\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-02-25 15:22+0100\n"
-"PO-Revision-Date: 2019-04-04 15:03+0000\n"
-"Last-Translator: Eva van Rein <vista...@globaltextware.nl>\n"
+"PO-Revision-Date: 2019-05-02 06:04+0000\n"
+"Last-Translator: Freek de Kruijf <fr...@opensuse.org>\n"
 "Language-Team: Dutch <https://l10n.opensuse.org/projects/libstorage/";
 "ng-master/nl/>\n"
 "Language: nl\n"
@@ -31,7 +31,7 @@
 "are you serious?!"
 msgstr ""
 "\n"
-"serieus?!"
+"bent u serieus?!"
 
 #. TRANSLATORS: appended after list of value to indicate that some
 #. values have been omitted
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/storage/Devices/DeviceImpl.cc 
new/libstorage-ng-4.1.119/storage/Devices/DeviceImpl.cc
--- old/libstorage-ng-4.1.117/storage/Devices/DeviceImpl.cc     2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Devices/DeviceImpl.cc     2019-05-02 
08:04:23.000000000 +0200
@@ -525,8 +525,8 @@
        Text
        Reallot::text(const CommitData& commit_data) const
        {
-           const Device* device_rhs = get_device(commit_data.actiongraph, RHS);
-           return device_rhs->get_impl().do_reallot_text(reallot_mode, device, 
commit_data.tense);
+           const Device* device_lhs = get_device(commit_data.actiongraph, LHS);
+           return device_lhs->get_impl().do_reallot_text(reallot_mode, device, 
commit_data.tense);
        }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/storage/Devices/LvmVgImpl.h 
new/libstorage-ng-4.1.119/storage/Devices/LvmVgImpl.h
--- old/libstorage-ng-4.1.117/storage/Devices/LvmVgImpl.h       2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Devices/LvmVgImpl.h       2019-05-02 
08:04:23.000000000 +0200
@@ -145,8 +145,9 @@
                                     Tense tense) const override;
        virtual void do_reallot(ReallotMode reallot_mode, const Device* device)
            const override;
-       virtual void do_reduce(const LvmPv* lvm_pv) const;
-       virtual void do_extend(const LvmPv* lvm_pv) const;
+
+       void do_reduce(const LvmPv* lvm_pv) const;
+       void do_extend(const LvmPv* lvm_pv) const;
 
        Text do_reduce_missing_text(Tense tense) const;
        void do_reduce_missing() const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/storage/Devices/MdImpl.cc 
new/libstorage-ng-4.1.119/storage/Devices/MdImpl.cc
--- old/libstorage-ng-4.1.117/storage/Devices/MdImpl.cc 2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Devices/MdImpl.cc 2019-05-02 
08:04:23.000000000 +0200
@@ -1182,6 +1182,8 @@
        cmd_line += !md_user->is_spare() ? " --add" : " --add-spare";
        cmd_line += " " + quote(get_name()) + " " + 
quote(blk_device->get_name());
 
+       storage::wait_for_devices({ blk_device });
+
        SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/storage/Devices/MdImpl.h 
new/libstorage-ng-4.1.119/storage/Devices/MdImpl.h
--- old/libstorage-ng-4.1.117/storage/Devices/MdImpl.h  2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Devices/MdImpl.h  2019-05-02 
08:04:23.000000000 +0200
@@ -156,8 +156,8 @@
        virtual void do_reallot(ReallotMode reallot_mode, const Device* device)
            const override;
 
-       virtual void do_reduce(const BlkDevice* blk_device) const;
-       virtual void do_extend(const BlkDevice* blk_device) const;
+       void do_reduce(const BlkDevice* blk_device) const;
+       void do_extend(const BlkDevice* blk_device) const;
 
        virtual Text do_deactivate_text(Tense tense) const override;
        virtual void do_deactivate() const override;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/storage/Filesystems/BlkFilesystemImpl.cc 
new/libstorage-ng-4.1.119/storage/Filesystems/BlkFilesystemImpl.cc
--- old/libstorage-ng-4.1.117/storage/Filesystems/BlkFilesystemImpl.cc  
2019-04-26 16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Filesystems/BlkFilesystemImpl.cc  
2019-05-02 08:04:23.000000000 +0200
@@ -566,6 +566,8 @@
     void
     BlkFilesystem::Impl::add_modify_actions(Actiongraph::Impl& actiongraph, 
const Device* lhs_base) const
     {
+       Filesystem::Impl::add_modify_actions(actiongraph, lhs_base);
+
        const Impl& lhs = dynamic_cast<const Impl&>(lhs_base->get_impl());
 
        vector<Action::Base*> actions;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libstorage-ng-4.1.117/storage/Filesystems/Btrfs.h 
new/libstorage-ng-4.1.119/storage/Filesystems/Btrfs.h
--- old/libstorage-ng-4.1.117/storage/Filesystems/Btrfs.h       2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Filesystems/Btrfs.h       2019-05-02 
08:04:23.000000000 +0200
@@ -37,7 +37,7 @@
 
 
     /**
-     * Btrfs RAID levels used for metadata and data.
+     * Btrfs RAID levels (aka profiles) used for metadata and data.
      */
     enum class BtrfsRaidLevel
     {
@@ -77,6 +77,8 @@
 
        /**
         * Set the metadata RAID level.
+        *
+        * Not supported for btrfs already existing on disk.
         */
        void set_metadata_raid_level(BtrfsRaidLevel metadata_raid_level);
 
@@ -87,6 +89,8 @@
 
        /**
         * Set the data RAID level.
+        *
+        * Not supported for btrfs already existing on disk.
         */
        void set_data_raid_level(BtrfsRaidLevel data_raid_level);
 
@@ -118,6 +122,8 @@
        /**
         * Remove a block device from the btrfs.
         *
+        * Not supported for btrfs already existing on disk.
+        *
         * @throw Exception
         */
        void remove_device(BlkDevice* blk_device);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/storage/Filesystems/BtrfsImpl.cc 
new/libstorage-ng-4.1.119/storage/Filesystems/BtrfsImpl.cc
--- old/libstorage-ng-4.1.117/storage/Filesystems/BtrfsImpl.cc  2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Filesystems/BtrfsImpl.cc  2019-05-02 
08:04:23.000000000 +0200
@@ -665,4 +665,117 @@
        SystemCmd cmd(cmd_line, SystemCmd::NoThrow);
     }
 
+
+    Text
+    Btrfs::Impl::do_reallot_text(ReallotMode reallot_mode, const Device* 
device, Tense tense) const
+    {
+       Text text;
+
+       switch (reallot_mode)
+       {
+           case ReallotMode::REDUCE:
+               text = tenser(tense,
+                             // TRANSLATORS: displayed before action,
+                             // %1$s is replaced by the device name (e.g. 
/dev/sdc1),
+                             // %2$s is replaced by the device size (e.g. 2.00 
GiB)
+                             // %3$s is replaced by one or more devices (e.g 
/dev/sda1 (2.00 GiB)
+                             // and /dev/sdb2 (2.00 GiB))
+                             _("Remove %1$s (%2$s) from btrfs on %3$s"),
+                             // TRANSLATORS: displayed during action,
+                             // %1$s is replaced by the device name (e.g. 
/dev/sdc1),
+                             // %2$s is replaced by the device size (e.g. 2.00 
GiB)
+                             // %3$s is replaced by one or more devices (e.g 
/dev/sda1 (2.00 GiB)
+                             // and /dev/sdb2 (2.00 GiB))
+                             _("Removing %1$s (%2$s) from btrfs on %3$s"));
+               break;
+
+           case ReallotMode::EXTEND:
+               text = tenser(tense,
+                             // TRANSLATORS: displayed before action,
+                             // %1$s is replaced by the device name (e.g. 
/dev/sdc1),
+                             // %2$s is replaced by the device size (e.g. 2.00 
GiB)
+                             // %3$s is replaced by one or more devices (e.g 
/dev/sda1 (2.00 GiB)
+                             // and /dev/sdb2 (2.00 GiB))
+                             _("Add %1$s (%2$s) to btrfs on %3$s"),
+                             // TRANSLATORS: displayed during action,
+                             // %1$s is replaced by the device name (e.g. 
/dev/sdc1),
+                             // %2$s is replaced by the device size (e.g. 2.00 
GiB)
+                             // %3$s is replaced by one or more devices (e.g 
/dev/sda1 (2.00 GiB)
+                             // and /dev/sdb2 (2.00 GiB))
+                             _("Adding %1$s (%2$s) to btrfs on %3$s"));
+               break;
+
+           default:
+               ST_THROW(LogicException("invalid value for reallot_mode"));
+       }
+
+       const BlkDevice* blk_device = to_blk_device(device);
+
+       return sformat(text, blk_device->get_name(), 
blk_device->get_size_string(),
+                      join(get_blk_devices(), JoinMode::COMMA, 10));
+    }
+
+
+    void
+    Btrfs::Impl::do_reallot(ReallotMode reallot_mode, const Device* device) 
const
+    {
+       const BlkDevice* blk_device = to_blk_device(device);
+
+       switch (reallot_mode)
+       {
+           case ReallotMode::REDUCE:
+               do_reduce(blk_device);
+               return;
+
+           case ReallotMode::EXTEND:
+               do_extend(blk_device);
+               return;
+       }
+
+       ST_THROW(LogicException("invalid value for reallot_mode"));
+    }
+
+
+    void
+    Btrfs::Impl::do_reduce(const BlkDevice* blk_device) const
+    {
+       // TODO EnsureMounted always works on the system devicegraph. This
+       // could fail if reduce and extend actions are run in sequence
+       // (but this is so far not supported).
+
+       EnsureMounted ensure_mounted(get_filesystem(), false);
+
+       string cmd_line = BTRFSBIN " device remove " + 
quote(blk_device->get_name()) + " " +
+           quote(ensure_mounted.get_any_mount_point());
+
+       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+    }
+
+
+    void
+    Btrfs::Impl::do_extend(const BlkDevice* blk_device) const
+    {
+       // TODO See do_reduce above.
+
+       EnsureMounted ensure_mounted(get_filesystem(), false);
+
+       string cmd_line = BTRFSBIN " device add " + 
quote(blk_device->get_name()) + " " +
+           quote(ensure_mounted.get_any_mount_point());
+
+       storage::wait_for_devices({ blk_device });
+
+       SystemCmd cmd(cmd_line, SystemCmd::DoThrow);
+    }
+
+
+    void
+    Btrfs::Impl::add_dependencies(Actiongraph::Impl& actiongraph) const
+    {
+       BlkFilesystem::Impl::add_dependencies(actiongraph);
+
+       // So far only actions that increase the overall size of a
+       // multiple devices btrfs are supported. Thus no actions need
+       // to be ordered here.
+    }
+
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/storage/Filesystems/BtrfsImpl.h 
new/libstorage-ng-4.1.119/storage/Filesystems/BtrfsImpl.h
--- old/libstorage-ng-4.1.117/storage/Filesystems/BtrfsImpl.h   2019-04-26 
16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/storage/Filesystems/BtrfsImpl.h   2019-05-02 
08:04:23.000000000 +0200
@@ -141,8 +141,16 @@
 
        virtual void do_pre_mount() const override;
 
+       virtual Text do_reallot_text(ReallotMode reallot_mode, const Device* 
device, Tense tense) const override;
+       virtual void do_reallot(ReallotMode reallot_mode, const Device* device) 
const override;
+
        void parse_mkfs_output(const vector<string>& stdout);
 
+       void do_reduce(const BlkDevice* blk_device) const;
+       void do_extend(const BlkDevice* blk_device) const;
+
+       virtual void add_dependencies(Actiongraph::Impl& actiongraph) const 
override;
+
     private:
 
         bool configure_snapper;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/Makefile.am 
new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/Makefile.am
--- old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/Makefile.am  
2019-04-26 16:52:00.000000000 +0200
+++ new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/Makefile.am  
2019-05-02 08:04:23.000000000 +0200
@@ -8,7 +8,7 @@
        -lboost_unit_test_framework
 
 check_PROGRAMS =                                                               
\
-       create1.test delete1.test delete2.test
+       create1.test delete1.test delete2.test extend1.test
 
 AM_DEFAULT_SOURCE_EXT = .cc
 
@@ -17,5 +17,6 @@
 EXTRA_DIST =                                                                   
\
        create1-probed.xml create1-staging.xml create1-expected.txt             
\
        delete1-probed.xml delete1-staging.xml delete1-expected.txt             
\
-       delete2-probed.xml delete2-staging.xml delete2-expected.txt
+       delete2-probed.xml delete2-staging.xml delete2-expected.txt             
\
+       extend1-probed.xml extend1-staging.xml extend1-expected.txt
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1-expected.txt 
new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1-expected.txt
--- old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1-expected.txt 
1970-01-01 01:00:00.000000000 +0100
+++ new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1-expected.txt 
2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1 @@
+1 - Add /dev/sdd1 (27.94 GiB) to btrfs on /dev/sdc1 (27.94 GiB) ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1-probed.xml 
new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1-probed.xml
--- old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1-probed.xml   
1970-01-01 01:00:00.000000000 +0100
+++ new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1-probed.xml   
2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,113 @@
+<?xml version="1.0"?>
+<Devicegraph>
+  <Devices>
+    <Disk>
+      <sid>42</sid>
+      <name>/dev/sdd</name>
+      <sysfs-name>sdd</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-8/2-8:1.0/host9/target9:0:0/9:0:0:0/block/sdd</sysfs-path>
+      <region>
+        <length>5860466688</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:8:1.0-scsi-0:0:0:0</udev-path>
+      <udev-id>usb-WD_My_Passport_25E2_575842314436354C33384445-0:0</udev-id>
+      <range>256</range>
+      <rotational>true</rotational>
+      <transport>USB</transport>
+    </Disk>
+    <Disk>
+      <sid>45</sid>
+      <name>/dev/sdc</name>
+      <sysfs-name>sdc</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-7/2-7:1.0/host8/target8:0:0/8:0:0:0/block/sdc</sysfs-path>
+      <region>
+        <length>5860466688</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:7:1.0-scsi-0:0:0:0</udev-path>
+      <udev-id>usb-WD_My_Passport_25E2_57584D31454135463654544A-0:0</udev-id>
+      <range>256</range>
+      <rotational>true</rotational>
+      <transport>USB</transport>
+    </Disk>
+    <Gpt>
+      <sid>55</sid>
+    </Gpt>
+    <Partition>
+      <sid>56</sid>
+      <name>/dev/sdd1</name>
+      <sysfs-name>sdd1</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-8/2-8:1.0/host9/target9:0:0/9:0:0:0/block/sdd/sdd1</sysfs-path>
+      <region>
+        <start>2048</start>
+        <length>58603520</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:8:1.0-scsi-0:0:0:0-part1</udev-path>
+      
<udev-id>usb-WD_My_Passport_25E2_575842314436354C33384445-0:0-part1</udev-id>
+      <type>primary</type>
+      <id>131</id>
+    </Partition>
+    <Gpt>
+      <sid>60</sid>
+    </Gpt>
+    <Partition>
+      <sid>61</sid>
+      <name>/dev/sdc1</name>
+      <sysfs-name>sdc1</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-7/2-7:1.0/host8/target8:0:0/8:0:0:0/block/sdc/sdc1</sysfs-path>
+      <region>
+        <start>2048</start>
+        <length>58603520</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:7:1.0-scsi-0:0:0:0-part1</udev-path>
+      
<udev-id>usb-WD_My_Passport_25E2_57584D31454135463654544A-0:0-part1</udev-id>
+      <type>primary</type>
+      <id>131</id>
+    </Partition>
+    <Btrfs>
+      <sid>77</sid>
+      <uuid>b681716a-248c-4c8d-9176-7c162391bf33</uuid>
+      <metadata-raid-level>DUP</metadata-raid-level>
+      <data-raid-level>SINGLE</data-raid-level>
+    </Btrfs>
+    <BtrfsSubvolume>
+      <sid>78</sid>
+      <id>5</id>
+      <path></path>
+      <default-btrfs-subvolume>true</default-btrfs-subvolume>
+    </BtrfsSubvolume>
+  </Devices>
+  <Holders>
+    <User>
+      <source-sid>42</source-sid>
+      <target-sid>55</target-sid>
+    </User>
+    <Subdevice>
+      <source-sid>55</source-sid>
+      <target-sid>56</target-sid>
+    </Subdevice>
+    <User>
+      <source-sid>45</source-sid>
+      <target-sid>60</target-sid>
+    </User>
+    <Subdevice>
+      <source-sid>60</source-sid>
+      <target-sid>61</target-sid>
+    </Subdevice>
+    <Subdevice>
+      <source-sid>77</source-sid>
+      <target-sid>78</target-sid>
+    </Subdevice>
+    <FilesystemUser>
+      <source-sid>61</source-sid>
+      <target-sid>77</target-sid>
+    </FilesystemUser>
+  </Holders>
+</Devicegraph>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1-staging.xml 
new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1-staging.xml
--- old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1-staging.xml  
1970-01-01 01:00:00.000000000 +0100
+++ new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1-staging.xml  
2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<Devicegraph>
+  <Devices>
+    <Disk>
+      <sid>42</sid>
+      <name>/dev/sdd</name>
+      <sysfs-name>sdd</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-8/2-8:1.0/host9/target9:0:0/9:0:0:0/block/sdd</sysfs-path>
+      <region>
+        <length>5860466688</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:8:1.0-scsi-0:0:0:0</udev-path>
+      <udev-id>usb-WD_My_Passport_25E2_575842314436354C33384445-0:0</udev-id>
+      <range>256</range>
+      <rotational>true</rotational>
+      <transport>USB</transport>
+    </Disk>
+    <Disk>
+      <sid>45</sid>
+      <name>/dev/sdc</name>
+      <sysfs-name>sdc</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-7/2-7:1.0/host8/target8:0:0/8:0:0:0/block/sdc</sysfs-path>
+      <region>
+        <length>5860466688</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:7:1.0-scsi-0:0:0:0</udev-path>
+      <udev-id>usb-WD_My_Passport_25E2_57584D31454135463654544A-0:0</udev-id>
+      <range>256</range>
+      <rotational>true</rotational>
+      <transport>USB</transport>
+    </Disk>
+    <Gpt>
+      <sid>55</sid>
+    </Gpt>
+    <Partition>
+      <sid>56</sid>
+      <name>/dev/sdd1</name>
+      <sysfs-name>sdd1</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-8/2-8:1.0/host9/target9:0:0/9:0:0:0/block/sdd/sdd1</sysfs-path>
+      <region>
+        <start>2048</start>
+        <length>58603520</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:8:1.0-scsi-0:0:0:0-part1</udev-path>
+      
<udev-id>usb-WD_My_Passport_25E2_575842314436354C33384445-0:0-part1</udev-id>
+      <type>primary</type>
+      <id>131</id>
+    </Partition>
+    <Gpt>
+      <sid>60</sid>
+    </Gpt>
+    <Partition>
+      <sid>61</sid>
+      <name>/dev/sdc1</name>
+      <sysfs-name>sdc1</sysfs-name>
+      
<sysfs-path>/devices/pci0000:00/0000:00:14.0/usb2/2-7/2-7:1.0/host8/target8:0:0/8:0:0:0/block/sdc/sdc1</sysfs-path>
+      <region>
+        <start>2048</start>
+        <length>58603520</length>
+        <block-size>512</block-size>
+      </region>
+      <topology/>
+      <udev-path>pci-0000:00:14.0-usb-0:7:1.0-scsi-0:0:0:0-part1</udev-path>
+      
<udev-id>usb-WD_My_Passport_25E2_57584D31454135463654544A-0:0-part1</udev-id>
+      <type>primary</type>
+      <id>131</id>
+    </Partition>
+    <Btrfs>
+      <sid>77</sid>
+      <uuid>b681716a-248c-4c8d-9176-7c162391bf33</uuid>
+      <metadata-raid-level>DUP</metadata-raid-level>
+      <data-raid-level>SINGLE</data-raid-level>
+    </Btrfs>
+    <BtrfsSubvolume>
+      <sid>78</sid>
+      <id>5</id>
+      <path></path>
+      <default-btrfs-subvolume>true</default-btrfs-subvolume>
+    </BtrfsSubvolume>
+  </Devices>
+  <Holders>
+    <User>
+      <source-sid>42</source-sid>
+      <target-sid>55</target-sid>
+    </User>
+    <Subdevice>
+      <source-sid>55</source-sid>
+      <target-sid>56</target-sid>
+    </Subdevice>
+    <User>
+      <source-sid>45</source-sid>
+      <target-sid>60</target-sid>
+    </User>
+    <Subdevice>
+      <source-sid>60</source-sid>
+      <target-sid>61</target-sid>
+    </Subdevice>
+    <Subdevice>
+      <source-sid>77</source-sid>
+      <target-sid>78</target-sid>
+    </Subdevice>
+    <FilesystemUser>
+      <source-sid>56</source-sid>
+      <target-sid>77</target-sid>
+    </FilesystemUser>
+    <FilesystemUser>
+      <source-sid>61</source-sid>
+      <target-sid>77</target-sid>
+    </FilesystemUser>
+  </Holders>
+</Devicegraph>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1.cc 
new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1.cc
--- old/libstorage-ng-4.1.117/testsuite/dependencies/btrfs/extend1.cc   
1970-01-01 01:00:00.000000000 +0100
+++ new/libstorage-ng-4.1.119/testsuite/dependencies/btrfs/extend1.cc   
2019-05-02 08:04:23.000000000 +0200
@@ -0,0 +1,20 @@
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MODULE libstorage
+
+#include <boost/test/unit_test.hpp>
+
+#include "storage/Utils/Logger.h"
+#include "testsuite/helpers/TsCmp.h"
+
+
+using namespace storage;
+
+
+BOOST_AUTO_TEST_CASE(dependencies)
+{
+    set_logger(get_stdout_logger());
+
+    TsCmpActiongraph cmp("extend1");
+    BOOST_CHECK_MESSAGE(cmp.ok(), cmp);
+}


Reply via email to