virt-manager-4.1.0-3.el9
- progress: Fix showing correct final total (rhbz#2156247) - virtinstall: Fix the allocating disk size printed by the progress bar (rhbz#2156247) - virtinstall: Hide total_size in the progress bar if it doesn't need (rhbz#2156247) Resolves: rhbz#2156247
This commit is contained in:
parent
8e280684ea
commit
d1e6dc602b
|
@ -0,0 +1,126 @@
|
||||||
|
From 3702eed072ae7b2d52398a3c9b1c1feb04ffdce3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cole Robinson <crobinso@redhat.com>
|
||||||
|
Date: Wed, 14 Dec 2022 12:57:10 -0500
|
||||||
|
Subject: [PATCH] progress: Fix showing correct final total
|
||||||
|
|
||||||
|
Reproducer:
|
||||||
|
Reproducer:
|
||||||
|
./virt-install --connect test:///default \
|
||||||
|
--location tests/data/fakemedia/fake-f26-netinst.iso
|
||||||
|
|
||||||
|
Before:
|
||||||
|
Starting install...
|
||||||
|
Retrieving 'vmlinuz' | 0 B 00:00:00 ...
|
||||||
|
Retrieving 'initrd.img' | 0 B 00:00:00 ...
|
||||||
|
|
||||||
|
After:
|
||||||
|
Starting install...
|
||||||
|
Retrieving 'vmlinuz' | 9 B 00:00:00 ...
|
||||||
|
Retrieving 'initrd.img' | 9 B 00:00:00 ...
|
||||||
|
|
||||||
|
progress.end() currently only reports the total amount of bytes
|
||||||
|
that were last written to the UI. It should report the total amount
|
||||||
|
that's been passed to update().
|
||||||
|
|
||||||
|
Reported-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
|
||||||
|
Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
||||||
|
(cherry picked from commit 4114fa1aa827b836d3a1d11c2ac2d367c9bb0463)
|
||||||
|
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2156247
|
||||||
|
|
||||||
|
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
||||||
|
---
|
||||||
|
tests/data/meter/meter1.txt | 2 +-
|
||||||
|
tests/data/meter/meter2.txt | 2 +-
|
||||||
|
tests/data/meter/meter3.txt | 2 +-
|
||||||
|
tests/data/meter/meter5.txt | 2 +-
|
||||||
|
tests/data/meter/meter6.txt | 2 +-
|
||||||
|
tests/test_misc.py | 4 +++-
|
||||||
|
virtinst/_progresspriv.py | 4 ++--
|
||||||
|
7 files changed, 10 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/data/meter/meter1.txt b/tests/data/meter/meter1.txt
|
||||||
|
index a3f7c7d2f..7e154c972 100644
|
||||||
|
--- a/tests/data/meter/meter1.txt
|
||||||
|
+++ b/tests/data/meter/meter1.txt
|
||||||
|
@@ -9,4 +9,4 @@ Meter text test 20% [=== ] 413 B/s | 2.0 kB 00:19 ETA
|
||||||
|
|
||||||
|
Meter text test 40% [======- ] 731 B/s | 3.9 kB 00:08 ETA
|
||||||
|
|
||||||
|
-Meter text test | 3.9 kB 00:04 ...
|
||||||
|
+Meter text test | 4.4 kB 00:04 ...
|
||||||
|
diff --git a/tests/data/meter/meter2.txt b/tests/data/meter/meter2.txt
|
||||||
|
index 93e93dc31..7ccc31636 100644
|
||||||
|
--- a/tests/data/meter/meter2.txt
|
||||||
|
+++ b/tests/data/meter/meter2.txt
|
||||||
|
@@ -9,4 +9,4 @@ Meter text test 20% [=======
|
||||||
|
|
||||||
|
Meter text test 40% [============== ] 731 B/s | 3.9 kB 00:00:08 ETA
|
||||||
|
|
||||||
|
-Meter text test | 3.9 kB 00:00:04 ...
|
||||||
|
+Meter text test | 4.4 kB 00:00:04 ...
|
||||||
|
diff --git a/tests/data/meter/meter3.txt b/tests/data/meter/meter3.txt
|
||||||
|
index 474e40f74..6f66608fe 100644
|
||||||
|
--- a/tests/data/meter/meter3.txt
|
||||||
|
+++ b/tests/data/meter/meter3.txt
|
||||||
|
@@ -4,4 +4,4 @@ Meter text test 67 B/s | 200 B 00:02
|
||||||
|
Meter text test 413 B/s | 2.0 kB 00:03
|
||||||
|
Meter text test 731 B/s | 3.9 kB 00:04
|
||||||
|
|
||||||
|
-Meter text test | 3.9 kB 00:04
|
||||||
|
+Meter text test | 4.4 kB 00:04
|
||||||
|
diff --git a/tests/data/meter/meter5.txt b/tests/data/meter/meter5.txt
|
||||||
|
index 1d232a5de..7142a9718 100644
|
||||||
|
--- a/tests/data/meter/meter5.txt
|
||||||
|
+++ b/tests/data/meter/meter5.txt
|
||||||
|
@@ -9,4 +9,4 @@ Meter text test 1000% [================] 413 B/s | 2.0 kB --:-- ETA
|
||||||
|
|
||||||
|
Meter text test 2000% [================] 731 B/s | 3.9 kB --:-- ETA
|
||||||
|
|
||||||
|
-Meter text test | 3.9 kB 00:04 !!!
|
||||||
|
+Meter text test | 4.4 kB 00:04 !!!
|
||||||
|
diff --git a/tests/data/meter/meter6.txt b/tests/data/meter/meter6.txt
|
||||||
|
index 07d99bfd8..dd5d3d47b 100644
|
||||||
|
--- a/tests/data/meter/meter6.txt
|
||||||
|
+++ b/tests/data/meter/meter6.txt
|
||||||
|
@@ -9,4 +9,4 @@ Meter text test 100% [================] 413 B/s | 2.0 kB --:-- ETA
|
||||||
|
|
||||||
|
Meter text test 100% [================] 731 B/s | 3.9 kB --:-- ETA
|
||||||
|
|
||||||
|
-Meter text test | 3.9 kB 00:04
|
||||||
|
+Meter text test | 4.4 kB 00:04
|
||||||
|
diff --git a/tests/test_misc.py b/tests/test_misc.py
|
||||||
|
index aa610f4df..20f5a626b 100644
|
||||||
|
--- a/tests/test_misc.py
|
||||||
|
+++ b/tests/test_misc.py
|
||||||
|
@@ -178,7 +178,9 @@ def test_misc_meter():
|
||||||
|
m.update(2000)
|
||||||
|
with unittest.mock.patch("time.time", return_value=5.0):
|
||||||
|
m.update(4000)
|
||||||
|
- with unittest.mock.patch("time.time", return_value=6.0):
|
||||||
|
+ with unittest.mock.patch("time.time", return_value=5.1):
|
||||||
|
+ m.update(4500)
|
||||||
|
+ with unittest.mock.patch("time.time", return_value=5.5):
|
||||||
|
m.end()
|
||||||
|
|
||||||
|
# Basic output testing
|
||||||
|
diff --git a/virtinst/_progresspriv.py b/virtinst/_progresspriv.py
|
||||||
|
index 5a31a18cc..a035c9c43 100644
|
||||||
|
--- a/virtinst/_progresspriv.py
|
||||||
|
+++ b/virtinst/_progresspriv.py
|
||||||
|
@@ -112,10 +112,10 @@ class BaseMeter:
|
||||||
|
assert type(amount_read) is int
|
||||||
|
|
||||||
|
now = time.time()
|
||||||
|
+ self.last_amount_read = amount_read
|
||||||
|
+ self.re.update(amount_read, now)
|
||||||
|
if (not self.last_update_time or
|
||||||
|
(now >= self.last_update_time + self.update_period)):
|
||||||
|
- self.re.update(amount_read, now)
|
||||||
|
- self.last_amount_read = amount_read
|
||||||
|
self.last_update_time = now
|
||||||
|
self._do_update(amount_read)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.39.0
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
From f68b3667591ab5f9edb9a40f9a7c0c798c923bc4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
|
||||||
|
Date: Wed, 9 Nov 2022 18:33:56 +0900
|
||||||
|
Subject: [PATCH] virtinstall: Fix the allocating disk size printed by the
|
||||||
|
progress bar
|
||||||
|
|
||||||
|
When a sparse file is created during a disk allocation,
|
||||||
|
virt-install prints not the created disk size but a sparse file size.
|
||||||
|
|
||||||
|
Therefore, we fix to print the created disk size during disk allocation
|
||||||
|
instead of the size of the sparse file by updating the meter with the
|
||||||
|
self.capacity.
|
||||||
|
|
||||||
|
Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
|
||||||
|
Signed-off-by: Haruka Ohata <ohata.haruka@fujitsu.com>
|
||||||
|
(cherry picked from commit 39c7a443146433766e4e71e48ab59145c74924b3)
|
||||||
|
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2156247
|
||||||
|
|
||||||
|
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
||||||
|
---
|
||||||
|
virtinst/storage.py | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/virtinst/storage.py b/virtinst/storage.py
|
||||||
|
index 509f5cb06..617b05e0d 100644
|
||||||
|
--- a/virtinst/storage.py
|
||||||
|
+++ b/virtinst/storage.py
|
||||||
|
@@ -697,6 +697,7 @@ class StorageVolume(_StorageObject):
|
||||||
|
log.debug("Using vol create flags=%s", createflags)
|
||||||
|
vol = self.pool.createXML(xml, createflags)
|
||||||
|
|
||||||
|
+ meter.update(self.capacity)
|
||||||
|
meter.end()
|
||||||
|
log.debug("Storage volume '%s' install complete.", self.name)
|
||||||
|
return vol
|
||||||
|
--
|
||||||
|
2.39.0
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
From 91cd135f66b517cf247d031966c2f33343c23aa3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
|
||||||
|
Date: Wed, 9 Nov 2022 18:33:57 +0900
|
||||||
|
Subject: [PATCH] virtinstall: Hide total_size in the progress bar if it
|
||||||
|
doesn't need
|
||||||
|
|
||||||
|
virt-install prints the total_size value to the progress bar even if it
|
||||||
|
is meaningless.
|
||||||
|
This value can be confusing to user, so for execute prosess that doesn't
|
||||||
|
copy files (total_size = 0B), we hide the total_size value.
|
||||||
|
For example, 'Creating domain...' doesn't need to print the total_size
|
||||||
|
value.
|
||||||
|
|
||||||
|
Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
|
||||||
|
Signed-off-by: Haruka Ohata <ohata.haruka@fujitsu.com>
|
||||||
|
(cherry picked from commit 6ec00474a659158f20248d6af3771d1a12ddac7b)
|
||||||
|
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2156247
|
||||||
|
|
||||||
|
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
||||||
|
---
|
||||||
|
tests/data/meter/meter-zero.txt | 4 ++++
|
||||||
|
tests/test_misc.py | 14 ++++++++++++++
|
||||||
|
virtinst/_progresspriv.py | 8 ++++++--
|
||||||
|
3 files changed, 24 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 tests/data/meter/meter-zero.txt
|
||||||
|
|
||||||
|
diff --git a/tests/data/meter/meter-zero.txt b/tests/data/meter/meter-zero.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..fc81f21fd
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/tests/data/meter/meter-zero.txt
|
||||||
|
@@ -0,0 +1,4 @@
|
||||||
|
+
|
||||||
|
+Meter text test 100% [================] 0 B/s | 0 B --:-- ETA
|
||||||
|
+
|
||||||
|
+Meter text test | 00:02
|
||||||
|
diff --git a/tests/test_misc.py b/tests/test_misc.py
|
||||||
|
index 20f5a626b..2cabc3382 100644
|
||||||
|
--- a/tests/test_misc.py
|
||||||
|
+++ b/tests/test_misc.py
|
||||||
|
@@ -224,6 +224,20 @@ def test_misc_meter():
|
||||||
|
out = meter.output.getvalue().replace("\r", "\n")
|
||||||
|
utils.diff_compare(out, os.path.join(utils.DATADIR, "meter", "meter6.txt"))
|
||||||
|
|
||||||
|
+ def _test_meter_zero(m, startval=0, text="Meter text test"):
|
||||||
|
+ with unittest.mock.patch("time.time", return_value=1.0):
|
||||||
|
+ m.start(text, startval)
|
||||||
|
+ with unittest.mock.patch("time.time", return_value=3.0):
|
||||||
|
+ m.update(0)
|
||||||
|
+ with unittest.mock.patch("time.time", return_value=3.1):
|
||||||
|
+ m.end()
|
||||||
|
+
|
||||||
|
+ # meter with size 0 and startval size 0
|
||||||
|
+ meter = _progresspriv.TextMeter(output=io.StringIO())
|
||||||
|
+ _test_meter_zero(meter, 0)
|
||||||
|
+ out = meter.output.getvalue().replace("\r", "\n")
|
||||||
|
+ utils.diff_compare(out, os.path.join(utils.DATADIR, "meter", "meter-zero.txt"))
|
||||||
|
+
|
||||||
|
# BaseMeter coverage
|
||||||
|
meter = _progresspriv.BaseMeter()
|
||||||
|
_test_meter_values(meter)
|
||||||
|
diff --git a/virtinst/_progresspriv.py b/virtinst/_progresspriv.py
|
||||||
|
index a035c9c43..207c64796 100644
|
||||||
|
--- a/virtinst/_progresspriv.py
|
||||||
|
+++ b/virtinst/_progresspriv.py
|
||||||
|
@@ -247,11 +247,15 @@ class TextMeter(BaseMeter):
|
||||||
|
tl = TerminalLine(8)
|
||||||
|
# For big screens, make it more readable.
|
||||||
|
use_hours = bool(tl.llen > 80)
|
||||||
|
- ui_size = tl.add(' | %5sB' % total_size)
|
||||||
|
ui_time = tl.add(' %s' % format_time(self.re.elapsed_time(),
|
||||||
|
use_hours))
|
||||||
|
ui_end, not_done = _term_add_end(tl, self.size, amount_read)
|
||||||
|
- dummy = not_done
|
||||||
|
+ if not not_done and amount_read == 0:
|
||||||
|
+ # Doesn't need to print total_size
|
||||||
|
+ ui_size = tl.add(' | %5s ' % ' ')
|
||||||
|
+ else:
|
||||||
|
+ ui_size = tl.add(' | %5sB' % total_size)
|
||||||
|
+
|
||||||
|
out = '\r%-*.*s%s%s%s\n' % (tl.rest(), tl.rest(), self.text,
|
||||||
|
ui_size, ui_time, ui_end)
|
||||||
|
self.output.write(out)
|
||||||
|
--
|
||||||
|
2.39.0
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
Name: virt-manager
|
Name: virt-manager
|
||||||
Version: 4.1.0
|
Version: 4.1.0
|
||||||
Release: 2%{?dist}%{?extra_release}
|
Release: 3%{?dist}%{?extra_release}
|
||||||
%global verrel %{version}-%{release}
|
%global verrel %{version}-%{release}
|
||||||
|
|
||||||
Summary: Desktop tool for managing virtual machines via libvirt
|
Summary: Desktop tool for managing virtual machines via libvirt
|
||||||
|
@ -20,6 +20,9 @@ Source1: symlinks
|
||||||
|
|
||||||
Patch1: virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch
|
Patch1: virt-manager-cloner-Sync-uuid-and-sysinfo-system-uuid.patch
|
||||||
Patch2: virt-manager-virtinstall-fix-regression-with-boot-and-no-install-method.patch
|
Patch2: virt-manager-virtinstall-fix-regression-with-boot-and-no-install-method.patch
|
||||||
|
Patch3: virt-manager-progress-Fix-showing-correct-final-total.patch
|
||||||
|
Patch4: virt-manager-virtinstall-Fix-the-allocating-disk-size-printed-by-the-progress-bar.patch
|
||||||
|
Patch5: virt-manager-virtinstall-Hide-total_size-in-the-progress-bar-if-it-doesn-t-need.patch
|
||||||
|
|
||||||
|
|
||||||
Requires: virt-manager-common = %{verrel}
|
Requires: virt-manager-common = %{verrel}
|
||||||
|
@ -185,6 +188,11 @@ git config gc.auto 0
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Feb 1 2023 Jonathon Jongsma <jjongsma@redhat.com> - 4.1.0-3
|
||||||
|
- progress: Fix showing correct final total (rhbz#2156247)
|
||||||
|
- virtinstall: Fix the allocating disk size printed by the progress bar (rhbz#2156247)
|
||||||
|
- virtinstall: Hide total_size in the progress bar if it doesn't need (rhbz#2156247)
|
||||||
|
|
||||||
* Mon Dec 5 2022 Jonathon Jongsma <jjongsma@redhat.com> - 4.1.0-2
|
* Mon Dec 5 2022 Jonathon Jongsma <jjongsma@redhat.com> - 4.1.0-2
|
||||||
- virtinstall: fix regression with --boot and no install method (rhbz#2144885)
|
- virtinstall: fix regression with --boot and no install method (rhbz#2144885)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue