[python-virtinst/f16] virt-install: Fix --initrd-inject Fix changing disk bus in virt-manager Fix remote URL installs as r

Cole Robinson crobinso at fedoraproject.org
Tue Sep 27 18:00:36 UTC 2011


commit 953b9fd3d2db3c88b37b8753dfda9bf344eff179
Author: Cole Robinson <crobinso at redhat.com>
Date:   Tue Sep 27 14:02:52 2011 -0400

    virt-install: Fix --initrd-inject
    Fix changing disk bus in virt-manager
    Fix remote URL installs as root

 python-virtinst.spec             |   16 +++++++++-
 virtinst-fix-initrd-inject.patch |   56 ++++++++++++++++++++++++++++++++++
 virtinst-fix-remote-url.patch    |   62 ++++++++++++++++++++++++++++++++++++++
 virtinst-fix-vmm-disk-bus.patch  |   20 ++++++++++++
 4 files changed, 153 insertions(+), 1 deletions(-)
---
diff --git a/python-virtinst.spec b/python-virtinst.spec
index ceeca1b..4f64a96 100644
--- a/python-virtinst.spec
+++ b/python-virtinst.spec
@@ -1,7 +1,7 @@
 # -*- rpm-spec -*-
 
 %define _version 0.600.0
-%define _release 4
+%define _release 5
 
 %define with_rhel6_defaults 0
 %define with_selinux 1
@@ -38,6 +38,12 @@ Patch1: %{appname}-fix-po-install.patch
 Patch2: %{appname}-catch-version-errs.patch
 # Regenerate outdated man pages
 Patch3: %{appname}-regenerate-man-pages.patch
+# virt-install: Fix --initrd-inject
+Patch4: %{appname}-fix-initrd-inject.patch
+# Fix changing disk bus in virt-manager
+Patch5: %{appname}-fix-vmm-disk-bus.patch
+# Fix remote URL installs as root
+Patch6: %{appname}-fix-remote-url.patch
 
 License: GPLv2+
 Group: Development/Libraries
@@ -67,6 +73,9 @@ and install new VMs) and virt-clone (clone an existing virtual machine).
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
 
 %build
 %if %{with_rhel6_defaults}
@@ -103,6 +112,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_bindir}/virt-convert
 
 %changelog
+* Tue Sep 27 2011 Cole Robinson <crobinso at redhat.com> - 0.600.0-5
+- virt-install: Fix --initrd-inject
+- Fix changing disk bus in virt-manager
+- Fix remote URL installs as root
+
 * Tue Aug 02 2011 Cole Robinson <crobinso at redhat.com> - 0.600.0-4
 - Bump to fix build number
 
