This commit is contained in:
parent
977f1454a2
commit
74845c3584
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6ad1afc9b6fcf69d1d19d02091d59524974dcb77636857f339a17f9e108b2f9e
|
||||
size 1844922
|
3
virt-manager-0.7.0.tar.gz
Normal file
3
virt-manager-0.7.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e4cf8368b70017717cafe1b751f4206ea0820c3f1245c53572dd13bc881a152e
|
||||
size 2010911
|
@ -1,3 +1,18 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 30 09:46:58 MDT 2009 - dpmerrill@novell.com
|
||||
|
||||
- Add dbus-1-x11 dependency for minimal installations
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 21 15:00:49 MDT 2009 - dpmerrill@novell.com
|
||||
|
||||
- Update to virt-manager-0.7.0 and virtinst-0.400.3
|
||||
Improved KVM support
|
||||
Added support for libvirt storage/network pools
|
||||
Details and Console windows are combined
|
||||
Added scaling for VM console window
|
||||
Simple VM migration support
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 2 01:54:40 CET 2009 - ro@suse.de
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package virt-manager (Version 0.5.3)
|
||||
# spec file for package virt-manager (Version 0.7.0)
|
||||
#
|
||||
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
@ -22,11 +22,11 @@ Name: virt-manager
|
||||
%define gsysconfdir /etc
|
||||
%define gconftool /usr/bin/gconftool-2
|
||||
%define virtinst_maj 0
|
||||
%define virtinst_min 300
|
||||
%define virtinst_rel 2
|
||||
%define virtinst_min 400
|
||||
%define virtinst_rel 3
|
||||
%define virtinst_name virtinst-%{virtinst_maj}.%{virtinst_min}.%{virtinst_rel}
|
||||
Version: 0.5.3
|
||||
Release: 67
|
||||
Version: 0.7.0
|
||||
Release: 1
|
||||
Summary: Virtual Machine Manager
|
||||
Group: System/Monitoring
|
||||
License: LGPL v2.1 or later
|
||||
@ -36,18 +36,15 @@ ExclusiveArch: %{ix86} x86_64
|
||||
Source0: virt-manager-%{version}.tar.gz
|
||||
Source1: %{virtinst_name}.tar.gz
|
||||
Patch0: virtman-desktop.diff
|
||||
Patch1: virtman-dbus-query.diff
|
||||
Patch2: virtman-xen-uri.diff
|
||||
Patch1: virtman-vminstall.diff
|
||||
Patch2: virtman-netcat.diff
|
||||
Patch3: virtman-pointer.diff
|
||||
Patch4: virtman-detect.diff
|
||||
Patch5: virtman-timewatch.diff
|
||||
Patch6: virtman-vminstall.diff
|
||||
Patch7: virtman-vif.diff
|
||||
Patch8: virtman-hardware.diff
|
||||
Patch9: virtman-netcat.diff
|
||||
Patch50: virtinst-vif.diff
|
||||
Patch100: virtman-misc.diff
|
||||
# These two are just the oldest version tested
|
||||
Patch4: virtman-cdrom.diff
|
||||
Patch5: virtman-kvm.diff
|
||||
Patch6: virtman-bridge.diff
|
||||
Patch7: virtman-manager.diff
|
||||
Patch8: virtman-help.diff
|
||||
Patch51: virtinst-cdrom.diff
|
||||
# Requires: pygtk2 >= 1.99.12-6
|
||||
Requires: python-gtk
|
||||
# Requires: gnome-python2-gconf >= 1.99.11-7
|
||||
@ -58,7 +55,7 @@ Requires: vm-install
|
||||
# Definitely does not work with earlier due to python API changes
|
||||
# Requires: dbus-python >= 0.61
|
||||
Requires: dbus-1-python
|
||||
# Might work with earlier, but this is what we've tested
|
||||
Requires: dbus-1-x11
|
||||
#Requires: gnome-keyring >= 0.4.9
|
||||
Requires: gnome-keyring
|
||||
# Minimum we've tested with
|
||||
@ -67,7 +64,6 @@ Requires: gnome-keyring
|
||||
# disabled
|
||||
# Requires: gnome-python2-gnomekeyring >= 2.15.4
|
||||
# Requires: gnome-python2-gnomevfs >= 2.15.4
|
||||
# Minimum we've tested with
|
||||
Requires: libxml2-python >= 2.6.23
|
||||
# Required to install Xen & QEMU guests
|
||||
# Requires: python-virtinst >= 0.300.2
|
||||
@ -82,20 +78,22 @@ Requires: scrollkeeper
|
||||
# For console widget
|
||||
# Requires: gtk-vnc-python
|
||||
Requires: python-gtk-vnc
|
||||
# Requires: librsvg added to avoid problems with minimal template
|
||||
Requires: librsvg
|
||||
Requires: netcat
|
||||
# Add requires for non Xen installations
|
||||
Requires: python-urlgrabber
|
||||
BuildRequires: python
|
||||
Requires: vm-install
|
||||
#rpmlint BuildRequires: python
|
||||
BuildRequires: gtk2-devel
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: gettext
|
||||
BuildRequires: scrollkeeper
|
||||
BuildRequires: intltool
|
||||
BuildRequires: python-gtk
|
||||
#rpmlint BuildRequires: python-gtk
|
||||
BuildRequires: python-gtk-devel
|
||||
BuildRequires: python-gobject2-devel
|
||||
BuildRequires: gconf2
|
||||
BuildRequires: gconf2-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: update-desktop-files
|
||||
# virtinst BuildRequires
|
||||
@ -128,13 +126,11 @@ Authors:
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch100 -p1
|
||||
pushd $RPM_BUILD_DIR/%{virtinst_name}
|
||||
%patch50 -p1
|
||||
%patch51 -p1
|
||||
popd
|
||||
sed -i -e "s@sr\@Latn@sr\@latin@" configure
|
||||
mv po/sr@Latn.po po/sr@latin.po
|
||||
# sed -i -e "s@sr\@Latn@sr\@latin@" configure
|
||||
# mv po/sr@Latn.po po/sr@latin.po
|
||||
|
||||
%build
|
||||
# autoreconf -i
|
||||
@ -148,17 +144,24 @@ popd
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
pushd $RPM_BUILD_DIR/%{virtinst_name}
|
||||
python setup.py install --prefix=%{_prefix} --root=$RPM_BUILD_ROOT --install-lib=%{_datadir}/virt-manager
|
||||
# remove unsued files
|
||||
rm -f $RPM_BUILD_ROOT/usr/bin/virt-clone
|
||||
rm -f $RPM_BUILD_ROOT/usr/bin/virt-image
|
||||
rm -f $RPM_BUILD_ROOT/usr/bin/virt-install
|
||||
rm -f $RPM_BUILD_ROOT/usr/bin/virt-convert
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/ja/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/pl/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/fr/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/it/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/sr/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/pt_BR/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/sr@latin/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/locale/zh_CN/LC_MESSAGES/virtinst.mo
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/virt-clone.1
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/virt-image.1
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/virt-install.1
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/virt-convert.1
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man5/virt-image.5
|
||||
rm -f $RPM_BUILD_ROOT/usr/share/virt-manager/virtinst-0.300.2-py2.?.egg-info
|
||||
# rm -f $RPM_BUILD_ROOT/usr/share/virt-manager/virtinst-0.400.3-py2.?.egg-info
|
||||
popd
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/sparkline.a
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/sparkline.la
|
||||
@ -171,9 +174,9 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lst
|
||||
%suse_update_desktop_file %{name} X-SuSE-YaST-Virtualization
|
||||
sed -i -e 's/Categories=.*/Categories=Qt;X-SuSE-YaST;X-SuSE-YaST-Virtualization;/' $RPM_BUILD_ROOT/%{_datadir}/applications/YaST2/%{name}.desktop
|
||||
# Nuking these because old version didnt have any
|
||||
rm -rf $RPM_BUILD_ROOT/usr/share/gnome
|
||||
# rm -rf $RPM_BUILD_ROOT/usr/share/gnome
|
||||
# Also fixing the %{name}.lang file forcibly.
|
||||
sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
# sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
|
||||
%clean
|
||||
# rm -rf $RPM_BUILD_ROOT
|
||||
@ -188,10 +191,10 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
%doc COPYING AUTHORS ChangeLog
|
||||
# %dir %attr(775,root,root) /etc/gconf
|
||||
# %dir %attr(775,root,root) /etc/gconf/schemas
|
||||
%{gsysconfdir}/gconf/schemas/%{name}.schemas
|
||||
%config %{gsysconfdir}/gconf/schemas/%{name}.schemas
|
||||
%{_bindir}/%{name}
|
||||
%{_libexecdir}/%{name}-launch
|
||||
%{_libdir}/%{name}
|
||||
%{_libdir}/%{name}/*
|
||||
%dir %{_datadir}/%{name}
|
||||
%{_datadir}/%{name}/*.glade
|
||||
%dir %{_datadir}/%{name}/pixmaps
|
||||
@ -207,20 +210,41 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
# %dir %attr(775,root,root) %{_datadir}/locale/or/LC_MESSAGES
|
||||
# %{_datadir}/locale/or/LC_MESSAGES/*
|
||||
%{_datadir}/omf/%{name}
|
||||
# %dir %attr(775,root,root) %{_datadir}/gnome
|
||||
# %{_datadir}/gnome/help
|
||||
%dir %attr(775,root,root) %{_datadir}/gnome
|
||||
%{_datadir}/gnome/help
|
||||
%{_datadir}/applications/YaST2/%{name}.desktop
|
||||
%{_datadir}/dbus-1/services/%{name}.service
|
||||
%{_datadir}/man/man1/%{name}.1*
|
||||
# new files for virt-manager-0.7.0
|
||||
%dir %{_datadir}/%{name}/virtconv
|
||||
%{_datadir}/%{name}/virtconv/*.py
|
||||
%{_datadir}/%{name}/virtconv/*.pyc
|
||||
%dir %{_datadir}/%{name}/virtconv/parsers
|
||||
%{_datadir}/%{name}/virtconv/parsers/*.py
|
||||
%{_datadir}/%{name}/virtconv/parsers/*.pyc
|
||||
%{_datadir}/%{name}/virtinst-0.400.3-py2.6.egg-info
|
||||
%dir %{_libdir}/%{name}
|
||||
%{_libdir}/%{name}/*
|
||||
%doc %{_datadir}/gnome/help/%{name}/C/figures/*.png
|
||||
%doc %{_datadir}/gnome/help/%{name}/C/*.xml
|
||||
# FIXME: autobuild complains that these are unowned (not true...)
|
||||
%dir %{_datadir}/dbus-1
|
||||
%dir %{_datadir}/dbus-1/services
|
||||
%dir %{_datadir}/applications/YaST2
|
||||
|
||||
%changelog
|
||||
* Mon Mar 02 2009 ro@suse.de
|
||||
* Thu Apr 30 2009 dpmerrill@novell.com
|
||||
- Add dbus-1-x11 dependency for minimal installations
|
||||
* Tue Apr 21 2009 dpmerrill@novell.com
|
||||
- Update to virt-manager-0.7.0 and virtinst-0.400.3
|
||||
Improved KVM support
|
||||
Added support for libvirt storage/network pools
|
||||
Details and Console windows are combined
|
||||
Added scaling for VM console window
|
||||
Simple VM migration support
|
||||
* Sun Mar 01 2009 ro@suse.de
|
||||
- move sr@Latn to sr@latin
|
||||
* Thu Dec 04 2008 dpmerrill@suse.de
|
||||
* Wed Dec 03 2008 dpmerrill@suse.de
|
||||
- Remove ia64 from build architectures (bnc#455989)
|
||||
* Tue Nov 11 2008 dpmerrill@novell.com
|
||||
- Add Requires python-urlgrabber for non Xen installations
|
||||
@ -234,7 +258,7 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
* Fri May 16 2008 ro@suse.de
|
||||
- move python install to install section in specfile
|
||||
- fix build without root privileges
|
||||
* Wed Apr 30 2008 dpmerrill@novell.com
|
||||
* Tue Apr 29 2008 dpmerrill@novell.com
|
||||
- Corrected gconf calls in spec file to fix build errors
|
||||
* Tue Apr 29 2008 dpmerrill@novell.com
|
||||
- Added needsrootforbuild to spec file to fix build errors
|
||||
@ -254,7 +278,7 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
- Changed vnc settings to prevent screen-saver lockup (bnc#253264)
|
||||
- Added read-only option in Details->Hardware for adding cdroms
|
||||
to prevent libvirt exceptions. (bnc#368204) (bnc#361990)
|
||||
* Sat Apr 05 2008 dpmerrill@novell.com
|
||||
* Fri Apr 04 2008 dpmerrill@novell.com
|
||||
- Removed Virtual Network tab from host details page (bnc#364514)
|
||||
* Wed Apr 02 2008 dpmerrill@novell.com
|
||||
- Fixed adding a virtual network to a vm (bnc#302663)
|
||||
@ -265,11 +289,11 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
- Added virtman-timewatch to minimize window after
|
||||
- inactivity to work around memory leaks in GTK and DBus
|
||||
- bnc#287366 (L3)
|
||||
* Fri Feb 15 2008 dpmerrill@novell.com
|
||||
* Thu Feb 14 2008 dpmerrill@novell.com
|
||||
- Changed virtman-xen-uri to correct the case where no
|
||||
- connection param is passed in and uri is None
|
||||
- bnc#362013
|
||||
* Wed Feb 13 2008 dpmerrill@novell.com
|
||||
* Tue Feb 12 2008 dpmerrill@novell.com
|
||||
- Changed virtman-desktop and virtman-xen-uri to correct invalid
|
||||
- parms being passed in from YaST - now sends "-c xen:///"
|
||||
- bnc#361334
|
||||
@ -280,7 +304,7 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
* Mon Feb 11 2008 dpmerrill@novell.com
|
||||
- Added virtman-pointer to set vnc to show only one pointer
|
||||
- bnc#359799
|
||||
* Mon Feb 04 2008 dpmerrill@novell.com
|
||||
* Sun Feb 03 2008 dpmerrill@novell.com
|
||||
- Added virtman-vminstall for connecting to vm-install
|
||||
- and changed virtman-xen-uri.diff to force "xen:///"
|
||||
- bnc#358400
|
||||
@ -343,12 +367,12 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
* Mon Mar 12 2007 ccoffing@novell.com
|
||||
- Update virt-manager to match changes in vm-install's disk class,
|
||||
due to bug #247849.
|
||||
* Sat Mar 10 2007 ccoffing@novell.com
|
||||
* Fri Mar 09 2007 ccoffing@novell.com
|
||||
- Make Ctrl+Alt release the mouse cursor (#252998).
|
||||
* Thu Mar 08 2007 ccoffing@novell.com
|
||||
- Add release to "Requires: xen-tools", to prevent mixing with
|
||||
pre-beta 5. (#238986, #252495)
|
||||
* Sat Mar 03 2007 ccoffing@novell.com
|
||||
* Fri Mar 02 2007 ccoffing@novell.com
|
||||
- Disable gtk-menu-bar-accel when VM has focus, to allow VM to get
|
||||
F10 key. (#240001)
|
||||
* Tue Feb 27 2007 ccoffing@novell.com
|
||||
@ -374,12 +398,12 @@ sed -i '\^/usr/share/gnome/help/^d' %{name}.lang
|
||||
* Mon Jan 22 2007 ccoffing@novell.com
|
||||
- Fix desktop file, so icon shows in YaST. (#237046)
|
||||
- Clean up macros in spec file.
|
||||
* Sat Jan 20 2007 ccoffing@novell.com
|
||||
* Fri Jan 19 2007 ccoffing@novell.com
|
||||
- Use temporary icon until real ones arrive.
|
||||
- Update to changeset 371 to fix VNC issues.
|
||||
* Wed Jan 17 2007 ccoffing@novell.com
|
||||
- Fix BuildRequires and paths to work with both SLES10 and STABLE.
|
||||
* Sat Jan 13 2007 ccoffing@novell.com
|
||||
* Fri Jan 12 2007 ccoffing@novell.com
|
||||
- Fix sysconfdir path.
|
||||
- Add desktop file.
|
||||
* Thu Jan 11 2007 ccoffing@novell.com
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b78f73136ae94a9b616c7fa3988bd3d6266a4fff11904036b8ec330f69c6231b
|
||||
size 124659
|
3
virtinst-0.400.3.tar.gz
Normal file
3
virtinst-0.400.3.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3848fc1d35abce89d9b3b20750ff518115193cf7fc367907adb76f4e56702fa8
|
||||
size 350660
|
27
virtinst-cdrom.diff
Normal file
27
virtinst-cdrom.diff
Normal file
@ -0,0 +1,27 @@
|
||||
diff -Nuar virtinst-0.400.3.orig//virtinst/VirtualDisk.py virtinst-0.400.3//virtinst/VirtualDisk.py
|
||||
--- virtinst-0.400.3.orig//virtinst/VirtualDisk.py 2009-03-09 21:32:15.000000000 -0600
|
||||
+++ virtinst-0.400.3//virtinst/VirtualDisk.py 2009-04-21 10:58:25.000000000 -0600
|
||||
@@ -846,14 +846,18 @@
|
||||
return self.target
|
||||
raise ValueError(_("IDE CDROM must use 'hdc', but target in use."))
|
||||
|
||||
- # Regular scanning
|
||||
+ # Start cdrom at 'c' and skip 'c' for non-cdrom
|
||||
for i in range(maxnode):
|
||||
gen_t = "%s%c" % (prefix, ord('a') + i)
|
||||
- if gen_t in except_targets:
|
||||
- continue
|
||||
if gen_t not in skip_targets:
|
||||
- self.target = gen_t
|
||||
- return self.target
|
||||
+ if self.device != self.DEVICE_CDROM:
|
||||
+ if i != ord('c') - ord('a'):
|
||||
+ self.target = gen_t
|
||||
+ return self.target
|
||||
+ else:
|
||||
+ if i >= ord('c') - ord('a'):
|
||||
+ self.target = gen_t
|
||||
+ return self.target
|
||||
|
||||
# Check except_targets for any options
|
||||
for t in except_targets:
|
@ -1,45 +0,0 @@
|
||||
diff -Nuar virtinst-0.300.2.orig/virtinst/Guest.py virtinst-0.300.2/virtinst/Guest.py
|
||||
--- virtinst-0.300.2.orig/virtinst/Guest.py 2008-01-10 18:33:32.000000000 -0700
|
||||
+++ virtinst-0.300.2/virtinst/Guest.py 2008-04-01 16:51:11.000000000 -0600
|
||||
@@ -257,6 +257,10 @@
|
||||
self.type = type
|
||||
self.bridge = bridge
|
||||
self.network = network
|
||||
+
|
||||
+ if self.type == "ethernet":
|
||||
+ self.type = "bridge"
|
||||
+
|
||||
if self.type == "network":
|
||||
if network is None:
|
||||
raise ValueError, _("A network name was not provided")
|
||||
@@ -309,16 +313,23 @@
|
||||
print >> sys.stderr, msg
|
||||
logging.warning(msg)
|
||||
|
||||
- if not self.bridge and self.type == "bridge":
|
||||
- self.bridge = util.default_bridge()
|
||||
+ # if not self.bridge and self.type == "bridge":
|
||||
+ # self.bridge = util.default_bridge()
|
||||
|
||||
def get_xml_config(self):
|
||||
if self.type == "bridge":
|
||||
- return (" <interface type='bridge'>\n" + \
|
||||
- " <source bridge='%(bridge)s'/>\n" + \
|
||||
- " <mac address='%(mac)s'/>\n" + \
|
||||
- " </interface>\n") % \
|
||||
- { "bridge": self.bridge, "mac": self.macaddr }
|
||||
+ if self.bridge != None:
|
||||
+ return (" <interface type='bridge'>\n" + \
|
||||
+ " <source bridge='%(bridge)s'/>\n" + \
|
||||
+ " <mac address='%(mac)s'/>\n" + \
|
||||
+ " </interface>\n") % \
|
||||
+ { "bridge": self.bridge, "mac": self.macaddr }
|
||||
+ else:
|
||||
+ return (" <interface type='bridge'>\n" + \
|
||||
+ " <mac address='%(mac)s'/>\n" + \
|
||||
+ " </interface>\n") % \
|
||||
+ { "mac": self.macaddr }
|
||||
+
|
||||
elif self.type == "network":
|
||||
return (" <interface type='network'>\n" + \
|
||||
" <source network='%(network)s'/>\n" + \
|
15
virtman-bridge.diff
Normal file
15
virtman-bridge.diff
Normal file
@ -0,0 +1,15 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virtManager/addhardware.py virt-manager-0.7.0//src/virtManager/addhardware.py
|
||||
--- virt-manager-0.7.0.orig//src/virtManager/addhardware.py 2009-04-21 14:53:08.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virtManager/addhardware.py 2009-04-21 14:56:20.000000000 -0600
|
||||
@@ -481,7 +481,10 @@
|
||||
net = self.get_config_network()
|
||||
if net[0] == "bridge":
|
||||
self.window.get_widget("summary-net-type").set_text(_("Shared physical device"))
|
||||
- self.window.get_widget("summary-net-target").set_text(net[1])
|
||||
+ if net[1] != None:
|
||||
+ self.window.get_widget("summary-net-target").set_text(net[1])
|
||||
+ else:
|
||||
+ self.window.get_widget("summary-net-target").set_text(_("Default"))
|
||||
elif net[0] == "network":
|
||||
self.window.get_widget("summary-net-type").set_text(_("Virtual network"))
|
||||
self.window.get_widget("summary-net-target").set_text(net[1])
|
12
virtman-cdrom.diff
Normal file
12
virtman-cdrom.diff
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virtManager/addhardware.py virt-manager-0.7.0//src/virtManager/addhardware.py
|
||||
--- virt-manager-0.7.0.orig//src/virtManager/addhardware.py 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virtManager/addhardware.py 2009-04-21 10:07:18.000000000 -0600
|
||||
@@ -1021,6 +1021,8 @@
|
||||
model.append(["virtio", virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "Virtio Disk"])
|
||||
if self.vm.get_connection().get_type().lower() == "xen":
|
||||
+ model.append(["xen", virtinst.VirtualDisk.DEVICE_CDROM,
|
||||
+ gtk.STOCK_CDROM, "Virtual disk (read only)"])
|
||||
model.append(["xen", virtinst.VirtualDisk.DEVICE_DISK,
|
||||
gtk.STOCK_HARDDISK, "Virtual disk"])
|
||||
|
@ -1,116 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/connection.py virt-manager-0.5.3/src/virtManager/connection.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-03-31 14:32:40.000000000 -0600
|
||||
+++ virt-manager-0.5.3/src/virtManager/connection.py 2008-03-31 15:23:14.000000000 -0600
|
||||
@@ -136,6 +136,19 @@
|
||||
|
||||
self.detect_network_devices()
|
||||
|
||||
+ # A bug in hal/dbus prevents us from calling QueryCapability on devices
|
||||
+ # this is a temporary workaround that can be removed when we get
|
||||
+ # a newer hald/hald_dbus.c
|
||||
+ def _query_capability(self, device_interface, str_capability):
|
||||
+ if device_interface == None:
|
||||
+ return False
|
||||
+ if not device_interface.PropertyExists('info.capabilities'):
|
||||
+ return False
|
||||
+ cap_set = set(device_interface.GetProperty('info.capabilities'))
|
||||
+ if str_capability in cap_set:
|
||||
+ return True
|
||||
+ return False
|
||||
+
|
||||
def detect_network_devices(self):
|
||||
try:
|
||||
# Get a connection to the SYSTEM bus
|
||||
@@ -165,9 +178,11 @@
|
||||
|
||||
def _device_added(self, path):
|
||||
obj = self.bus.get_object("org.freedesktop.Hal", path)
|
||||
- if obj.QueryCapability("net"):
|
||||
- name = obj.GetPropertyString("net.interface")
|
||||
- mac = obj.GetPropertyString("net.address")
|
||||
+ iface = dbus.Interface(obj,"org.freedesktop.Hal.Device")
|
||||
+ iface.PropertyExists('info.capabilities')
|
||||
+ if self._query_capability(iface,"net"):
|
||||
+ name = iface.GetPropertyString("net.interface")
|
||||
+ mac = iface.GetPropertyString("net.address")
|
||||
|
||||
# Now magic to determine if the device is part of a bridge
|
||||
shared = False
|
||||
@@ -175,7 +190,7 @@
|
||||
try:
|
||||
# XXX Linux specific - needs porting for other OS - patches
|
||||
# welcomed...
|
||||
- sysfspath = obj.GetPropertyString("linux.sysfs_path")
|
||||
+ sysfspath = iface.GetPropertyString("linux.sysfs_path")
|
||||
|
||||
# If running a device in bridged mode, there's a reasonable
|
||||
# chance that the actual ethernet device has been renamed to
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/opticalhelper.py virt-manager-0.5.3/src/virtManager/opticalhelper.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/opticalhelper.py 2008-01-10 18:17:51.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/opticalhelper.py 2008-03-31 15:24:16.000000000 -0600
|
||||
@@ -41,6 +41,19 @@
|
||||
self.hal_iface = None
|
||||
raise
|
||||
|
||||
+ # A bug in hal prevents us from calling QueryCapability on devices
|
||||
+ # this is a temporary workaround that can be removed when we get
|
||||
+ # a newer hald/hald_dbus.c
|
||||
+ def _query_capability(self, device_interface, str_capability):
|
||||
+ if device_interface == None:
|
||||
+ return False
|
||||
+ if not device_interface.PropertyExists('info.capabilities'):
|
||||
+ return False
|
||||
+ cap_set = set(device_interface.GetProperty('info.capabilities'))
|
||||
+ if str_capability in cap_set:
|
||||
+ return True
|
||||
+ return False
|
||||
+
|
||||
def populate_opt_media(self):
|
||||
# get a list of optical devices with data discs in, for FV installs
|
||||
vollabel = {}
|
||||
@@ -52,10 +65,11 @@
|
||||
# Find info about all current present media
|
||||
for d in self.hal_iface.FindDeviceByCapability("volume"):
|
||||
vol = self.bus.get_object("org.freedesktop.Hal", d)
|
||||
- if vol.GetPropertyBoolean("volume.is_disc") and \
|
||||
- vol.GetPropertyBoolean("volume.disc.has_data"):
|
||||
- devnode = vol.GetProperty("block.device")
|
||||
- label = vol.GetProperty("volume.label")
|
||||
+ iface = dbus.Interface(vol,"org.freedesktop.Hal.Device")
|
||||
+ if iface.GetPropertyBoolean("volume.is_disc") and \
|
||||
+ iface.GetPropertyBoolean("volume.disc.has_data"):
|
||||
+ devnode = iface.GetProperty("block.device")
|
||||
+ label = iface.GetProperty("volume.label")
|
||||
if label == None or len(label) == 0:
|
||||
label = devnode
|
||||
vollabel[devnode] = label
|
||||
@@ -63,7 +77,9 @@
|
||||
|
||||
for d in self.hal_iface.FindDeviceByCapability("storage.cdrom"):
|
||||
dev = self.bus.get_object("org.freedesktop.Hal", d)
|
||||
- devnode = dev.GetProperty("block.device")
|
||||
+ iface = dbus.Interface(dev,"org.freedesktop.Hal.Device")
|
||||
+ iface.PropertyExists('info.capabilities')
|
||||
+ devnode = iface.GetProperty("block.device")
|
||||
if vollabel.has_key(devnode):
|
||||
self.model.append([devnode, vollabel[devnode], True, volpath[devnode]])
|
||||
else:
|
||||
@@ -71,11 +87,13 @@
|
||||
|
||||
def _device_added(self, path):
|
||||
vol = self.bus.get_object("org.freedesktop.Hal", path)
|
||||
- if vol.QueryCapability("volume"):
|
||||
- if vol.GetPropertyBoolean("volume.is_disc") and \
|
||||
- vol.GetPropertyBoolean("volume.disc.has_data"):
|
||||
- devnode = vol.GetProperty("block.device")
|
||||
- label = vol.GetProperty("volume.label")
|
||||
+ iface = dbus.Interface(vol,"org.freedesktop.Hal.Device")
|
||||
+ iface.PropertyExists('info.capabilities')
|
||||
+ if self._query_capability(iface,"volume"):
|
||||
+ if iface.GetPropertyBoolean("volume.is_disc") and \
|
||||
+ iface.GetPropertyBoolean("volume.disc.has_data"):
|
||||
+ devnode = iface.GetProperty("block.device")
|
||||
+ label = iface.GetProperty("volume.label")
|
||||
if label == None or len(label) == 0:
|
||||
label = devnode
|
||||
|
@ -1,37 +1,37 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/Makefile.am virt-manager-0.5.3/src/Makefile.am
|
||||
--- virt-manager-0.5.3.orig/src/Makefile.am 2008-01-10 18:17:51.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/Makefile.am 2008-04-29 11:07:08.000000000 -0600
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/Makefile.am virt-manager-0.7.0//src/Makefile.am
|
||||
--- virt-manager-0.7.0.orig//src/Makefile.am 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/Makefile.am 2009-04-16 16:31:18.000000000 -0600
|
||||
@@ -14,7 +14,7 @@
|
||||
gladedir = $(pkgdatadir)
|
||||
glade_DATA = $(wildcard $(srcdir)/*.glade)
|
||||
|
||||
-desktopdir = $(datadir)/applications
|
||||
+desktopdir = $(datadir)/applications/YaST2/
|
||||
desktop_SOURCES = $(PACKAGE).desktop.in.in
|
||||
desktop_DATA_IN = $(PACKAGE).desktop.in.in
|
||||
desktop_DATA = $(PACKAGE).desktop
|
||||
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/Makefile.in virt-manager-0.5.3/src/Makefile.in
|
||||
--- virt-manager-0.5.3.orig/src/Makefile.in 2008-01-10 18:18:06.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/Makefile.in 2008-04-29 11:12:12.000000000 -0600
|
||||
@@ -246,7 +246,7 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/Makefile.in virt-manager-0.7.0//src/Makefile.in
|
||||
--- virt-manager-0.7.0.orig//src/Makefile.in 2009-03-09 21:39:01.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/Makefile.in 2009-04-16 16:31:47.000000000 -0600
|
||||
@@ -248,7 +248,7 @@
|
||||
libexec_SCRIPTS = $(PACKAGE)-launch
|
||||
gladedir = $(pkgdatadir)
|
||||
glade_DATA = $(wildcard $(srcdir)/*.glade)
|
||||
-desktopdir = $(datadir)/applications
|
||||
+desktopdir = $(datadir)/applications/YaST2/
|
||||
desktop_SOURCES = $(PACKAGE).desktop.in.in
|
||||
desktop_DATA_IN = $(PACKAGE).desktop.in.in
|
||||
desktop_DATA = $(PACKAGE).desktop
|
||||
dbusdir = $(datadir)/dbus-1/services
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virt-manager.desktop.in.in virt-manager-0.5.3/src/virt-manager.desktop.in.in
|
||||
--- virt-manager-0.5.3.orig/src/virt-manager.desktop.in.in 2008-01-10 18:17:51.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virt-manager.desktop.in.in 2008-04-29 11:11:24.000000000 -0600
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virt-manager.desktop.in.in virt-manager-0.7.0//src/virt-manager.desktop.in.in
|
||||
--- virt-manager-0.7.0.orig//src/virt-manager.desktop.in.in 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virt-manager.desktop.in.in 2009-04-16 16:35:46.000000000 -0600
|
||||
@@ -1,9 +1,16 @@
|
||||
[Desktop Entry]
|
||||
+Version=1.0
|
||||
_Name=Virtual Machine Manager
|
||||
_Comment=Manage virtual machines
|
||||
-Icon=::ICONDIR::/::PACKAGE::-icon.svg
|
||||
-Exec=::PACKAGE::
|
||||
+Version=1.0
|
||||
+Icon=yast-vm-management
|
||||
+Exec=/usr/bin/virt-manager -c xen:///
|
||||
Type=Application
|
||||
|
@ -1,24 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/connection.py virt-manager-0.5.3/src/virtManager/connection.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-02-12 11:32:25.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/connection.py 2008-02-12 11:36:04.000000000 -0700
|
||||
@@ -158,13 +158,17 @@
|
||||
hal_object = self.bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
|
||||
self.hal_iface = dbus.Interface(hal_object, 'org.freedesktop.Hal.Manager')
|
||||
|
||||
+ # Find info about all current present media
|
||||
+ for path in self.hal_iface.FindDeviceByCapability("net"):
|
||||
+ self._device_added(path)
|
||||
+
|
||||
+ # Connect to signals AFTER FindDeviceByCapability. This leaves a small hole
|
||||
+ # where we could miss a device add, but FindDeviceByCapability takes
|
||||
+ # several seconds to execute if the signals are connected in advance...
|
||||
# Track device add/removes so we can detect newly inserted CD media
|
||||
self.hal_iface.connect_to_signal("DeviceAdded", self._device_added)
|
||||
self.hal_iface.connect_to_signal("DeviceRemoved", self._device_removed)
|
||||
|
||||
- # Find info about all current present media
|
||||
- for path in self.hal_iface.FindDeviceByCapability("net"):
|
||||
- self._device_added(path)
|
||||
except:
|
||||
(type, value, stacktrace) = sys.exc_info ()
|
||||
logging.error("Unable to connect to HAL to list network devices: '%s'" + \
|
@ -1,12 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/addhardware.py virt-manager-0.5.3/src/virtManager/addhardware.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/addhardware.py 2008-04-09 11:04:13.000000000 -0600
|
||||
+++ virt-manager-0.5.3/src/virtManager/addhardware.py 2008-04-09 11:06:27.000000000 -0600
|
||||
@@ -840,6 +840,8 @@
|
||||
model.append(["xvd", 26, virtinst.VirtualDisk.DEVICE_DISK, gtk.STOCK_HARDDISK, "Virtual disk"])
|
||||
#model.append(["usb", virtinst.VirtualDisk.DEVICE_DISK, gtk.STOCK_HARDDISK, "USB disk"])
|
||||
else:
|
||||
+ # add read-only option to prevent libvirt exceptions when adding a cdrom as read/write
|
||||
+ model.append(["xvd", 26, virtinst.VirtualDisk.DEVICE_CDROM, gtk.STOCK_CDROM, "Virtual disk (read-only)"])
|
||||
model.append(["xvd", 26, virtinst.VirtualDisk.DEVICE_DISK, gtk.STOCK_HARDDISK, "Virtual disk"])
|
||||
|
||||
def populate_input_model(self, model):
|
224
virtman-help.diff
Normal file
224
virtman-help.diff
Normal file
@ -0,0 +1,224 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//help/virt-manager/C/virt-manager.xml virt-manager-0.7.0//help/virt-manager/C/virt-manager.xml
|
||||
--- virt-manager-0.7.0.orig//help/virt-manager/C/virt-manager.xml 2009-03-09 21:38:36.000000000 -0600
|
||||
+++ virt-manager-0.7.0//help/virt-manager/C/virt-manager.xml 2009-04-24 17:02:36.000000000 -0600
|
||||
@@ -821,218 +821,9 @@
|
||||
<title>The Create Wizard</title>
|
||||
<para>The Create Wizard helps you gather the information necessary to create
|
||||
new virtual machines. All the information in each screen is retained and can
|
||||
- be backed-up-to and modified until you click <guibutton>Finish</guibutton>
|
||||
+ be backed-up-to and modified until you click <guibutton>OK</guibutton>
|
||||
on the last screen.</para>
|
||||
- <sect2 id="virt-manager-system-name">
|
||||
- <title>The System Name screen</title>
|
||||
- <para>Choose a name for your virtual system. The name must be non-blank,
|
||||
- alphanumeric (plus underscores), contain at least one letter, and be less
|
||||
- than 50 characters.</para>
|
||||
- </sect2>
|
||||
-
|
||||
- <sect2 id="virt-manager-virt-method">
|
||||
- <title>The Virtualization Method screen</title>
|
||||
- <para>Choose a virtualization method for your new system. The choices
|
||||
- are:</para>
|
||||
- <variablelist>
|
||||
- <varlistentry><term>Paravirtualized</term> <listitem><para>A
|
||||
- paravirtualized system typically performs better than a fully virtualized
|
||||
- system because certain operations — disk and network access, for
|
||||
- example — have direct access to the hardware. However a
|
||||
- paravirtualized VM requires a specially modified kernel. If you
|
||||
- choose paravirtualized, you must make sure this specially modified kernel
|
||||
- is available for the operating system you wish to install.</para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- <varlistentry><term>Fully Virtualized</term>
|
||||
- <listitem>
|
||||
- <para>A fully virtualized system simulates all the hardware for the VM,
|
||||
- permitting no direct access. It allows for a greater range of operating
|
||||
- systems, but generally will not perform as well as a paravirtualized
|
||||
- system. Note that for some hypervisor types, full virtualization requires
|
||||
- hardware support. In addition if your hardware allows it, you can
|
||||
- enable hardware acceleration for your fully virtualized guest (this
|
||||
- item will be grayed out unless your hardware is acceleration-capable).</para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- </variablelist>
|
||||
- </sect2>
|
||||
-
|
||||
- <sect2 id="virt-manager-installation-media">
|
||||
- <title>The Installation Media screens</title>
|
||||
- <para>The Installation Media screens let you specify where the physical or
|
||||
- virtual install media for your VM are located, so that the installer can
|
||||
- find them. There are two screens, one for each type of virtual
|
||||
- machine.</para>
|
||||
- <sect3 id="virt-manager-installation-media-paravirt">
|
||||
- <title>Paravirtualized installation media</title>
|
||||
- <figure id="virt-manager-FIG-paravirt-media">
|
||||
- <title>Choose Install Media for Paravirtualized VMs</title>
|
||||
- <screenshot>
|
||||
- <mediaobject>
|
||||
- <imageobject>
|
||||
- <imagedata fileref="figures/vm-paravirt-media.png" format="PNG"/>
|
||||
- </imageobject>
|
||||
- <textobject> <phrase>Shows the paravirtualized VM media choice window.</phrase>
|
||||
- </textobject>
|
||||
- </mediaobject>
|
||||
- </screenshot>
|
||||
- </figure>
|
||||
- <para>A paravirtualized VM requires an install tree that follows the
|
||||
- pattern of the Fedora install tree (e.g. <ulink type="http"
|
||||
- url="http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/">
|
||||
- this tree</ulink>). The <guilabel>Install Media URL</guilabel> box lets
|
||||
- you enter a URL for a tree like this. When you then go to install the
|
||||
- guest, the installer will check to see if the URL you entered is
|
||||
- readable, and if so download the paravirtualized install kernel and
|
||||
- initrd that it will need to start the install. You can use the following
|
||||
- URL types:</para>
|
||||
- <variablelist>
|
||||
- <varlistentry><term>http:</term>
|
||||
- <listitem><para>e.g. <userinput>http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/</userinput></para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- <varlistentry><term>ftp:</term>
|
||||
- <listitem><para>e.g. <userinput>ftp://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/os/</userinput></para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- <varlistentry><term>nfs:</term>
|
||||
- <listitem><para>e.g. <userinput>nfs:myfileserver:/images/linux/core/6/i386/os/</userinput></para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- <varlistentry><term>local file:</term>
|
||||
- <listitem><para>e.g. <userinput>/tmp/paravirttrees/fedora/os</userinput>
|
||||
- </para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- </variablelist>
|
||||
- <para>You can specify a kickstart URL for your paravirtualized VM in
|
||||
- exactly the same way as the install tree described
|
||||
- above. <application>&app;</application> will remember the last 5 URLs you
|
||||
- enter in these windows, so if you are installing multiple VMs you will
|
||||
- not have to type the URLs more than once.
|
||||
- </para>
|
||||
- </sect3>
|
||||
- <sect3 id="virt-manager-installation-media-full-virt">
|
||||
- <title>Fully Virtualized Installation Media</title>
|
||||
- <figure id="virt-manager-FIG-full-virt-media">
|
||||
- <title>Choose Install Media for Fully Virtualized VMs</title>
|
||||
- <screenshot>
|
||||
- <mediaobject>
|
||||
- <imageobject>
|
||||
- <imagedata fileref="figures/vm-full-virt-media.png" format="PNG"/>
|
||||
- </imageobject>
|
||||
- <textobject> <phrase>Shows the fully virtualized VM media choice window.</phrase>
|
||||
- </textobject>
|
||||
- </mediaobject>
|
||||
- </screenshot>
|
||||
- </figure>
|
||||
- <para>A fully virtualized VM requires the standard installation media that
|
||||
- the same non-virtualized OS would require: either an actual CD or DVD, or
|
||||
- a corresponding ISO image. On the Installation Media screen for a fully
|
||||
- virtualized VM, you can therefore choose the path to your CD or DVD from
|
||||
- the pull-down list, or you can enter or browse to the path of the ISO
|
||||
- image you have saved in your local filesystem.</para>
|
||||
- <para>For fully virtualized VMs, <application>&app;</application> also
|
||||
- asks for the operating system type and variant you are installing. The
|
||||
- installer uses this to set the <parameter>acpi</parameter> and
|
||||
- <parameter>apic</parameter> flags according to the OS type (other
|
||||
- parameters may be added to this list in the future).</para>
|
||||
- </sect3>
|
||||
- </sect2>
|
||||
-
|
||||
- <sect2 id="virt-manager-storage-space">
|
||||
- <title>Assigning Storage Space</title>
|
||||
- <figure id="virt-manager-FIG-assign-storage">
|
||||
- <title>Assign Storage</title>
|
||||
- <screenshot>
|
||||
- <mediaobject>
|
||||
- <imageobject>
|
||||
- <imagedata fileref="figures/vm-assign-storage.png" format="PNG"/>
|
||||
- </imageobject>
|
||||
- <textobject> <phrase>Shows the Assigning Storage window.</phrase>
|
||||
- </textobject>
|
||||
- </mediaobject>
|
||||
- </screenshot>
|
||||
- </figure>
|
||||
-
|
||||
- <para>Designate the primary storage device for your VM. You may choose an
|
||||
- existing physical or LVM partition in the <guilabel>Partition</guilabel>
|
||||
- box; or, you may choose to use a file on the local filesystem. If you
|
||||
- choose to use a file that does not already exist, you may specify the size
|
||||
- of the file in megabytes. If you choose an existing file, that file's size
|
||||
- will not change. If you use a file for your primary storage device, you
|
||||
- may also choose whether to allocate the entire file
|
||||
- at creation time, or whether to allow it to grow to its maximum over
|
||||
- time.</para>
|
||||
- <warning>
|
||||
- <title>Sparse files can be dangerous</title>
|
||||
- <para>You may be tempted not to allocate your entire file when your VM is
|
||||
- created; filling a 5- to 10-GB file with 0s can take quite a while, and
|
||||
- you will avoid this wait by not allocating the entire file and instead using a
|
||||
- "sparse" file. However, be aware that this will slow down your VM's disk
|
||||
- performance significantly, as the underlying OS must keep allocating more
|
||||
- storage space as your VM runs. In addition, if the disk your sparse file
|
||||
- is on runs out of space, your VM may crash and lose data. You may
|
||||
- therefore only want to use a sparse file when testing, where guest
|
||||
- creation speed could be at a premium.</para>
|
||||
- </warning>
|
||||
- </sect2>
|
||||
-
|
||||
- <sect2 id="virt-manager-memory-and-cpu">
|
||||
- <title>Allocate Memory And CPU</title>
|
||||
- <figure id="virt-manager-FIG-mem-cpu">
|
||||
- <title>Set Memory and CPU</title>
|
||||
- <screenshot>
|
||||
- <mediaobject>
|
||||
- <imageobject>
|
||||
- <imagedata fileref="figures/vm-create-mem-cpu.png" format="PNG"/>
|
||||
- </imageobject>
|
||||
- <textobject> <phrase>Shows the VM Memory and CPU choice window.</phrase>
|
||||
- </textobject>
|
||||
- </mediaobject>
|
||||
- </screenshot>
|
||||
- </figure>
|
||||
- <para>The <guilabel>Memory</guilabel> section of this screen lets you set
|
||||
- two parameters, <guilabel>VM Max Memory</guilabel> and <guilabel>VM
|
||||
- Startup Memory</guilabel>. These settings work as follows:</para>
|
||||
- <variablelist>
|
||||
- <varlistentry><term>VM Max Memory</term> <listitem><para><guilabel>VM Max
|
||||
- Memory</guilabel> sets the maximum memory your VM can have unless you
|
||||
- reboot it with a higher setting. For paravirtualized VMs, the maximum
|
||||
- memory is a boot-time kernel setting; for fully virtualized VMs, the
|
||||
- maximum memory appears to the VM to be the amount of physical memory
|
||||
- available.</para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- <varlistentry><term>VM Startup Memory</term>
|
||||
- <listitem><para>For paravirtualized VMs, <guilabel>VM Startup
|
||||
- Memory</guilabel> sets the amount of memory to start the VM with. The
|
||||
- VM's available memory can then be changed from <application>&app;</application>
|
||||
- while the VM is running. For fully virtualized guests, this setting has
|
||||
- no effect.</para>
|
||||
- </listitem>
|
||||
- </varlistentry>
|
||||
- </variablelist>
|
||||
- <para>The virtual CPU section of this screen lets you set the number of
|
||||
- vCPUs your VM starts up with. For paravirtualized guests, this number can
|
||||
- be changed while the guest is running (although never to more than the VM
|
||||
- started with). For fully virtualized guests, this number can only be
|
||||
- changed while the guest is not running.</para>
|
||||
- </sect2>
|
||||
-
|
||||
- <sect2 id="virt-manager-validation">
|
||||
- <title>Validation</title>
|
||||
- <para>The Validation screen lets you verify the setup for your new
|
||||
- system. If you need to, you can back up and
|
||||
- make changes. Clicking "Finish" will begin creating your virtual
|
||||
- machine. If you have the <application>&app;</application> preferences set
|
||||
- to automatically open consoles, a <link
|
||||
- linkend="virt-manager-console-window">Console window</link> will pop up
|
||||
- as soon as the installer has downloaded the necessary images and booted
|
||||
- the VM's installer.
|
||||
- </para>
|
||||
- </sect2>
|
||||
+ <para>For further details, see documentation for "vm-install".</para>
|
||||
</sect1>
|
||||
|
||||
</article>
|
13
virtman-kvm.diff
Normal file
13
virtman-kvm.diff
Normal file
@ -0,0 +1,13 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virt-manager.py.in virt-manager-0.7.0//src/virt-manager.py.in
|
||||
--- virt-manager-0.7.0.orig//src/virt-manager.py.in 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virt-manager.py.in 2009-04-21 14:24:51.000000000 -0600
|
||||
@@ -192,7 +192,8 @@
|
||||
tryuri = "xen:///"
|
||||
elif (os.path.exists("/usr/bin/qemu") or
|
||||
os.path.exists("/usr/bin/qemu-kvm") or
|
||||
- os.path.exists("/usr/bin/kvm")):
|
||||
+ os.path.exists("/usr/bin/kvm") or
|
||||
+ os.path.exists("/dev/kvm") ):
|
||||
tryuri = "qemu:///system"
|
||||
|
||||
return tryuri
|
35
virtman-manager.diff
Normal file
35
virtman-manager.diff
Normal file
@ -0,0 +1,35 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virtManager/manager.py virt-manager-0.7.0//src/virtManager/manager.py
|
||||
--- virt-manager-0.7.0.orig//src/virtManager/manager.py 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virtManager/manager.py 2009-04-24 15:14:21.000000000 -0600
|
||||
@@ -656,6 +656,15 @@
|
||||
vmlist = self.window.get_widget("vm-list")
|
||||
selection = vmlist.get_selection()
|
||||
active = selection.get_selected()
|
||||
+ if active[1] == None and active[0] != None:
|
||||
+ # in some cases on vhost, the connection is not being selected at startup.
|
||||
+ # when creating new vms, if current_connection() returns None, several
|
||||
+ # functions will fail, so if the user hasn't selected a connection, default
|
||||
+ # to the first connection in the list.
|
||||
+ first = active[0].get_iter_first()
|
||||
+ if first != None:
|
||||
+ selection.select_iter( first )
|
||||
+ active = selection.get_selected()
|
||||
if active[1] != None:
|
||||
parent = active[0].iter_parent(active[1])
|
||||
# return the connection of the currently selected vm, or the
|
||||
@@ -810,7 +819,14 @@
|
||||
return False
|
||||
|
||||
def new_vm(self, ignore=None):
|
||||
- self.emit("action-show-create", self.current_connection_uri())
|
||||
+ conn = self.current_connection()
|
||||
+ if conn.get_state() == vmmConnection.STATE_ACTIVE:
|
||||
+ self.emit("action-show-create", self.current_connection_uri())
|
||||
+ else:
|
||||
+ message_box = gtk.MessageDialog( None, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK,
|
||||
+ _("Must select an active connection before creating a Virtual Machine") )
|
||||
+ message_box.run()
|
||||
+ message_box.destroy()
|
||||
|
||||
def delete_vm(self, ignore=None):
|
||||
conn = self.current_connection()
|
@ -1,90 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/addhardware.py virt-manager-0.5.3/src/virtManager/addhardware.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/addhardware.py 2008-04-25 16:13:35.000000000 -0600
|
||||
+++ virt-manager-0.5.3/src/virtManager/addhardware.py 2008-04-25 16:14:10.000000000 -0600
|
||||
@@ -704,7 +704,7 @@
|
||||
device=device)
|
||||
if self._disk.type == virtinst.VirtualDisk.TYPE_FILE and \
|
||||
not self.vm.is_hvm() and virtinst.util.is_blktap_capable():
|
||||
- disk.driver_name = virtinst.VirtualDisk.DRIVER_TAP
|
||||
+ self._disk.driver_name = virtinst.VirtualDisk.DRIVER_TAP
|
||||
except ValueError, e:
|
||||
self._validation_error_box(_("Invalid Storage Parameters"), \
|
||||
str(e))
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/console.py virt-manager-0.5.3/src/virtManager/console.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/console.py 2008-04-25 16:13:35.000000000 -0600
|
||||
+++ virt-manager-0.5.3/src/virtManager/console.py 2008-04-25 16:14:54.000000000 -0600
|
||||
@@ -91,6 +91,7 @@
|
||||
|
||||
self.vncViewer.show()
|
||||
self.vncViewerRetriesScheduled = 0
|
||||
+ self.vncViewerMaxRetries = 10
|
||||
self.vncViewerRetryDelay = 125
|
||||
self.vncViewer.connect("size-request", self._force_resize)
|
||||
self.connected = 0
|
||||
@@ -204,7 +205,7 @@
|
||||
def send_key(self, src):
|
||||
keys = None
|
||||
if src.get_name() == "menu-send-cad":
|
||||
- keys = ["Control_L", "Alt_L", "Del"]
|
||||
+ keys = ["Control_L", "Alt_L", "Delete"]
|
||||
elif src.get_name() == "menu-send-cab":
|
||||
keys = ["Control_L", "Alt_L", "BackSpace"]
|
||||
elif src.get_name() == "menu-send-caf1":
|
||||
@@ -224,7 +225,7 @@
|
||||
elif src.get_name() == "menu-send-caf8":
|
||||
keys = ["Control_L", "Alt_L", "F8"]
|
||||
elif src.get_name() == "menu-send-printscreen":
|
||||
- keys = ["PrintScreen"]
|
||||
+ keys = ["Print"]
|
||||
|
||||
if keys != None:
|
||||
self.vncViewer.send_keys(keys)
|
||||
@@ -374,7 +375,7 @@
|
||||
|
||||
def schedule_retry(self):
|
||||
self.vncViewerRetriesScheduled = self.vncViewerRetriesScheduled + 1
|
||||
- if self.vncViewerRetriesScheduled >= 10:
|
||||
+ if self.vncViewerRetriesScheduled >= self.vncViewerMaxRetries:
|
||||
logging.error("Too many connection failures, not retrying again")
|
||||
return
|
||||
logging.warn("Retrying connection in %d ms", self.vncViewerRetryDelay)
|
||||
@@ -387,9 +388,15 @@
|
||||
return
|
||||
gtk.gdk.threads_enter()
|
||||
try:
|
||||
- logging.debug("Got timed retry")
|
||||
- self.try_login()
|
||||
- return
|
||||
+ try:
|
||||
+ logging.debug("Got timed retry")
|
||||
+ self.try_login()
|
||||
+ return
|
||||
+ except libvirt.libvirtError, e:
|
||||
+ # libvirtError is expected when vm is inactive during a reboot
|
||||
+ # only show exception if it is going to cause a viewer failure
|
||||
+ if self.vncViewerRetriesScheduled >= self.vncViewerMaxRetries - 1:
|
||||
+ logging.error("Login error: %s" % str(e))
|
||||
finally:
|
||||
gtk.gdk.threads_leave()
|
||||
|
||||
@@ -484,7 +491,7 @@
|
||||
self.vncViewer.set_credential(credList[i], "libvirt-vnc")
|
||||
else:
|
||||
# Force it to stop re-trying
|
||||
- self.vncViewerRetriesScheduled = 10
|
||||
+ self.vncViewerRetriesScheduled = self.vncViewerMaxRetries
|
||||
self.vncViewer.close()
|
||||
self.activate_unavailable_page(_("Unsupported console authentication type"))
|
||||
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/details.py virt-manager-0.5.3/src/virtManager/details.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/details.py 2008-01-10 18:17:51.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/details.py 2008-04-25 16:14:26.000000000 -0600
|
||||
@@ -553,7 +553,7 @@
|
||||
else:
|
||||
vnic = virtinst.VirtualNetworkInterface(type=netinfo[0], macaddr=netinfo[3])
|
||||
except ValueError, e:
|
||||
- self.err_dialog(_("Error Removing Network: %s" % str(e)),
|
||||
+ self._err_dialog(_("Error Removing Network: %s" % str(e)),
|
||||
"".join(traceback.format_exc()))
|
||||
return
|
||||
|
@ -1,12 +1,12 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/console.py virt-manager-0.5.3/src/virtManager/console.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/console.py 2008-11-11 16:06:50.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/console.py 2008-11-11 16:07:14.000000000 -0700
|
||||
@@ -407,7 +407,7 @@
|
||||
os.close(1)
|
||||
os.dup(fds[1].fileno())
|
||||
os.dup(fds[1].fileno())
|
||||
- os.execlp("ssh", "ssh", "-p", "22", "-l", "root", server, "nc", vncaddr, str(vncport))
|
||||
+ os.execlp("ssh", "ssh", "-p", "22", "-l", "root", server, "netcat", vncaddr, str(vncport))
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virtManager/details.py virt-manager-0.7.0//src/virtManager/details.py
|
||||
--- virt-manager-0.7.0.orig//src/virtManager/details.py 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virtManager/details.py 2009-04-20 10:13:49.000000000 -0600
|
||||
@@ -1233,7 +1233,7 @@
|
||||
argv = ["ssh", "ssh", "-p", sshport]
|
||||
if username:
|
||||
argv += ['-l', username]
|
||||
- argv += [ server, "nc", vncaddr, str(vncport) ]
|
||||
+ argv += [ server, "netcat", vncaddr, str(vncport) ]
|
||||
os.execlp(*argv)
|
||||
os._exit(1)
|
||||
else:
|
||||
fds[1].close()
|
||||
|
@ -1,24 +1,18 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/console.py virt-manager-0.5.3/src/virtManager/console.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/console.py 2008-01-10 18:17:51.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/console.py 2008-04-09 11:02:33.000000000 -0600
|
||||
@@ -78,13 +78,13 @@
|
||||
self.window.get_widget("console-vnc-align").add(self.vncViewer)
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virtManager/details.py virt-manager-0.7.0//src/virtManager/details.py
|
||||
--- virt-manager-0.7.0.orig//src/virtManager/details.py 2009-04-20 10:21:46.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virtManager/details.py 2009-04-20 10:27:37.000000000 -0600
|
||||
@@ -218,10 +218,10 @@
|
||||
self.window.get_widget("console-vnc-viewport").add(self.vncViewer)
|
||||
self.vncViewer.realize()
|
||||
self.vncTunnel = None
|
||||
- if self.config.get_console_keygrab() == 2:
|
||||
- self.vncViewer.set_keyboard_grab(True)
|
||||
- self.vncViewer.set_pointer_grab(True)
|
||||
- else:
|
||||
- self.vncViewer.set_keyboard_grab(False)
|
||||
- self.vncViewer.set_pointer_grab(False)
|
||||
- self.vncViewer.set_pointer_local(True)
|
||||
+ # change to always set grab flags as False
|
||||
+ # setting them to true raises the error of Dom0 screen-saver losing the pointer
|
||||
+ # if the pointer is over DomU when screen saver activates
|
||||
+ # Always set grab flags to False. Setting them to True introduces a bug where Dom0 ScreenSaver
|
||||
+ # loses the pointer if the pointer is over Dom0 when the ScreenSaver activates.
|
||||
+ # This patch can be removed when testing shows the bug (Gtk?) is fixed.
|
||||
+ self.vncViewer.set_keyboard_grab(False)
|
||||
+ self.vncViewer.set_pointer_grab(False)
|
||||
+ # comment set_pointer_local to prevent 2 pointers in vnc viewer
|
||||
+ # self.vncViewer.set_pointer_local(True)
|
||||
self.vncViewer.set_pointer_grab(True)
|
||||
|
||||
self.vncViewer.connect("vnc-pointer-grab", self.notify_grabbed)
|
||||
self.vncViewer.connect("vnc-pointer-ungrab", self.notify_ungrabbed)
|
||||
self.scale_type = self.config.get_console_scaling()
|
||||
|
@ -1,224 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/config.py virt-manager-0.5.3/src/virtManager/config.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/config.py 2008-02-20 10:23:45.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/config.py 2008-02-20 10:58:37.000000000 -0700
|
||||
@@ -172,6 +172,8 @@
|
||||
return 10
|
||||
return history
|
||||
|
||||
+ def get_stats_minimize_minutes(self):
|
||||
+ return self.conf.get_int(self.conf_dir + "/stats/minimize-minutes")
|
||||
|
||||
def set_stats_update_interval(self, interval):
|
||||
self.conf.set_int(self.conf_dir + "/stats/update-interval", interval)
|
||||
@@ -179,6 +181,8 @@
|
||||
def set_stats_history_length(self, length):
|
||||
self.conf.set_int(self.conf_dir + "/stats/history-length", length)
|
||||
|
||||
+ def set_stats_minimize_minutes(self, minutes):
|
||||
+ self.conf.set_int(self.conf_dir + "/stats/minimize-minutes", minutes)
|
||||
|
||||
def on_stats_update_interval_changed(self, callback):
|
||||
self.conf.notify_add(self.conf_dir + "/stats/update-interval", callback)
|
||||
@@ -186,6 +190,9 @@
|
||||
def on_stats_history_length_changed(self, callback):
|
||||
self.conf.notify_add(self.conf_dir + "/stats/history-length", callback)
|
||||
|
||||
+ def on_stats_minimize_minutes_changed(self, callback):
|
||||
+ self.conf.notify_add(self.conf_dir + "/stats/minimize-minutes", callback)
|
||||
+
|
||||
def on_console_popup_changed(self, callback):
|
||||
self.conf.notify_add(self.conf_dir + "/console/popup", callback)
|
||||
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/connection.py virt-manager-0.5.3/src/virtManager/connection.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/connection.py 2008-02-20 10:23:45.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/connection.py 2008-02-20 11:53:08.000000000 -0700
|
||||
@@ -469,7 +469,7 @@
|
||||
os.remove(frm)
|
||||
return status
|
||||
|
||||
- def tick(self, noStatsUpdate=False):
|
||||
+ def tick(self, noStatsUpdate=False, sleeping=False):
|
||||
if self.state != self.STATE_ACTIVE:
|
||||
return
|
||||
|
||||
@@ -490,11 +490,12 @@
|
||||
logging.warn("Unable to list inactive networks")
|
||||
|
||||
# check of net devices
|
||||
- newPaths = []
|
||||
- if self.hal_iface:
|
||||
- newPaths = self.hal_iface.FindDeviceByCapability("net")
|
||||
- for newPath in newPaths:
|
||||
- self._device_added(newPath)
|
||||
+ if sleeping == False:
|
||||
+ newPaths = []
|
||||
+ if self.hal_iface:
|
||||
+ newPaths = self.hal_iface.FindDeviceByCapability("net")
|
||||
+ for newPath in newPaths:
|
||||
+ self._device_added(newPath)
|
||||
|
||||
for name in newActiveNetNames:
|
||||
net = self.vmm.networkLookupByName(name)
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/engine.py virt-manager-0.5.3/src/virtManager/engine.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/engine.py 2008-02-20 10:23:45.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/engine.py 2008-02-20 11:51:52.000000000 -0700
|
||||
@@ -149,7 +149,11 @@
|
||||
def _tick(self):
|
||||
for uri in self.connections.keys():
|
||||
try:
|
||||
- self.connections[uri]["connection"].tick()
|
||||
+ if self.windowManager != None:
|
||||
+ sleeping= self.windowManager.timewatch.process_clock(self.windowManager.window.get_widget("vmm-manager"))
|
||||
+ else:
|
||||
+ sleeping= False
|
||||
+ self.connections[uri]["connection"].tick(sleeping = sleeping)
|
||||
except KeyboardInterrupt:
|
||||
raise KeyboardInterrupt
|
||||
except:
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/manager.py virt-manager-0.5.3/src/virtManager/manager.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/manager.py 2008-02-20 10:23:45.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/manager.py 2008-02-20 12:11:22.000000000 -0700
|
||||
@@ -33,6 +33,8 @@
|
||||
from virtManager.asyncjob import vmmAsyncJob
|
||||
from virtManager.error import vmmErrorDialog
|
||||
|
||||
+import timex
|
||||
+
|
||||
VMLIST_SORT_ID = 1
|
||||
VMLIST_SORT_NAME = 2
|
||||
VMLIST_SORT_CPU_USAGE = 3
|
||||
@@ -101,6 +103,14 @@
|
||||
self.connections = {}
|
||||
self.prepare_vmlist()
|
||||
|
||||
+ self.timewatch= timex.timex()
|
||||
+ if self.config.get_stats_minimize_minutes() == -1:
|
||||
+ logging.debug("minimize_minutes value unset - defaulting to 120")
|
||||
+ self.config.set_stats_minimize_minutes(120)
|
||||
+ self.timewatch.set_timeout_minutes(self.config.get_stats_minimize_minutes())
|
||||
+ self.config.on_stats_minimize_minutes_changed(self.reschedule_minimize)
|
||||
+ logging.debug("minimize_minutes set to %s" % str(self.config.get_stats_minimize_minutes()))
|
||||
+
|
||||
self.config.on_vmlist_domain_id_visible_changed(self.toggle_domain_id_visible_widget)
|
||||
self.config.on_vmlist_status_visible_changed(self.toggle_status_visible_widget)
|
||||
self.config.on_vmlist_cpu_usage_visible_changed(self.toggle_cpu_usage_visible_widget)
|
||||
@@ -232,6 +242,15 @@
|
||||
"on_menu_help_activate": self.show_help,
|
||||
})
|
||||
|
||||
+ self.window.get_widget("vmm-manager" ).connect("window_state_event",self.timewatch.handle_window_state_event)
|
||||
+ self.window.get_widget("vm-list" ).connect("button_press_event",self.timewatch.handle_reset_clock_event )
|
||||
+ widget= self.window.get_widget("vmm-manager")
|
||||
+ self.window.get_widget("vm-new" ).connect("clicked" ,self.timewatch.handle_reset_clock_event, widget )
|
||||
+ self.window.get_widget("vm-open" ).connect("clicked" ,self.timewatch.handle_reset_clock_event, widget )
|
||||
+ self.window.get_widget("vm-details" ).connect("clicked" ,self.timewatch.handle_reset_clock_event, widget )
|
||||
+ self.window.get_widget("vm-delete" ).connect("clicked" ,self.timewatch.handle_reset_clock_event, widget )
|
||||
+ self.window.get_widget("menu_edit_details" ).connect("activate" ,self.timewatch.handle_reset_clock_event, widget )
|
||||
+
|
||||
self.vm_selected(None)
|
||||
self.window.get_widget("vm-list").get_selection().connect("changed", self.vm_selected)
|
||||
|
||||
@@ -481,6 +500,9 @@
|
||||
|
||||
|
||||
def vm_resources_sampled(self, vm):
|
||||
+ if self.timewatch.process_clock(self.window.get_widget("vmm-manager")):
|
||||
+ return
|
||||
+
|
||||
vmlist = self.window.get_widget("vm-list")
|
||||
model = vmlist.get_model()
|
||||
|
||||
@@ -519,6 +541,9 @@
|
||||
|
||||
|
||||
def conn_refresh_resources(self, conn):
|
||||
+ if self.timewatch.process_clock(self.window.get_widget("vmm-manager")):
|
||||
+ return
|
||||
+
|
||||
vmlist = self.window.get_widget("vm-list")
|
||||
model = vmlist.get_model()
|
||||
row = self.rows[conn.get_uri()]
|
||||
@@ -1039,6 +1064,10 @@
|
||||
dg.hide()
|
||||
dg.destroy()
|
||||
|
||||
+ def reschedule_minimize(self,ignore1,ignore2,ignore3,ignore4):
|
||||
+ self.timewatch.set_timeout_minutes(self.config.get_stats_minimize_minutes())
|
||||
+ logging.debug("minimize_minutes rescheduled to %s" % str(self.config.get_stats_minimize_minutes()))
|
||||
+
|
||||
def _err_dialog(self, summary, details):
|
||||
dg = vmmErrorDialog(None, 0, gtk.MESSAGE_ERROR,
|
||||
gtk.BUTTONS_CLOSE, summary, details)
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/timex.py virt-manager-0.5.3/src/virtManager/timex.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/timex.py 1969-12-31 17:00:00.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/timex.py 2008-02-20 10:24:05.000000000 -0700
|
||||
@@ -0,0 +1,44 @@
|
||||
+import gtk
|
||||
+import time
|
||||
+
|
||||
+class timex:
|
||||
+
|
||||
+ def __init__(self):
|
||||
+ self.iconify_adjust_minutes= 0
|
||||
+ self.iconify_time= 0
|
||||
+ self.iconified= False
|
||||
+ self.widgets = {}
|
||||
+
|
||||
+ # call with minutes= 0 to stop timer
|
||||
+ def set_timeout_minutes(self,minutes):
|
||||
+ self.iconify_adjust_minutes= minutes
|
||||
+ if self.iconify_adjust_minutes == 0:
|
||||
+ self.iconify_time= 0
|
||||
+
|
||||
+ def reset_clock(self):
|
||||
+ if self.iconify_adjust_minutes:
|
||||
+ self.iconify_time= time.time() + (self.iconify_adjust_minutes*60)
|
||||
+
|
||||
+ def handle_reset_clock_event(self,widget,event):
|
||||
+ self.reset_clock()
|
||||
+
|
||||
+ def handle_window_state_event(self,widget,event):
|
||||
+ new_state = event.new_window_state
|
||||
+ if new_state & gtk.gdk.WINDOW_STATE_ICONIFIED:
|
||||
+ self.widgets[widget.get_name()]= True
|
||||
+ else:
|
||||
+ self.widgets[widget.get_name()] = False
|
||||
+ self.reset_clock()
|
||||
+
|
||||
+ # return True if caller should skip processing
|
||||
+ def process_clock(self,widget):
|
||||
+ if self.widgets.has_key(widget.get_name()):
|
||||
+ if self.widgets[widget.get_name()] == True:
|
||||
+ return True
|
||||
+ if self.iconify_time == 0:
|
||||
+ return False
|
||||
+ if time.time() <= self.iconify_time:
|
||||
+ return False
|
||||
+ widget.iconify()
|
||||
+ return True
|
||||
+
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virt-manager.schemas.in virt-manager-0.5.3/src/virt-manager.schemas.in
|
||||
--- virt-manager-0.5.3.orig/src/virt-manager.schemas.in 2008-02-20 10:23:45.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virt-manager.schemas.in 2008-02-20 12:16:20.000000000 -0700
|
||||
@@ -118,6 +118,21 @@
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
+ <key>/schemas/apps/::PACKAGE::/stats/minimize-minutes</key>
|
||||
+ <applyto>/apps/::PACKAGE::/stats/minimize-minutes</applyto>
|
||||
+ <owner>::PACKAGE::</owner>
|
||||
+ <type>int</type>
|
||||
+ <default>-1</default>
|
||||
+
|
||||
+ <locale name="C">
|
||||
+ <short>Minimize main window minutes</short>
|
||||
+ <long>The number of minutes to wait before minimizing main window due to
|
||||
+ inactivity. Setting to 0 will disable the minimizing feature, but
|
||||
+ while window is un-minimized, GTK and DBus will leak memory.</long>
|
||||
+ </locale>
|
||||
+ </schema>
|
||||
+
|
||||
+ <schema>
|
||||
<key>/schemas/apps/::PACKAGE::/urls/url-list-length</key>
|
||||
<applyto>/apps/::PACKAGE::/urls/url-list-length</applyto>
|
||||
<owner>::PACKAGE::</owner>
|
@ -1,63 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/addhardware.py virt-manager-0.5.3/src/virtManager/addhardware.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/addhardware.py 2008-04-04 15:52:00.000000000 -0600
|
||||
+++ virt-manager-0.5.3/src/virtManager/addhardware.py 2008-04-04 15:53:17.000000000 -0600
|
||||
@@ -122,7 +122,7 @@
|
||||
network_list.add_attribute(text, 'text', 1)
|
||||
|
||||
device_list = self.window.get_widget("net-device")
|
||||
- device_model = gtk.ListStore(str, bool)
|
||||
+ device_model = gtk.ListStore(str, bool, str)
|
||||
device_list.set_model(device_model)
|
||||
text = gtk.CellRendererText()
|
||||
device_list.pack_start(text, True)
|
||||
@@ -313,7 +313,7 @@
|
||||
else:
|
||||
dev = self.window.get_widget("net-device")
|
||||
model = dev.get_model()
|
||||
- return ["bridge", model.get_value(dev.get_active_iter(), 0)]
|
||||
+ return ["bridge", model.get_value(dev.get_active_iter(), 2)]
|
||||
|
||||
def get_config_macaddr(self):
|
||||
macaddr = None
|
||||
@@ -348,7 +348,10 @@
|
||||
net = self.get_config_network()
|
||||
if net[0] == "bridge":
|
||||
self.window.get_widget("summary-net-type").set_text(_("Shared physical device"))
|
||||
- self.window.get_widget("summary-net-target").set_text(net[1])
|
||||
+ if net[1] != None:
|
||||
+ self.window.get_widget("summary-net-target").set_text(net[1])
|
||||
+ else:
|
||||
+ self.window.get_widget("summary-net-target").set_text(_("Default"))
|
||||
elif net[0] == "network":
|
||||
self.window.get_widget("summary-net-type").set_text(_("Virtual network"))
|
||||
self.window.get_widget("summary-net-target").set_text(net[1])
|
||||
@@ -816,13 +819,14 @@
|
||||
def populate_device_model(self, model):
|
||||
model.clear()
|
||||
hasShared = False
|
||||
+ model.append([_("(Default)"), True, None])
|
||||
for name in self.vm.get_connection().list_net_device_paths():
|
||||
net = self.vm.get_connection().get_net_device(name)
|
||||
if net.is_shared():
|
||||
hasShared = True
|
||||
- model.append(["%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True])
|
||||
+ model.append(["%s (%s %s)" % (net.get_name(), _("Bridge"), net.get_bridge()), True, net.get_bridge()])
|
||||
else:
|
||||
- model.append(["%s (%s)" % (net.get_name(), _("Not bridged")), False])
|
||||
+ model.append(["%s (%s)" % (net.get_name(), _("Not bridged")), False, net.get_name()])
|
||||
return hasShared
|
||||
|
||||
def populate_target_device_model(self, model):
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/host.py virt-manager-0.5.3/src/virtManager/host.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/host.py 2008-01-10 18:17:51.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/host.py 2008-04-04 15:54:26.000000000 -0600
|
||||
@@ -75,6 +75,9 @@
|
||||
self.window.get_widget("performance-table").attach(self.memory_usage_graph, 1, 2, 1, 2)
|
||||
|
||||
self.add = None
|
||||
+ # turn off "Virtual Networks" tab, until it is implemented...
|
||||
+ self.window.get_widget("details-tabs").get_nth_page(1).hide()
|
||||
+
|
||||
self.window.get_widget("details-tabs").get_nth_page(2).hide()
|
||||
|
||||
self.conn.connect("net-added", self.repopulate_networks)
|
@ -1,45 +1,41 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/engine.py virt-manager-0.5.3/src/virtManager/engine.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/engine.py 2008-03-12 15:21:57.000000000 -0600
|
||||
+++ virt-manager-0.5.3/src/virtManager/engine.py 2008-03-12 17:43:02.000000000 -0600
|
||||
@@ -34,7 +34,7 @@
|
||||
diff -Nuar virt-manager-0.7.0.orig//src/virtManager/engine.py virt-manager-0.7.0//src/virtManager/engine.py
|
||||
--- virt-manager-0.7.0.orig//src/virtManager/engine.py 2009-03-09 21:38:37.000000000 -0600
|
||||
+++ virt-manager-0.7.0//src/virtManager/engine.py 2009-04-17 11:48:12.000000000 -0600
|
||||
@@ -33,7 +33,8 @@
|
||||
from virtManager.manager import vmmManager
|
||||
from virtManager.details import vmmDetails
|
||||
from virtManager.console import vmmConsole
|
||||
from virtManager.asyncjob import vmmAsyncJob
|
||||
-from virtManager.create import vmmCreate
|
||||
+#from virtManager.create import vmmCreate
|
||||
+from vminstall.gtk.interface import VMCreate as vmmCreate
|
||||
from virtManager.serialcon import vmmSerialConsole
|
||||
from virtManager.host import vmmHost
|
||||
from virtManager.error import vmmErrorDialog
|
||||
@@ -311,16 +311,25 @@
|
||||
def show_manager(self):
|
||||
self.get_manager().show()
|
||||
import virtManager.util as util
|
||||
@@ -341,13 +342,24 @@
|
||||
return False
|
||||
return True
|
||||
|
||||
- def show_create(self, uri):
|
||||
- con = self.get_connection(uri)
|
||||
+ def _vmmcreate_closing(self,signal,key):
|
||||
+ self.windowCreate= None;
|
||||
|
||||
- if self.connections[uri]["windowCreate"] == None:
|
||||
- create = vmmCreate(self.get_config(), con)
|
||||
+ def show_create(self, uri):
|
||||
+ if self.windowCreate == None:
|
||||
+ self.windowCreate = None
|
||||
+
|
||||
def show_create(self, uri):
|
||||
if self.windowCreate == None:
|
||||
- create = vmmCreate(self.get_config(), self)
|
||||
+ create = vmmCreate(virtman=True,key=0)
|
||||
create.connect("action-show-console", self._do_show_console)
|
||||
create.connect("action-show-terminal", self._do_show_terminal)
|
||||
- create.connect("action-show-help", self._do_show_help)
|
||||
- self.connections[uri]["windowCreate"] = create
|
||||
- self.connections[uri]["windowCreate"].show()
|
||||
+ create.connect("vmmcreate-closing", self._vmmcreate_closing)
|
||||
+ self.windowCreate = create
|
||||
self.windowCreate = create
|
||||
- self.windowCreate.show(uri)
|
||||
+ self.windowCreate.show()
|
||||
+ else:
|
||||
+ message_box = gtk.MessageDialog(None,
|
||||
+ gtk.DIALOG_MODAL,
|
||||
+ gtk.MESSAGE_WARNING,
|
||||
+ gtk.BUTTONS_OK,
|
||||
+ _("A new installation is already in progress.\n\nUse the YaST \"Create Virtual Machines\" utility for concurrent installations."))
|
||||
+ gtk.DIALOG_MODAL,
|
||||
+ gtk.MESSAGE_WARNING,
|
||||
+ gtk.BUTTONS_OK,
|
||||
+ _("A new installation is already in progress.\n\nUse the YaST \"Create Virtual Machines\" utility for concurrent installations."))
|
||||
+ message_box.run()
|
||||
+ message_box.destroy()
|
||||
|
||||
def add_connection(self, uri, readOnly=None):
|
||||
def add_connection(self, uri, readOnly=None, autoconnect=False):
|
||||
conn = vmmConnection(self.get_config(), uri, readOnly)
|
||||
|
@ -1,34 +0,0 @@
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virtManager/connect.py virt-manager-0.5.3/src/virtManager/connect.py
|
||||
--- virt-manager-0.5.3.orig/src/virtManager/connect.py 2008-02-12 16:34:35.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virtManager/connect.py 2008-02-12 16:35:05.000000000 -0700
|
||||
@@ -95,7 +95,7 @@
|
||||
pass
|
||||
elif hv == HV_XEN:
|
||||
if conn == CONN_LOCAL:
|
||||
- uri = "xen"
|
||||
+ uri = "xen:///"
|
||||
if os.getuid() != 0:
|
||||
readOnly = True
|
||||
elif conn == CONN_TLS:
|
||||
diff -Nuar virt-manager-0.5.3.orig/src/virt-manager.py.in virt-manager-0.5.3/src/virt-manager.py.in
|
||||
--- virt-manager-0.5.3.orig/src/virt-manager.py.in 2008-02-12 16:34:35.000000000 -0700
|
||||
+++ virt-manager-0.5.3/src/virt-manager.py.in 2008-02-12 16:38:48.000000000 -0700
|
||||
@@ -172,7 +172,7 @@
|
||||
if engine.config.get_connections() is None or len(engine.config.get_connections()) == 0:
|
||||
tryuri = None
|
||||
if os.path.exists("/var/lib/xend") and os.path.exists("/proc/xen"):
|
||||
- tryuri = "xen"
|
||||
+ tryuri = "xen:///"
|
||||
elif os.path.exists("/usr/bin/qemu"):
|
||||
if os.getuid() == 0:
|
||||
tryuri = "qemu:///system"
|
||||
@@ -248,6 +248,9 @@
|
||||
|
||||
gtk.window_set_default_icon_from_file(icon_dir + "/" + appname + "-icon.svg")
|
||||
|
||||
+ if options.uri != None and (options.uri.upper() == "XEN" or options.uri.upper().startswith("XEN:")):
|
||||
+ options.uri = "xen:///"
|
||||
+
|
||||
if options.show and options.uri==None:
|
||||
raise OptionValueError("can't use --show-* options without --connect")
|
||||
|
Loading…
Reference in New Issue
Block a user