OBS User unknown 2007-05-03 21:48:15 +00:00 committed by Git OBS Bridge
parent 66a92e3bff
commit 1ba095023c
16 changed files with 490 additions and 209 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:de1a282233ce0fb11e35a743604e3d0a81ab9a1a5c51786104e03f18d5f2e500
size 369701

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:75235bcfbb776a0e59bba543b0dca8d5b3d73b826db09bf0146ef0148c0530f1
size 975315

View File

@ -1,7 +1,81 @@
-------------------------------------------------------------------
Thu May 3 14:50:03 MDT 2007 - ccoffing@novell.com
- Fix syntax error, which could result in unnecessary VNC
connection failures. (#237406)
-------------------------------------------------------------------
Fri Apr 27 13:20:07 MDT 2007 - ccoffing@novell.com
- Update to 0.4.0.
- Clean up spec file.
-------------------------------------------------------------------
Tue Apr 10 14:19:36 MDT 2007 - ccoffing@novell.com
- Remove code that (incorrectly) guesses the vnc port. (#259692)
- Do not refresh GUI every second (which causes xenstored to not
thrash so badly, which makes virt-manager more responsive and
less likely to time out or lock up). Partial fix for #237406.
- Import changeset 440, which makes virt-manager honor dom0's
keymap. (#241149)
- Revert patch for bug #244772, because it causes lockups, as
noted in bug #261110.
- Fix attaching disks to running VM. (#238986)
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Apr 2 01:56:33 CEST 2007 - ro@suse.de Mon Apr 2 01:56:33 CEST 2007 - ro@suse.de
- updated gconf scriptlets - updated gconf scriptlets
-------------------------------------------------------------------
Wed Mar 28 11:37:48 MDT 2007 - ccoffing@novell.com
- Update icon filename.
-------------------------------------------------------------------
Tue Mar 13 15:25:13 MDT 2007 - ccoffing@novell.com
- Import threading and timer tick patches from upstream to improve
stability. (#237406 and others)
- Do not offer QEMU option. (#254083)
-------------------------------------------------------------------
Mon Mar 12 08:44:33 MDT 2007 - ccoffing@novell.com
- Update virt-manager to match changes in vm-install's disk class,
due to bug #247849.
-------------------------------------------------------------------
Fri Mar 9 17:52:21 MST 2007 - ccoffing@novell.com
- Make Ctrl+Alt release the mouse cursor (#252998).
-------------------------------------------------------------------
Thu Mar 8 12:38:56 MST 2007 - ccoffing@novell.com
- Add release to "Requires: xen-tools", to prevent mixing with
pre-beta 5. (#238986, #252495)
-------------------------------------------------------------------
Fri Mar 2 17:53:44 MST 2007 - ccoffing@novell.com
- Disable gtk-menu-bar-accel when VM has focus, to allow VM to get
F10 key. (#240001)
-------------------------------------------------------------------
Tue Feb 27 13:36:06 MST 2007 - ccoffing@novell.com
- Update to 0.3.1.
- "Requires: librsvg" (#250156)
- Re-use vm-install's disk UI, to allow disks to be added/removed
from xend-managed VMs (currently only for running VMs). (#238986)
-------------------------------------------------------------------
Thu Feb 22 12:39:37 MST 2007 - ccoffing@novell.com
- If Xen isn't running, put up error window instead of raising.
(#244772)
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Feb 13 12:53:38 MST 2007 - ccoffing@novell.com Tue Feb 13 12:53:38 MST 2007 - ccoffing@novell.com

View File

@ -1,5 +1,5 @@
# #
# spec file for package virt-manager (Version 0.3.0) # spec file for package virt-manager (Version 0.4.0)
# #
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine # This file and all modifications and additions to the pristine
@ -12,44 +12,36 @@
Name: virt-manager Name: virt-manager
URL: http://virt-manager.et.redhat.com URL: http://virt-manager.et.redhat.com
BuildRequires: autoconf automake gconf2 gettext gtk2-devel python-devel python-gtk update-desktop-files BuildRequires: autoconf automake gconf2 gettext gtk2-devel python-devel python-gobject2-devel python-gtk-devel scrollkeeper update-desktop-files
%if %suse_version > 1010 # Only for directory ownership:
BuildRequires: python-gobject2-devel python-gtk-devel BuildRequires: libgnome yast2
%define gsysconfdir /etc
%define gconftool /usr/bin/gconftool-2
%else
%define gsysconfdir /etc/opt/gnome
%define gconftool /opt/gnome/bin/gconftool-2
%endif
License: GNU General Public License (GPL) License: GNU General Public License (GPL)
Group: System/Monitoring Group: System/Monitoring
Autoreqprov: yes Autoreqprov: yes
Version: 0.3.0 Version: 0.4.0
Release: 8 Release: 1
Summary: Virtual Machine Manager Summary: Virtual Machine Manager
Source0: virt-manager-0.3.0.tar.bz2 Source0: virt-manager-0.4.0.tar.bz2
Source1: rhpl-exception.py Source1: rhpl-exception.py
Patch10: virtman-desktop.diff
Patch11: virtman-install.diff
Patch12: virtman-type-register.diff
Patch13: virtman-console-keys.diff
Patch14: virtman-detach-yast.diff
Patch15: virtman-limit-popup.diff
Patch16: virtman-edit.diff
Patch17: virtman-wrong-port.diff
Patch18: virtman-typo.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64
Requires: python-gtk Requires: python-gtk
Requires: python-gnome Requires: python-gnome
# Absolutely require this version or newer
Requires: libvirt-python >= 0.1.4-3 Requires: libvirt-python >= 0.1.4-3
# FIXME: Check dbus-1-python 0.60 vs. 0.61 API changes
Requires: dbus-1-python Requires: dbus-1-python
# Minimum we've tested with Requires: libxml2-python
Requires: libxml2-python >= 2.6.23
Requires: vte Requires: vte
Requires: xen-tools >= 3.0.4_13100 Requires: librsvg
ExclusiveArch: %ix86 x86_64 Requires: xen-tools >= 3.0.4_13138-0.10
Patch0: virtman-desktop.diff
Patch1: virtman-install.diff
Patch2: virtman-type-register.diff
Patch3: virtman-deprecated-raise.diff
Patch5: virtman-console-keys.diff
Patch6: virtman-detach-yast.diff
Patch7: virtman-no-ungrab.diff
Patch8: virtman-limit-popup.diff
Patch9: virtman-error.diff
Requires: gconf2 Requires: gconf2
%gconf_schemas_prereq %gconf_schemas_prereq
@ -68,40 +60,33 @@ Authors:
%prep %prep
%setup -q %setup -q
%patch0 -p1 %patch10 -p1
%patch1 -p1 %patch11 -p1
%patch2 -p1 %patch12 -p1
%patch3 -p1 %patch13 -p1
%patch5 -p1 %patch14 -p1
%patch6 -p1 %patch15 -p1
%patch7 -p1 #%patch16 -p1 # re-port... or not?
%patch8 -p1 %patch17 -p1
%patch9 -p1 %patch18 -p1
%build %build
#automake
#autoconf
autoreconf -i autoreconf -i
%configure --sysconfdir=%{gsysconfdir} %configure
make make
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT
rm -f $RPM_BUILD_ROOT%{_libdir}/virt-manager/sparkline.a rm -f $RPM_BUILD_ROOT%{_libdir}/virt-manager/sparkline.{a,la}
rm -f $RPM_BUILD_ROOT%{_libdir}/virt-manager/sparkline.la
install -m755 %SOURCE1 $RPM_BUILD_ROOT%{_datadir}/virt-manager/exception.py install -m755 %SOURCE1 $RPM_BUILD_ROOT%{_datadir}/virt-manager/exception.py
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
# Unsupported languages:
rm -rf $RPM_BUILD_ROOT/usr/share/locale/as
rm -rf $RPM_BUILD_ROOT/usr/share/locale/or
%find_lang virt-manager
%find_gconf_schemas %find_gconf_schemas
%find_lang %{name}
cat %{name}.schemas_list %{name}.lang >%{name}.lst cat %{name}.schemas_list %{name}.lang >%{name}.lst
%suse_update_desktop_file virt-manager %suse_update_desktop_file %{name}
%clean %clean
rm -rf $RPM_BUILD_ROOT test ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" && rm -rf $RPM_BUILD_ROOT
%pre -f %{name}.schemas_pre %pre -f %{name}.schemas_pre
@ -109,14 +94,14 @@ rm -rf $RPM_BUILD_ROOT
%posttrans -f %{name}.schemas_posttrans %posttrans -f %{name}.schemas_posttrans
%files -f virt-manager.lst %files -f %{name}.lst
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc COPYING AUTHORS ChangeLog %doc COPYING AUTHORS ChangeLog
%{gsysconfdir}/gconf/schemas/virt-manager.schemas
%{_bindir}/virt-manager %{_bindir}/virt-manager
%{_libexecdir}/virt-manager-launch %{_libexecdir}/virt-manager-launch
%{_libdir}/virt-manager/ %{_libdir}/virt-manager/
%dir %{_datadir}/virt-manager %dir %{_datadir}/virt-manager
%{_datadir}/omf/virt-manager/
%{_datadir}/virt-manager/*.glade %{_datadir}/virt-manager/*.glade
%dir %{_datadir}/virt-manager/pixmaps %dir %{_datadir}/virt-manager/pixmaps
%{_datadir}/virt-manager/pixmaps/*.png %{_datadir}/virt-manager/pixmaps/*.png
@ -128,14 +113,51 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/virt-manager/vncViewer/*.py %{_datadir}/virt-manager/vncViewer/*.py
%{_datadir}/applications/YaST2/virt-manager.desktop %{_datadir}/applications/YaST2/virt-manager.desktop
%{_datadir}/dbus-1/services/virt-manager.service %{_datadir}/dbus-1/services/virt-manager.service
# FIXME: autobuild complains that these are unowned (not true...)
%dir %{_datadir}/dbus-1
%dir %{_datadir}/dbus-1/services
%dir %{_datadir}/applications/YaST2
%changelog %changelog
* Thu May 03 2007 - ccoffing@novell.com
- Fix syntax error, which could result in unnecessary VNC
connection failures. (#237406)
* Fri Apr 27 2007 - ccoffing@novell.com
- Update to 0.4.0.
- Clean up spec file.
* Tue Apr 10 2007 - ccoffing@novell.com
- Remove code that (incorrectly) guesses the vnc port. (#259692)
- Do not refresh GUI every second (which causes xenstored to not
thrash so badly, which makes virt-manager more responsive and
less likely to time out or lock up). Partial fix for #237406.
- Import changeset 440, which makes virt-manager honor dom0's
keymap. (#241149)
- Revert patch for bug #244772, because it causes lockups, as
noted in bug #261110.
- Fix attaching disks to running VM. (#238986)
* Mon Apr 02 2007 - ro@suse.de * Mon Apr 02 2007 - ro@suse.de
- updated gconf scriptlets - updated gconf scriptlets
* Wed Mar 28 2007 - ccoffing@novell.com
- Update icon filename.
* Tue Mar 13 2007 - ccoffing@novell.com
- Import threading and timer tick patches from upstream to improve
stability. (#237406 and others)
- Do not offer QEMU option. (#254083)
* Mon Mar 12 2007 - ccoffing@novell.com
- Update virt-manager to match changes in vm-install's disk class,
due to bug #247849.
* 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)
* 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
- Update to 0.3.1.
- "Requires: librsvg" (#250156)
- Re-use vm-install's disk UI, to allow disks to be added/removed
from xend-managed VMs (currently only for running VMs). (#238986)
* Thu Feb 22 2007 - ccoffing@novell.com
- If Xen isn't running, put up error window instead of raising.
(#244772)
* Tue Feb 13 2007 - ccoffing@novell.com * Tue Feb 13 2007 - ccoffing@novell.com
- Update to latest hg; grabs mouse for better mouse tracking. - Update to latest hg; grabs mouse for better mouse tracking.
(#240387) (#240387)

View File

@ -1,8 +1,8 @@
Index: virt-manager-0.3.0/src/virtManager/console.py Index: virt-manager-0.4.0/src/virtManager/console.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/console.py --- virt-manager-0.4.0.orig/src/virtManager/console.py
+++ virt-manager-0.3.0/src/virtManager/console.py +++ virt-manager-0.4.0/src/virtManager/console.py
@@ -45,6 +45,8 @@ class vmmConsole(gobject.GObject): @@ -49,6 +49,8 @@ class vmmConsole(gobject.GObject):
self.vm = vm self.vm = vm
topwin = self.window.get_widget("vmm-console") topwin = self.window.get_widget("vmm-console")
@ -11,7 +11,7 @@ Index: virt-manager-0.3.0/src/virtManager/console.py
topwin.hide() topwin.hide()
self.title = vm.get_name() + " " + topwin.get_title() self.title = vm.get_name() + " " + topwin.get_title()
topwin.set_title(self.title) topwin.set_title(self.title)
@@ -52,9 +54,9 @@ class vmmConsole(gobject.GObject): @@ -56,9 +58,9 @@ class vmmConsole(gobject.GObject):
self.window.get_widget("control-shutdown").get_icon_widget().set_from_file(config.get_icon_dir() + "/icon_shutdown.png") self.window.get_widget("control-shutdown").get_icon_widget().set_from_file(config.get_icon_dir() + "/icon_shutdown.png")
if self.config.get_console_keygrab() == 2: if self.config.get_console_keygrab() == 2:
@ -23,11 +23,11 @@ Index: virt-manager-0.3.0/src/virtManager/console.py
self.vncViewer.connect("pointer-grabbed", self.notify_grabbed) self.vncViewer.connect("pointer-grabbed", self.notify_grabbed)
self.vncViewer.connect("pointer-ungrabbed", self.notify_ungrabbed) self.vncViewer.connect("pointer-ungrabbed", self.notify_ungrabbed)
Index: virt-manager-0.3.0/src/vncViewer/vnc.py Index: virt-manager-0.4.0/src/vncViewer/vnc.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/vncViewer/vnc.py --- virt-manager-0.4.0.orig/src/vncViewer/vnc.py
+++ virt-manager-0.3.0/src/vncViewer/vnc.py +++ virt-manager-0.4.0/src/vncViewer/vnc.py
@@ -179,7 +179,7 @@ class GRFBViewer(gtk.DrawingArea): @@ -190,7 +190,7 @@ class GRFBViewer(gtk.DrawingArea):
"keyboard-ungrabbed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, []), "keyboard-ungrabbed": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, []),
} }
@ -36,7 +36,7 @@ Index: virt-manager-0.3.0/src/vncViewer/vnc.py
gtk.DrawingArea.__init__(self) gtk.DrawingArea.__init__(self)
self.fb = GRFBFrameBuffer(self) self.fb = GRFBFrameBuffer(self)
@@ -189,6 +189,7 @@ class GRFBViewer(gtk.DrawingArea): @@ -200,6 +200,7 @@ class GRFBViewer(gtk.DrawingArea):
self.autograbkey = autograbkey self.autograbkey = autograbkey
self.autograbptr = True self.autograbptr = True
self.topwin = topwin self.topwin = topwin
@ -44,21 +44,21 @@ Index: virt-manager-0.3.0/src/vncViewer/vnc.py
self.accel_groups = gtk.accel_groups_from_object(topwin) self.accel_groups = gtk.accel_groups_from_object(topwin)
self.preferred_encoding = (rfb.ENCODING_RAW, rfb.ENCODING_DESKTOP_RESIZE) self.preferred_encoding = (rfb.ENCODING_RAW, rfb.ENCODING_DESKTOP_RESIZE)
# Current impl of draw_solid is *far* too slow to be practical # Current impl of draw_solid is *far* too slow to be practical
@@ -445,6 +446,8 @@ class GRFBViewer(gtk.DrawingArea): @@ -460,6 +461,8 @@ class GRFBViewer(gtk.DrawingArea):
gtk.gdk.keyboard_grab(self.window, False, long(0)) gtk.gdk.keyboard_grab(self.window, False, long(0))
for g in self.accel_groups: for g in self.accel_groups:
self.topwin.remove_accel_group(g) self.topwin.remove_accel_group(g)
+ for w in self.sens: + for w in self.sens:
+ w.set_sensitive(False) + w.set_sensitive(False)
self.grabbedKeyboard = True self.gtk_settings = gtk.settings_get_default()
self.emit("keyboard-grabbed") self.gtk_settings_accel = self.gtk_settings.get_property('gtk-menu-bar-accel')
self.gtk_settings.set_property('gtk-menu-bar-accel', None)
@@ -452,6 +455,8 @@ class GRFBViewer(gtk.DrawingArea): @@ -470,6 +473,8 @@ class GRFBViewer(gtk.DrawingArea):
gtk.gdk.keyboard_ungrab() gtk.gdk.keyboard_ungrab()
for g in self.accel_groups: for g in self.accel_groups:
self.topwin.add_accel_group(g) self.topwin.add_accel_group(g)
+ for w in self.sens: + for w in self.sens:
+ w.set_sensitive(True) + w.set_sensitive(True)
self.gtk_settings.set_property('gtk-menu-bar-accel', self.gtk_settings_accel)
self.grabbedKeyboard = False self.grabbedKeyboard = False
self.emit("keyboard-ungrabbed") self.emit("keyboard-ungrabbed")

View File

@ -1,25 +0,0 @@
Index: virt-manager-0.3.0/src/virtManager/domain.py
===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/domain.py
+++ virt-manager-0.3.0/src/virtManager/domain.py
@@ -371,7 +371,7 @@ class vmmDomain(gobject.GObject):
elif self.lastStatus == libvirt.VIR_DOMAIN_CRASHED:
return _("Crashed")
else:
- raise RuntimeError(_("Unknown status code"))
+ raise RuntimeError(_("Unknown status code: %s") % self.lastStatus)
def run_status_icon(self):
return self.config.get_vm_status_icon(self.status())
@@ -443,9 +443,9 @@ class vmmDomain(gobject.GObject):
devdst = child.prop("dev")
if srcpath == None:
- raise "missing source path"
+ raise RuntimeError("missing source path")
if devdst == None:
- raise "missing destination device"
+ raise RuntimeError("missing destination device")
devtype = node.prop("device")
if devtype == None:

View File

@ -1,7 +1,7 @@
Index: virt-manager-0.3.0/src/virt-manager.desktop.in Index: virt-manager-0.4.0/src/virt-manager.desktop.in
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virt-manager.desktop.in --- virt-manager-0.4.0.orig/src/virt-manager.desktop.in
+++ virt-manager-0.3.0/src/virt-manager.desktop.in +++ virt-manager-0.4.0/src/virt-manager.desktop.in
@@ -1,9 +1,17 @@ @@ -1,9 +1,17 @@
[Desktop Entry] [Desktop Entry]
+Version=1.0 +Version=1.0
@ -21,15 +21,15 @@ Index: virt-manager-0.3.0/src/virt-manager.desktop.in
+X-SuSE-YaST-RootOnly=true +X-SuSE-YaST-RootOnly=true
+X-SuSE-YaST-Geometry= +X-SuSE-YaST-Geometry=
+X-SuSE-YaST-SortKey= +X-SuSE-YaST-SortKey=
+Icon=yast-network +Icon=yast-vm-management
+X-SuSE-translate=true +X-SuSE-translate=true
Index: virt-manager-0.3.0/src/Makefile.am Index: virt-manager-0.4.0/src/Makefile.am
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/Makefile.am --- virt-manager-0.4.0.orig/src/Makefile.am
+++ virt-manager-0.3.0/src/Makefile.am +++ virt-manager-0.4.0/src/Makefile.am
@@ -14,7 +14,7 @@ libexec_SCRIPTS = $(PACKAGE)-launch @@ -14,7 +14,7 @@ libexec_SCRIPTS = $(PACKAGE)-launch
gladedir = $(pkgdatadir) gladedir = $(pkgdatadir)
glade_DATA = $(PACKAGE).glade glade_DATA = $(wildcard $(srcdir)/*.glade)
-desktopdir = $(datadir)/applications -desktopdir = $(datadir)/applications
+desktopdir = $(datadir)/applications/YaST2/ +desktopdir = $(datadir)/applications/YaST2/

View File

@ -1,8 +1,8 @@
Index: virt-manager-0.3.0/src/virt-manager.py.in Index: virt-manager-0.4.0/src/virt-manager.py.in
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virt-manager.py.in --- virt-manager-0.4.0.orig/src/virt-manager.py.in
+++ virt-manager-0.3.0/src/virt-manager.py.in +++ virt-manager-0.4.0/src/virt-manager.py.in
@@ -148,6 +148,8 @@ def main(): @@ -177,6 +177,8 @@ def main():
optParser = OptionParser() optParser = OptionParser()
optParser.add_option("--profile", dest="profile", help="Generate runtime performance profile stats", metavar="FILE") optParser.add_option("--profile", dest="profile", help="Generate runtime performance profile stats", metavar="FILE")
optParser.set_defaults(uuid=None) optParser.set_defaults(uuid=None)
@ -11,7 +11,7 @@ Index: virt-manager-0.3.0/src/virt-manager.py.in
optParser.add_option("-c", "--connect", dest="uri", optParser.add_option("-c", "--connect", dest="uri",
help="Connect to hypervisor at URI", metavar="URI") help="Connect to hypervisor at URI", metavar="URI")
optParser.add_option("--no-dbus", action="store_true", dest="nodbus", optParser.add_option("--no-dbus", action="store_true", dest="nodbus",
@@ -199,6 +201,23 @@ def main(): @@ -228,6 +230,23 @@ def main():
logging.warning("Could not connection to session bus, disabling DBus service " + \ logging.warning("Could not connection to session bus, disabling DBus service " + \
str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1])) str(sys.exc_info()[0]) + " " + str(sys.exc_info()[1]))
@ -35,11 +35,11 @@ Index: virt-manager-0.3.0/src/virt-manager.py.in
# Finally start the app for real # Finally start the app for real
show_engine(engine, options.show, options.uri, options.uuid) show_engine(engine, options.show, options.uri, options.uuid)
if options.profile != None: if options.profile != None:
Index: virt-manager-0.3.0/src/virtManager/engine.py Index: virt-manager-0.4.0/src/virtManager/engine.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/engine.py --- virt-manager-0.4.0.orig/src/virtManager/engine.py
+++ virt-manager-0.3.0/src/virtManager/engine.py +++ virt-manager-0.4.0/src/virtManager/engine.py
@@ -229,7 +229,7 @@ class vmmEngine: @@ -278,7 +278,7 @@ class vmmEngine:
return self.connections[uri]["windowDetails"][uuid] return self.connections[uri]["windowDetails"][uuid]
def show_manager(self, uri): def show_manager(self, uri):

198
virtman-edit.diff Normal file
View File

@ -0,0 +1,198 @@
Index: virt-manager-0.3.1/src/virtManager/details.py
===================================================================
--- virt-manager-0.3.1.orig/src/virtManager/details.py
+++ virt-manager-0.3.1/src/virtManager/details.py
@@ -23,6 +23,10 @@ import gtk.glade
import libvirt
import sparkline
import logging
+import os
+
+import xen.install
+import xen.install.gui
class vmmDetails(gobject.GObject):
__gsignals__ = {
@@ -44,6 +48,7 @@ class vmmDetails(gobject.GObject):
topwin = self.window.get_widget("vmm-details")
topwin.hide()
topwin.set_title(self.vm.get_name() + " " + topwin.get_title())
+ self.topwin = topwin
self.window.get_widget("overview-name").set_text(self.vm.get_name())
self.window.get_widget("overview-uuid").set_text(self.vm.get_uuid())
@@ -129,15 +134,14 @@ class vmmDetails(gobject.GObject):
self.window.get_widget("details-toolbar").hide()
def show(self):
- dialog = self.window.get_widget("vmm-details")
- dialog.show_all()
+ self.topwin.show_all()
self.window.get_widget("overview-network-traffic-text").hide()
self.window.get_widget("overview-network-traffic-label").hide()
self.window.get_widget("overview-disk-usage-bar").hide()
self.window.get_widget("overview-disk-usage-text").hide()
self.window.get_widget("overview-disk-usage-label").hide()
self.network_traffic_graph.hide()
- dialog.present()
+ self.topwin.present()
def activate_performance_page(self):
self.window.get_widget("details-pages").set_current_page(0)
@@ -146,11 +150,11 @@ class vmmDetails(gobject.GObject):
self.window.get_widget("details-pages").set_current_page(1)
def close(self,ignore1=None,ignore2=None):
- self.window.get_widget("vmm-details").hide()
+ self.topwin.hide()
return 1
def is_visible(self):
- if self.window.get_widget("vmm-details").flags() & gtk.VISIBLE:
+ if self.topwin.flags() & gtk.VISIBLE:
return 1
return 0
@@ -387,45 +391,109 @@ class vmmDetails(gobject.GObject):
self.window.get_widget("config-memory-apply").set_sensitive(False)
+ def add_cdrom(self, button):
+ return self.add_disk(True)
+
+ def add_harddisk(self, button):
+ return self.add_disk(False)
+
+ def add_disk(self, is_cdrom):
+ disks = self.disks_widget.get_disks()
+ unused_vdevs = xen.install.get_unused_vdevs(self.options.full_virt, disks)
+ if len(unused_vdevs) == 0:
+ return
+ name = self.vm.get_name()
+
+ w = gtk.Window()
+ self.add_disk_window = w
+ w.set_modal(True)
+ w.set_transient_for(self.topwin)
+ w.set_title(xen.install.msg.title_disk)
+ self.disk_editor = xen.install.gui.DiskEditWidget()
+ disk_edit_widget = self.disk_editor.get_widget()
+ vbox = gtk.VBox()
+ w.add(vbox)
+ vbox.pack_start(disk_edit_widget, False)
+ bbox = gtk.HButtonBox()
+ bbox.set_layout(gtk.BUTTONBOX_END)
+ cancel_button = gtk.Button(stock=gtk.STOCK_CANCEL)
+ bbox.pack_start(cancel_button)
+ ok_button = gtk.Button(stock=gtk.STOCK_OK)
+ bbox.pack_start(ok_button)
+ vbox.pack_start(bbox, False)
+
+ ok_button.connect("clicked", self.do_add_disk)
+ cancel_button.connect("clicked", self.do_cancel_disk)
+
+ if is_cdrom:
+ cdrom = self.disk_editor.default_cdrom()
+ disk = xen.install.XenDisk(pdev=cdrom, vdev=unused_vdevs[0],
+ vdevType=xen.install.XenDisk.DEVICE_CDROM,
+ options=self.options, disk_group=disks)
+ else:
+ disk = xen.install.XenDisk(pdev=None, vdev=unused_vdevs[0],
+ vdevType=xen.install.XenDisk.DEVICE_DISK,
+ mb=4096, sparse=True,
+ options=self.options, disk_group=disks)
+ self.disk_editor.set(disk)
+ w.show_all()
+ w.present()
+
+ def do_add_disk(self, button):
+ disks = self.disks_widget.get_disks()
+ disk = self.disk_editor.get()
+ self.xen_add_disk(disk)
+ disks.append(disk)
+ self.disks_widget.set_disks(disks)
+ self.add_disk_window.destroy()
+
+ def do_cancel_disk(self, button):
+ self.add_disk_window.destroy()
+
+ def xen_add_disk(self, disk):
+ disk.setup()
+ if self.vm.is_active():
+ mode = 'w'
+ if disk.ro:
+ mode = 'r'
+ xfd = os.popen('xm block-attach %s "%s:%s" %s %s' % (self.vm.get_id(), disk.get_driver(),
+ disk.pdev, disk.vdev, mode))
+ status = xfd.close()
+ else:
+ # FIXME
+ pass
+
+ def xen_remove_disk(self, disk):
+ if self.vm.is_active():
+ xfd = os.popen('xm block-detach %s %s -f' % (self.vm.get_id(), disk.vdev))
+ status = xfd.close()
+ else:
+ # FIXME
+ pass
def prepare_disk_list(self):
- disks = self.window.get_widget("storage-view")
- disksModel = gtk.TreeStore(str,str,str,str)
- disks.set_model(disksModel)
-
- diskType_col = gtk.TreeViewColumn("Type")
- diskType_text = gtk.CellRendererText()
- diskType_col.pack_start(diskType_text, True)
- diskType_col.add_attribute(diskType_text, 'text', 0)
-
- diskSrc_col = gtk.TreeViewColumn("Source")
- diskSrc_text = gtk.CellRendererText()
- diskSrc_col.pack_start(diskSrc_text, True)
- diskSrc_col.add_attribute(diskSrc_text, 'text', 1)
-
- diskDevice_col = gtk.TreeViewColumn("Device")
- diskDevice_text = gtk.CellRendererText()
- diskDevice_col.pack_start(diskDevice_text, True)
- diskDevice_col.add_attribute(diskDevice_text, 'text', 2)
-
- diskDst_col = gtk.TreeViewColumn(_("Destination"))
- diskDst_text = gtk.CellRendererText()
- diskDst_col.pack_start(diskDst_text, True)
- diskDst_col.add_attribute(diskDst_text, 'text', 3)
-
- disks.append_column(diskType_col)
- disks.append_column(diskSrc_col)
- disks.append_column(diskDevice_col)
- disks.append_column(diskDst_col)
+ self.disks_widget = xen.install.gui.DisksWidget(allow_reorder=False,
+ remove_fn=self.xen_remove_disk,
+ add_cdrom_fn=self.add_cdrom,
+ add_harddisk_fn=self.add_harddisk)
+ notebook = self.window.get_widget("hw-panel")
+ notebook.remove_page(2)
+ notebook.insert_page(self.disks_widget.get_widget(), None, 2)
+ class Options:
+ pass
+ self.options = Options()
+ self.options.full_virt = self.vm.vm.OSType() == 'hvm'
+ self.options.name = self.vm.get_name()
def populate_disk_list(self):
diskList = self.vm.get_disk_devices()
-
- disks = self.window.get_widget("storage-view")
- disksModel = disks.get_model()
- disksModel.clear()
+ disks = []
for d in diskList:
- disksModel.append(None, d)
+ disks.append(xen.install.XenDisk(d[1], d[3], options=self.options,
+ disk_group=disks))
+ max_disks = len(xen.install.get_possible_vdevs(self.options.full_virt))
+ self.disks_widget.set_max_disks(max_disks)
+ self.disks_widget.set_disks(disks)
def prepare_network_list(self):
nets = self.window.get_widget("network-view")

View File

@ -1,13 +0,0 @@
Index: virt-manager-0.3.0/src/vncViewer/vnc.py
===================================================================
--- virt-manager-0.3.0.orig/src/vncViewer/vnc.py
+++ virt-manager-0.3.0/src/vncViewer/vnc.py
@@ -423,7 +423,7 @@ class GRFBViewer(gtk.DrawingArea):
def set_autograb_keyboard(self, grab):
self.autograbkey = grab
- if grab == False and grabbedKeyboard:
+ if grab == False and self.grabbedKeyboard:
self.ungrab_keyboard()

View File

@ -1,17 +1,17 @@
Index: virt-manager-0.3.0/src/virtManager/engine.py Index: virt-manager-0.4.0/src/virtManager/engine.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/engine.py --- virt-manager-0.4.0.orig/src/virtManager/engine.py
+++ virt-manager-0.3.0/src/virtManager/engine.py +++ virt-manager-0.4.0/src/virtManager/engine.py
@@ -30,7 +30,7 @@ from virtManager.manager import vmmManag @@ -32,7 +32,7 @@ from virtManager.manager import vmmManag
from virtManager.details import vmmDetails from virtManager.details import vmmDetails
from virtManager.console import vmmConsole from virtManager.console import vmmConsole
from virtManager.asyncjob import vmmAsyncJob from virtManager.asyncjob import vmmAsyncJob
-from virtManager.create import vmmCreate -from virtManager.create import vmmCreate
+from xen.install.gui import VMCreate as vmmCreate +from xen.install.gui.gui import VMCreate as vmmCreate
from virtManager.serialcon import vmmSerialConsole from virtManager.serialcon import vmmSerialConsole
from virtManager.error import vmmErrorDialog
class vmmEngine: from virtManager.host import vmmHost
@@ -38,7 +38,7 @@ class vmmEngine: @@ -42,7 +42,7 @@ class vmmEngine:
self.windowConnect = None self.windowConnect = None
self.windowPreferences = None self.windowPreferences = None
self.windowAbout = None self.windowAbout = None
@ -20,17 +20,17 @@ Index: virt-manager-0.3.0/src/virtManager/engine.py
self.connections = {} self.connections = {}
self.timer = None self.timer = None
@@ -136,8 +136,7 @@ class vmmEngine: @@ -162,8 +162,7 @@ class vmmEngine:
ct += window.is_visible() for name in [ "windowManager", "windowHost"]:
if conn["windowManager"]: if conn[name] != None and conn[name].is_visible():
ct += conn["windowManager"].is_visible() ct += 1
- if self.windowCreate: - if self.windowCreate:
- ct += self.windowCreate.is_visible() - ct += self.windowCreate.is_visible()
+ ct += len(filter(lambda w: w.is_visible(), self.windowCreate.values())) + ct += len(filter(lambda w: w.is_visible(), self.windowCreate.values()))
return ct return ct
def change_timer_interval(self,ignore1,ignore2,ignore3,ignore4): def change_timer_interval(self,ignore1,ignore2,ignore3,ignore4):
@@ -245,13 +244,21 @@ class vmmEngine: @@ -295,14 +294,21 @@ class vmmEngine:
self.connections[uri]["windowManager"] = manager self.connections[uri]["windowManager"] = manager
self.connections[uri]["windowManager"].show() self.connections[uri]["windowManager"].show()
@ -42,6 +42,7 @@ Index: virt-manager-0.3.0/src/virtManager/engine.py
- self.windowCreate = vmmCreate(self.get_config(), self.get_connection(uri, False)) - self.windowCreate = vmmCreate(self.get_config(), self.get_connection(uri, False))
- self.windowCreate.connect("action-show-console", self._do_show_console) - self.windowCreate.connect("action-show-console", self._do_show_console)
- self.windowCreate.connect("action-show-terminal", self._do_show_terminal) - self.windowCreate.connect("action-show-terminal", self._do_show_terminal)
- self.windowCreate.connect("action-show-help", self._do_show_help)
- self.windowCreate.reset_state() - self.windowCreate.reset_state()
- self.windowCreate.show() - self.windowCreate.show()
+ key = 0 + key = 0
@ -56,5 +57,17 @@ Index: virt-manager-0.3.0/src/virtManager/engine.py
+ window.connect("vmmcreate-closing", self._create_closing) + window.connect("vmmcreate-closing", self._create_closing)
+ window.show() + window.show()
def get_connection(self, uri, readOnly=True): def get_connection(self, uri, readOnly=None):
if not(self.connections.has_key(uri)): if not(self.connections.has_key(uri)):
Index: virt-manager-0.4.0/src/virtManager/createnet.py
===================================================================
--- virt-manager-0.4.0.orig/src/virtManager/createnet.py
+++ virt-manager-0.4.0/src/virtManager/createnet.py
@@ -22,7 +22,6 @@ import gtk
import gtk.gdk
import gtk.glade
import libvirt
-import virtinst
import os, sys
import logging
import dbus

View File

@ -1,31 +1,31 @@
Index: virt-manager-0.3.0/src/virtManager/console.py Index: virt-manager-0.4.0/src/virtManager/console.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/console.py --- virt-manager-0.4.0.orig/src/virtManager/console.py
+++ virt-manager-0.3.0/src/virtManager/console.py +++ virt-manager-0.4.0/src/virtManager/console.py
@@ -43,6 +43,7 @@ class vmmConsole(gobject.GObject): @@ -47,6 +47,7 @@ class vmmConsole(gobject.GObject):
self.window = gtk.glade.XML(config.get_glade_file(), "vmm-console", domain="virt-manager") self.window = gtk.glade.XML(config.get_glade_dir() + "/vmm-console.glade", "vmm-console", domain="virt-manager")
self.config = config self.config = config
self.vm = vm self.vm = vm
+ self.grab_notifications = 1 + self.grab_notifications = 1
topwin = self.window.get_widget("vmm-console") topwin = self.window.get_widget("vmm-console")
sens = (self.window.get_widget("menubar2"), sens = (self.window.get_widget("menubar2"),
@@ -118,6 +119,10 @@ class vmmConsole(gobject.GObject): @@ -123,6 +124,10 @@ class vmmConsole(gobject.GObject):
def notify_grabbed(self, src): def notify_grabbed(self, src):
topwin = self.window.get_widget("vmm-console") topwin = self.window.get_widget("vmm-console")
+ topwin.set_title(_("Press Ctrl+Alt to release mouse.") + " " + self.title) + topwin.set_title(_("Press Ctrl+Alt to release pointer.") + " " + self.title)
+ if not self.grab_notifications: + if not self.grab_notifications:
+ return + return
+ self.grab_notifications -= 1 + self.grab_notifications -= 1
try: try:
bus = dbus.SessionBus() bus = dbus.SessionBus()
noteSvr = bus.get_object("org.freedesktop.Notifications", "/org/freedesktop/Notifications") noteSvr = bus.get_object("org.freedesktop.Notifications", "/org/freedesktop/Notifications")
@@ -136,7 +141,6 @@ class vmmConsole(gobject.GObject): @@ -141,7 +146,6 @@ class vmmConsole(gobject.GObject):
5 * 1000); 5 * 1000);
except Exception, e: except Exception, e:
pass pass
- topwin.set_title(_("Press Ctrl+Alt to release mouse.") + " " + self.title) - topwin.set_title(_("Press Ctrl+Alt to release pointer.") + " " + self.title)
def notify_ungrabbed(self, src): def notify_ungrabbed(self, src):
topwin = self.window.get_widget("vmm-console") topwin = self.window.get_widget("vmm-console")

View File

@ -1,21 +0,0 @@
Index: virt-manager-0.3.0/src/vncViewer/vnc.py
===================================================================
--- virt-manager-0.3.0.orig/src/vncViewer/vnc.py
+++ virt-manager-0.3.0/src/vncViewer/vnc.py
@@ -482,11 +482,14 @@ class GRFBViewer(gtk.DrawingArea):
def key_press(self, win, event):
# Allow Ctrl+Alt+Esc to break the pointer grab
if self.will_autograb_pointer():
- if event.state & gtk.gdk.CONTROL_MASK and event.state & gtk.gdk.MOD1_MASK and gtk.gdk.pointer_is_grabbed():
+ if gtk.gdk.pointer_is_grabbed() and \
+ ((event.state & gtk.gdk.CONTROL_MASK and
+ (event.keyval == gtk.keysyms.Alt_L or event.keyval == gtk.keysyms.Alt_R)) or
+ (event.state & gtk.gdk.MOD1_MASK and
+ (event.keyval == gtk.keysyms.Control_L or event.keyval == gtk.keysyms.Control_R))):
self.ungrab_pointer()
return
- self.ungrab_pointer()
# Key handling in VNC is screwy. The event.keyval from GTK is
# interpreted relative to modifier state. This really messes
# up with VNC which has no concept of modifiers. If we interpret

View File

@ -1,62 +1,62 @@
Index: virt-manager-0.3.0/src/virtManager/connect.py Index: virt-manager-0.4.0/src/virtManager/connect.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/connect.py --- virt-manager-0.4.0.orig/src/virtManager/connect.py
+++ virt-manager-0.3.0/src/virtManager/connect.py +++ virt-manager-0.4.0/src/virtManager/connect.py
@@ -102,4 +102,3 @@ class vmmConnect(gobject.GObject): @@ -99,4 +99,3 @@ class vmmConnect(gobject.GObject):
self.close() self.close()
self.emit("completed", uri, readOnly) self.emit("completed", uri, readOnly)
-gobject.type_register(vmmConnect) -gobject.type_register(vmmConnect)
Index: virt-manager-0.3.0/src/virtManager/connection.py Index: virt-manager-0.4.0/src/virtManager/connection.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/connection.py --- virt-manager-0.4.0.orig/src/virtManager/connection.py
+++ virt-manager-0.3.0/src/virtManager/connection.py +++ virt-manager-0.4.0/src/virtManager/connection.py
@@ -242,5 +242,4 @@ class vmmConnection(gobject.GObject): @@ -569,5 +569,4 @@ class vmmConnection(gobject.GObject):
uuid.append('-') uuid.append('-')
return "".join(uuid) return "".join(uuid)
-gobject.type_register(vmmConnection) -gobject.type_register(vmmConnection)
Index: virt-manager-0.3.0/src/virtManager/console.py Index: virt-manager-0.4.0/src/virtManager/console.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/console.py --- virt-manager-0.4.0.orig/src/virtManager/console.py
+++ virt-manager-0.3.0/src/virtManager/console.py +++ virt-manager-0.4.0/src/virtManager/console.py
@@ -454,4 +454,3 @@ class vmmConsole(gobject.GObject): @@ -486,4 +486,3 @@ class vmmConsole(gobject.GObject):
self.ignorePause = False self.ignorePause = False
self.ignorePause = False self.ignorePause = False
-gobject.type_register(vmmConsole) -gobject.type_register(vmmConsole)
Index: virt-manager-0.3.0/src/virtManager/details.py Index: virt-manager-0.4.0/src/virtManager/details.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/details.py --- virt-manager-0.4.0.orig/src/virtManager/details.py
+++ virt-manager-0.3.0/src/virtManager/details.py +++ virt-manager-0.4.0/src/virtManager/details.py
@@ -466,4 +466,3 @@ class vmmDetails(gobject.GObject): @@ -581,4 +581,3 @@ class vmmDetails(gobject.GObject):
for d in netList: self.addhw.show()
netsModel.append(None, d)
-gobject.type_register(vmmDetails) -gobject.type_register(vmmDetails)
Index: virt-manager-0.3.0/src/virtManager/domain.py Index: virt-manager-0.4.0/src/virtManager/domain.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/domain.py --- virt-manager-0.4.0.orig/src/virtManager/domain.py
+++ virt-manager-0.3.0/src/virtManager/domain.py +++ virt-manager-0.4.0/src/virtManager/domain.py
@@ -510,4 +510,3 @@ class vmmDomain(gobject.GObject): @@ -569,4 +569,3 @@ class vmmDomain(gobject.GObject):
memory = int(memory) memory = int(memory)
self.vm.setMaxMemory(memory) self.vm.setMaxMemory(memory)
-gobject.type_register(vmmDomain) -gobject.type_register(vmmDomain)
Index: virt-manager-0.3.0/src/virtManager/manager.py Index: virt-manager-0.4.0/src/virtManager/manager.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/virtManager/manager.py --- virt-manager-0.4.0.orig/src/virtManager/manager.py
+++ virt-manager-0.3.0/src/virtManager/manager.py +++ virt-manager-0.4.0/src/virtManager/manager.py
@@ -597,4 +597,3 @@ class vmmManager(gobject.GObject): @@ -705,4 +705,3 @@ class vmmManager(gobject.GObject):
data.reverse() vm.resume()
cell.set_property('data_array', data)
-gobject.type_register(vmmManager) -gobject.type_register(vmmManager)
Index: virt-manager-0.3.0/src/vncViewer/vnc.py Index: virt-manager-0.4.0/src/vncViewer/vnc.py
=================================================================== ===================================================================
--- virt-manager-0.3.0.orig/src/vncViewer/vnc.py --- virt-manager-0.4.0.orig/src/vncViewer/vnc.py
+++ virt-manager-0.3.0/src/vncViewer/vnc.py +++ virt-manager-0.4.0/src/vncViewer/vnc.py
@@ -113,7 +113,6 @@ class GRFBFrameBuffer(rfb.RFBFrameBuffer @@ -113,7 +113,6 @@ class GRFBFrameBuffer(rfb.RFBFrameBuffer
def move_cursor(self, x, y): def move_cursor(self, x, y):
logging.error("Unsupported move_cursor operation requested") logging.error("Unsupported move_cursor operation requested")
@ -65,15 +65,15 @@ Index: virt-manager-0.3.0/src/vncViewer/vnc.py
class GRFBNetworkClient(rfb.RFBNetworkClient, gobject.GObject): class GRFBNetworkClient(rfb.RFBNetworkClient, gobject.GObject):
@@ -166,7 +165,6 @@ class GRFBNetworkClient(rfb.RFBNetworkCl @@ -177,7 +176,6 @@ class GRFBNetworkClient(rfb.RFBNetworkCl
if y < 0:
def update_pointer(self, mask, x, y): y = 0
self.send(pack('>BBHH', 5, mask, x, y)) self.send(pack('>BBHH', 5, mask, x, y))
-gobject.type_register(GRFBNetworkClient) -gobject.type_register(GRFBNetworkClient)
class GRFBViewer(gtk.DrawingArea): class GRFBViewer(gtk.DrawingArea):
@@ -579,7 +577,6 @@ class GRFBViewer(gtk.DrawingArea): @@ -598,7 +596,6 @@ class GRFBViewer(gtk.DrawingArea):
gc = self.window.new_gc() gc = self.window.new_gc()
self.window.draw_drawable(gc, self.fb.get_pixmap(), event.area.x, event.area.y, event.area.x, event.area.y, event.area.width, event.area.height) self.window.draw_drawable(gc, self.fb.get_pixmap(), event.area.x, event.area.y, event.area.x, event.area.y, event.area.width, event.area.height)

15
virtman-typo.diff Normal file
View File

@ -0,0 +1,15 @@
Index: virt-manager-0.4.0/src/vncViewer/vnc.py
===================================================================
--- virt-manager-0.4.0.orig/src/vncViewer/vnc.py
+++ virt-manager-0.4.0/src/vncViewer/vnc.py
@@ -305,9 +305,7 @@ class GRFBViewer(gtk.DrawingArea):
return self.fb.get_name()
def connect_to_host(self, host, port, debug=0):
- if self.client != None:
- self.disconnect_from_host()
- self.client = NOne
+ self.disconnect_from_host()
client = GRFBNetworkClient(host, port, self.fb, debug=debug, preferred_encoding=self.preferred_encoding)
client.connect("disconnected", self._client_disconnected)

18
virtman-wrong-port.diff Normal file
View File

@ -0,0 +1,18 @@
Index: virt-manager-0.4.0/src/virtManager/domain.py
===================================================================
--- virt-manager-0.4.0.orig/src/virtManager/domain.py
+++ virt-manager-0.4.0/src/virtManager/domain.py
@@ -434,11 +434,8 @@ class vmmDomain(gobject.GObject):
port = None
if type == "vnc":
port = self.get_xml_string("/domain/devices/graphics[@type='vnc']/@port")
- if port == None:
- port = 5900 + self.get_id()
- else:
- port = int(port)
- return [type, "127.0.0.1", port]
+ if port is not None:
+ return [type, "127.0.0.1", int(port)]
return [type, None, None]
def get_disk_devices(self):