diff --git a/virtinst-fix-initrd-inject.patch b/virtinst-fix-initrd-inject.patch
new file mode 100644
index 0000000..f9ef02c
--- /dev/null
+++ b/virtinst-fix-initrd-inject.patch
@@ -0,0 +1,56 @@
+commit b7054426336929abb0ab0d822ad208a11d418904
+Author: Cole Robinson <crobinso at redhat.com>
+Date:   Tue Aug 23 15:35:32 2011 -0400
+
+    virt-install: Fix --initrd-inject
+    
+    And add unit tests for it!
+
+diff --git a/tests/cli-test-xml/faketree/images/pxeboot/initrd.img b/tests/cli-test-xml/faketree/images/pxeboot/initrd.img
+index 0f3339f..256e89a 100644
+Binary files a/tests/cli-test-xml/faketree/images/pxeboot/initrd.img and b/tests/cli-test-xml/faketree/images/pxeboot/initrd.img differ
+diff --git a/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz b/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz
+index fa797a2..af1a261 100644
+Binary files a/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz and b/tests/cli-test-xml/faketree/images/pxeboot/vmlinuz differ
+diff --git a/tests/clitest.py b/tests/clitest.py
+index 7f332dc..26fc68e 100644
+--- a/tests/clitest.py
++++ b/tests/clitest.py
+@@ -265,6 +265,11 @@ args_dict = {
+         "--arch i486 --pxe",
+         # Directory tree URL install
+         "--hvm --location %(TREEDIR)s",
++        # initrd-inject
++        "--hvm --location %(TREEDIR)s --initrd-inject virt-install --extra-args ks=file:/virt-install",
++        # initrd-inject with manual kernel/initrd
++        "--hvm --location %(TREEDIR)s --initrd-inject virt-install --extra-args ks=file:/virt-install",
++        # Directory tree URL install with extra-args
+         # Directory tree URL install with extra-args
+         "--hvm --location %(TREEDIR)s --extra-args console=ttyS0",
+         # Directory tree CDROM install
+diff --git a/virtinst/DistroInstaller.py b/virtinst/DistroInstaller.py
+index 88963db..0bfe5b0 100644
+--- a/virtinst/DistroInstaller.py
++++ b/virtinst/DistroInstaller.py
+@@ -270,11 +270,10 @@ class DistroInstaller(Installer.Installer):
+                            transient=transient)
+         self.install_devices.append(disk)
+ 
+-    def _perform_initrd_injections(self):
++    def _perform_initrd_injections(self, initrd):
+         """
+         Insert files into the root directory of the initial ram disk
+         """
+-        initrd = self._install_bootconfig.initrd
+         tempdir = tempfile.mkdtemp(dir=self.scratchdir)
+         os.chmod(tempdir, 0775)
+ 
+@@ -379,7 +378,7 @@ class DistroInstaller(Installer.Installer):
+             self._tmpfiles.append(initrdfn)
+ 
+         if self._initrd_injections:
+-            self._perform_initrd_injections()
++            self._perform_initrd_injections(initrdfn)
+ 
+         # If required, upload media to an accessible guest location
+         kernelfn, initrdfn = self._upload_media(guest, meter,
diff --git a/virtinst-fix-remote-url.patch b/virtinst-fix-remote-url.patch
new file mode 100644
index 0000000..0d5839f
--- /dev/null
+++ b/virtinst-fix-remote-url.patch
@@ -0,0 +1,62 @@
+commit 9ad2e3a68b8f5cc1b5c11588dc1c4d5edcca3deb
+Author: Cole Robinson <crobinso at redhat.com>
+Date:   Tue Aug 30 14:54:47 2011 -0400
+
+    VirtualDisk: Fix logic error determining if we are creating storage
+    
+    If creating a storage volume, the logic would fall through and check if
+    the path existed locally. This isn't valid for remote connections.
+    
+    Addtionally cleanup similar functions to be easier to read and hopefully
+    avoid these problems in the future.
+
+diff --git a/virtinst/VirtualDisk.py b/virtinst/VirtualDisk.py
+index 87b72ad..6ea3bfd 100644
+--- a/virtinst/VirtualDisk.py
++++ b/virtinst/VirtualDisk.py
+@@ -1123,23 +1123,38 @@ class VirtualDisk(VirtualDevice):
+         Return bool representing if managed storage parameters have
+         been explicitly specified or filled in
+         """
+-        return (self.vol_object != None or self.vol_install != None or
+-                self._pool_object != None)
++        return bool(self.vol_object != None or
++                    self.vol_install != None or
++                    self._pool_object != None)
+ 
+     def __creating_storage(self):
+         """
+         Return True if the user requested us to create a device
+         """
+-        return not (self.__no_storage() or
+-                    (self.__managed_storage() and
+-                     self.vol_object or self._pool_object) or
+-                    (self.path and os.path.exists(self.path)))
++        if self.__no_storage():
++            return False
++
++        if self.__managed_storage():
++            if self.vol_object or self._pool_object:
++                return False
++            return True
++
++        if (not self.is_remote() and
++            self.path and
++            os.path.exists(self.path)):
++            return False
++
++        return True
+ 
+     def __no_storage(self):
+         """
+         Return True if no path or storage was specified
+         """
+-        return (not self.__managed_storage() and not self.path)
++        if self.__managed_storage():
++            return False
++        if self.path:
++            return False
++        return True
+ 
+ 
+     def _storage_security_label(self):
diff --git a/virtinst-fix-vmm-disk-bus.patch b/virtinst-fix-vmm-disk-bus.patch
new file mode 100644
index 0000000..eb6ec02
--- /dev/null
+++ b/virtinst-fix-vmm-disk-bus.patch
@@ -0,0 +1,20 @@
+commit 061668208fa6cd8f45cf66dd921a56386de3f3b5
+Author: Cole Robinson <crobinso at redhat.com>
+Date:   Mon Aug 29 13:12:32 2011 -0400
+
+    VirtualDeviceAddress: Only clear XML if not building from scratch
+
+diff --git a/virtinst/VirtualDevice.py b/virtinst/VirtualDevice.py
+index 386eb00..869d50e 100644
+--- a/virtinst/VirtualDevice.py
++++ b/virtinst/VirtualDevice.py
+@@ -170,7 +170,8 @@ class VirtualDeviceAddress(XMLBuilderDomain):
+         self._unit = None
+         self._port = None
+ 
+-        self._remove_child_xpath("./address")
++        if self._is_parse():
++            self._remove_child_xpath("./address")
+ 
+     def _get_type(self):
+         return self._type


More information about the scm-commits mailing list