diff --git a/AUTHORS b/AUTHORS index 29202e0f..e2b7ba63 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,16 +3,19 @@ Virtual Machine Manager code is developed by: - Daniel Berrange - Hugh O. Brock + Daniel Berrange + Hugh O. Brock + Jeremy Katz The user interaction / interface design and artwork is done by: - Máirín Duffy + Máirín Duffy Further patches have been submitted by: + William Sheehan + <...send a patch & get your name here...> diff --git a/ChangeLog b/ChangeLog index c0fe9308..2a848f91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,655 @@ +2006-09-15 "Daniel P. Berrange + + * po/Makefile.am, po/en_GB.po, po/virt-manager.pot: + Refreshd POT files + [d5b685a8f1e4] [tip] + + * src/virt-manager.glade: + Always enable VNC toolbars to avoid GTK window resizing issues + [a1a7e46e23a4] + +2006-09-13 "Daniel P. Berrange + + * Merge heads + [e8947829c1e6] + + * src/vncViewer/rfb.py, src/vncViewer/vnc.py: + Added support for batching of redraws. Initial support for hextile, + albeit faaaaar to slow to turn on. Fix signature of cursor method + [4db02411579c] + +2006-09-12 berrange + + * src/virt-manager.glade, src/virtManager/create.py: + Re-factor the install wizard to only grab values at end of process. + Also display a config summary at end + [e8a823f31a35] + +2006-09-11 berrange + + * src/virt-manager.glade, src/virtManager/about.py: + Since we don't run the blocking event loop, hook up the response + signal for the close button. bz 205943 + [493496779f6a] + +2006-09-04 "Daniel P. Berrange + + * .hgtags: + Added tag RELEASE-0.2.1-1 for changeset + 4aba9106462877a7df2bf1211bc41eb5321af1ee + [d94ce2d634e1] + + * ChangeLog, configure.ac, po/virt-manager.pot, virt-manager.spec.in: + Bump to 0.2.1 for new release + [4aba91064628] [RELEASE-0.2.1-1] + +2006-09-01 "Daniel P. Berrange + + * po/virt-manager.pot, src/Makefile.am, src/virt-manager.glade, src + /virt-manager.schemas.in, src/virtManager/preferences.py, virt- + manager.spec.in: + Hide preference for stats history length. Add gconf schema to setup + default config settings. + [1ab3b1657a5b] + + * src/virt-manager.glade, src/virtManager/details.py, + src/virtManager/manager.py: + Hide / disable stuff we're not implementing yet - ie disk/net stats + & new hardware + [d41ce447fd19] + + * src/virt-manager.glade, src/virtManager/details.py: + Change slider to spin box for adjusting memory + [80753ab23d1b] + +2006-09-01 "Jeremy Katz + + * src/virt-manager.glade, src/virtManager/console.py: + merge + [8a71c82f3208] + + * src/virt-manager.glade, src/virtManager/create.py: + some text tweaks. also, don't ask about PV vs FV if not on a FV + capable box + [d73bd51d34a4] + + * src/virt-manager.glade: + switch memory config to spin buttons + [be2ff5d5065e] + + * src/virt-manager.glade, src/virtManager/details.py: + add a menu bar for the details view, move some things around to be + similar to the console view + [10efc7ee07d0] + + * src/virtManager/console.py: + tie together pause buttons + [a222c2f9bfe6] + + * pixmaps/icon_shutdown.png, src/virt-manager.glade, + src/virtManager/console.py: + various UI tweaks for the graphical console to match the HIG as well + as to be a little cleaner looking + [b212dd69d528] + +2006-09-01 "Daniel P. Berrange + + * src/virt-manager.glade: + Merge heads + [89413ec479a2] + + * po/virt-manager.pot, src/virt-manager.glade, + src/virtManager/console.py: + Grab keyboard when going full screen. Center vnc/image widgets so it + looks better full screen + [5ac5dd9841d7] + +2006-09-01 "Jeremy Katz + + * src/virt-manager.glade: + merge + [e32d7b41e2fd] + + * src/virt-manager.glade, src/virtManager/create.py: + some UI cleanups for domain creation wizard + [a19f67306922] + +2006-08-31 "Daniel P. Berrange + + * src/virt-manager.glade: + Switched memory slider policy to discontinuous & ensure adjustments + are in units of 1, not fractional + [fa21d7642401] + +2006-08-29 "Jeremy Katz + + * merge + [0db881092cda] + +2006-08-28 "Jeremy Katz + + * src/virtManager/create.py: + support for graphics console with PV guests, show the appropriate + console once the guest is created + [d1df8674daf9] + +2006-08-29 "Daniel P. Berrange + + * src/virt-manager.glade, src/virtManager/console.py: + Added button to make VNC window fullscreen + [5b6f6e513dfd] + + * src/virt-manager.glade, src/virtManager/details.py, + src/virtManager/domain.py: + Extract disk & network device information from domain XML + [1a988faa3844] + +2006-08-28 "Daniel P. Berrange + + * src/virtManager/manager.py: + Use a stock label for popup menu + [c519f8a691c6] + + * po/virt-manager.pot, src/virtManager/connect.py, + src/virtManager/console.py, src/virtManager/details.py, + src/virtManager/remote.py, src/vncViewer/rfb.py, + src/vncViewer/vnc.py: + Re-factor VNC auth protocol handling to allow caller to determine + whether a password is needed or not. Go straight to VNC viewer if no + auth is needed. Set default button/focus handling. + [a7281bebdce3] + + * src/virtManager/details.py: + Disable hardware config if we're read only. Hide unused 'add + hardware' option + [219fbd513836] + +2006-08-25 "Daniel P. Berrange + + * docs/dbus-remote-control.txt, src/virtManager/remote.py: + Hook up the serial console to dbus service + [41b18c50618d] + + * virt-manager.spec.in: + Pulled in latest changes to spec file from Fedora + [047346ff3818] + +2006-08-24 "Hugh O. Brock + + * src/virtManager/create.py: + remove ugly print spew + [959bff8e7c94] + +2006-08-23 "Hugh O. Brock + + * src/virtManager/create.py: + Fix default value on file size spinner + [e3c10baaa3e3] + + * merge Dan's changes + [9a395dff3d21] + + * src/virt-manager.glade, src/virtManager/create.py: + Pull cdrom path from HAL -- allow installs from CD as well as iso + [658a94a58d9b] + +2006-08-22 "Daniel P. Berrange + + * .hgtags: + Added tag RELEASE-0.2.0-1 for changeset + 869707b48d518080f877bace387fa43458e197e0 + [59614715161b] + + * po/Makefile.am: + Rename one of the targets to avoid accidental build artifacts + getting into the dist tarball + [869707b48d51] [RELEASE-0.2.0-1] + + * Merged heads + [ddd0925ecb0f] + + * README, configure.ac, po/virt-manager.pot, virt-manager.spec.in: + Incremented deps on xeninst & libvirt. Bumped release to 0.2.0 + [815a974f1e27] + +2006-08-22 "Hugh O. Brock + + * src/virtManager/create.py: + Fix typo + [43d3fe453377] + + * src/virtManager/create.py: + properly unmount nfs dirs when done, do better with error handling + [140b26d878c9] + +2006-08-21 "Hugh O. Brock + + * src/virtManager/config.py, src/virtManager/create.py: + Add proper python logging, better kickstart URL validation, better + create error handling. + [f91df0c68be8] + + * src/virtManager/create.py: + Add URL validation, better error handling. Better logging coming. + [ded6e0492a04] + + * src/virtManager/connection.py, src/virtManager/create.py, + src/virtManager/engine.py, src/virtManager/manager.py: + Add code to register/unregister vm-added signal to stop consoles + from spontaneously popping up + [9ef14336af51] + +2006-08-18 "Daniel P. Berrange + + * src/virt-manager.glade: + Wrap message about max memory in details dialog box + [548990eead29] + + * po/virt-manager.pot, src/virt-manager.glade: + Reverting a bunch of stuff an old version of glade-2 changed when it + shouldn't have from changeset d189201f4cf6 + [695c219eb1d1] + + * docs/dbus-remote-control.txt, src/virtManager/remote.py: + Hook up domain creator to dbus service. Fix dbus docs + [c43faf7c5a63] + + * src/virtManager/serialcon.py: + Fix method naming to be consistent with other widgets - this makes + auto-close upon domain destroy work + [0d628d6f6b76] + + * po/virt-manager.pot, src/virtManager/serialcon.py: + Catch & ignore errors when closing serial console + [ee203d7879f5] + + * po/virt-manager.pot, src/virtManager/create.py, + src/virtManager/engine.py: + If creating a PV domain, show the serial terminal instead of VNC + console (temporary until PV vfb works) + [1d44b35da842] + + * po/virt-manager.pot, src/virtManager/console.py: + Print error message when failing to use console + [15affad10836] + + * src/virt-manager.glade: + Merge heads + [d189201f4cf6] + + * po/virt-manager.pot, src/virt-manager.glade: + Remove the 'secure connection' radiobutton (again). Rename + restoremenu + [7d7ca9b9dea0] + + * src/virtManager/manager.py: + Disable new domain, restore domain menus / buttons for a read only + connections + [e5f4bbbd0fb3] + + * src/virtManager/engine.py: + Destroy serial console window when a domain goes away + [82e8bf8761f0] + +2006-08-18 "Hugh O. Brock + + * src/virtManager/create.py: + Fix vcpu bug and memory-size-int issue + [43100d1ef03d] + +2006-08-18 "Daniel P. Berrange + + * src/virt-manager.glade: + Tweak layout / text for VCPU / memory config + [5d6d5cd90301] + +2006-08-17 "Daniel P. Berrange + + * src/virt-manager.glade: + Merge heads + [5c362a797b91] + + * virt-manager.spec.in: + Added requirement on python-xeninst for VM creation + [5f14a423a71e] + + * src/virt-manager.glade, src/virtManager/console.py, + src/vncViewer/rfb.py, src/vncViewer/vnc.py: + Added support for desktop resize protocol, auto-resize window to fit + VNC widget + [fbbdc266efd3] + + * src/virt-manager.py.in: + Added commandline flag to disable dbus service (useful in testing) + [a0233e84b761] + +2006-08-17 "Hugh O. Brock + + * merged Dan's changes + [ea99084d949d] + + * src/virt-manager.glade, src/virtManager/create.py, + src/virtManager/engine.py: + UI bugs fixed, make the create wizard exit after the machine is + created + [4954d625ae46] + +2006-08-17 "Daniel P. Berrange + + * Merge heads + [56b0410be677] + + * src/virtManager/config.py: + Make keyring use a little more safe + [102100b937ac] + + * src/virt-manager.py.in: + Initialize threads, otherwise GNOME VFS goes crash-tastic + [115d33e9aaa9] + +2006-08-16 "Hugh O. Brock + + * src/virt-manager.glade: + merge Dan's changes + [f86064a1f371] + + * src/virt-manager.glade, src/virtManager/create.py, + src/virtManager/engine.py: + pop up the console window for the new VM + [2baf9f2ba2e2] + + * src/virtManager/create.py: + first pass at progress bar while creating the VM + [a43541ecdbfd] + +2006-08-16 "Daniel P. Berrange + + * src/virtManager/keyring.py: + We have to make sure the 'default' keyring is created or we'll + abort() on an NULL pointer. Also handle keyring failure gracefully + [6c0627fddd85] + +2006-08-16 berrange + + * src/virt-manager.glade: + Merge heads + [9c8b03120525] + + * README, virt-manager.spec.in: + Bump min required libvirt to 0.1.4 to pull in requsite bug fixes / + features we need + [f7708cb34e88] + + * pixmaps/icon_screenshot.png, src/virt-manager.glade, + src/virtManager/console.py: + Added UI for taking a screenshot of the VNC window + [e43deaae9dcd] + + * src/virtManager/keyring.py: + Catch exceptions from gnomekeyring - eg the daemon not running is + one problem + [cbd393bba558] + +2006-08-15 "Hugh O. Brock + + * src/virt-manager.glade: + resolve danpb's changes + [5ae165154544] + + * src/virtManager/create.py: + create works *if* xeninst is present -- waiting on packaging + [ac360ad91a71] + + * src/virt-manager.glade, src/virtManager/create.py: + Kickstart arg is optional, URL is required -- it's not either/or + like we thought. + [75fbb1545570] + + * src/virtManager/create.py: + Try for better error handling again + [813b554fc640] + + * src/virtManager/create.py: + Try for better error handling + [3786c4ded0ed] + + * src/virtManager/create.py: + Oops better set the install location too + [4b1381515e1e] + + * src/virtManager/create.py: + first pass at making it actually do something + [610dc5684837] + +2006-08-14 "Hugh O. Brock + + * src/virt-manager.glade, src/virtManager/create.py: + Add validation for system name: must be nonblank, less than 50 + chars, no spaces + [db64ec6b8135] + +2006-08-15 berrange + + * virt-manager.spec.in: + Fixed dependancy on gnomekeyring + [868497d237a9] + + * po/virt-manager.pot: + Re-generate translations + [89b85d664a94] + + * README, src/virtManager/config.py, src/virtManager/console.py, + src/virtManager/keyring.py, src/virtManager/secret.py, virt- + manager.spec.in: + Switched keyring code to use gnomekeyring module. Disable keyring + support if not available + [f0a6b8bf93b4] + + * src/virt-manager.glade: + Mark bullet points as non-translatable + [ce0e4d313ea8] + +2006-08-15 "Daniel P. Berrange + + * src/virtManager/console.py, src/virtManager/domain.py: + Set the 'launch terminal' button sensitivity according ot whether we + can access the /dev/pts/* device + [e18bee199c04] + +2006-08-14 "Daniel P. Berrange + + * src/virtManager/domain.py: + Fix extract of VNC port attribute XPath expression + [8fe8e7a9992f] + +2006-08-10 "Hugh O. Brock + + * src/virt-manager.glade, src/virtManager/create.py: + Forgot to add the system name to the last page, there it is + [7718e37241cb] + + * src/virtManager/engine.py: + Merging unrelated changes to engine.py + [2de0218bfd22] + + * src/virt-manager.glade, src/virtManager/create.py, + src/virtManager/engine.py, src/virtManager/manager.py: + UI with events complete. Still doesn't actually create the VM. + [4ab689140d17] + +2006-08-10 "Daniel P. Berrange + + * README, src/virtManager/console.py, src/virtManager/details.py, + src/virtManager/domain.py, src/virtManager/engine.py, + src/virtManager/serialcon.py, virt-manager.spec.in: + Added support for connecting to & displaying the serial console for + guest VMs using the 'vte' module + [6e342b12eb3c] + +2006-08-10 "Hugh O. Brock + + * src/virt-manager.glade, src/virtManager/create.py: + All but the memory/cpu page now behaves and gathers data correctly + [13051516541e] + +2006-08-09 "Hugh O. Brock + + * src/virt-manager.glade, src/virtManager/create.py, + src/virtManager/engine.py: + Some things actually work now. Working out collecting data, and + obnoxious edge cases. + [fdab871d7b35] + +2006-08-09 "Daniel P. Berrange + + * po/Makefile.am: + Fixed typo in target pre-requisite + [d0390538d4a9] + +2006-08-09 "Hugh O. Brock + + * src/virtManager/create.py: + a working version this time + [7c4488e92850] + + * src/virtManager/create.py: + left this one out + [d35245e861d9] + +2006-08-08 "Hugh O. Brock + + * src/virt-manager.glade, src/virtManager/engine.py, + src/virtManager/manager.py: + create wizard now actually appears when you push the new button. + Still doesn't do anything. + [39c8b502a7c2] + +2006-08-08 "Daniel P. Berrange + + * src/virt-manager.glade: + Merge heads + [9d64e79bd07d] + + * Makefile.am, configure.ac, po/Makefile.am, po/en_GB.po, po/virt- + manager.pot, src/virt-manager.py.in, virt-manager.spec.in: + Added infrastructure for generating & packaging .po files, with + dummy en_GB.po file as example + [e57e4982c5e3] + + * src/virtManager/config.py, src/virtManager/domain.py: + Lookup status icons based on libvirt constant, not the + translatable(!) string + [7d9081af70bd] + + * src/virt-manager.glade: + Remove 'secure connection' checkbox from connection form + [f018fbda2e9c] + +2006-08-07 hbrock + + * src/virt-manager.glade: + Finished Glade work on create wizard + [052a78d8a000] + + * src/vncViewer/image.py: + merge Dan's changes + [c413960b9a31] + + * src/virt-manager.glade: + First cut at Glade UI for create wizard. + [e98b05c31cf9] + +2006-08-07 "Daniel P. Berrange + + * TODO: + Added TODO list + [38068e41a8b5] + + * src/virtManager/manager.py: + Fixed sorting of name column + [f59798957105] + +2006-08-04 "Daniel P. Berrange + + * src/Makefile.am, src/virt-manager.py.in, src/virtManager/about.py, + src/virtManager/config.py, src/virtManager/console.py, + src/virtManager/details.py, src/virtManager/domain.py, + src/virtManager/engine.py, src/virtManager/manager.py: + Added gettext support. Internationalize all strings which could be + shown to user. Fix about dialog to show corect version number + [bed31aa3e813] + + * README, src/vncViewer/image.py, src/vncViewer/rfb.py, virt- + manager.spec.in: + Remove python-imaging related code since we dont need it for the + specialized VNC widget code paths + [f676abe070e8] + + * Merge heads + [a98827d19456] + +2006-07-25 "Daniel P. Berrange + + * virt-manager.spec.in: + Updates required to RPM spec by Fedora review + [b4e38784109b] + +2006-07-28 "Hugh O. Brock + + * src/virtManager/details.py: + Make the memory slider react properly + [0b519d2958eb] + + * src/virtManager/details.py: + Add back end to correctly alter memory in a VM + [a89f3a0e9514] + +2006-07-26 "Hugh O. Brock + + * src/virtManager/domain.py: + setMemory wants an int, give it + [5907ec70aecf] + + * src/virt-manager.glade, src/virtManager/details.py, + src/virtManager/domain.py: + Add teeth to set-memory page, and almost teeth to set-cpus page + [75e7e671a3e1] + + * src/virt-manager.glade, src/virtManager/details.py: + Add physical CPU backing for UI + [874a8f72be8e] + + * src/virt-manager.glade: + Finished HW tab UI + [adfb6810a88e] + +2006-07-25 "Hugh O. Brock + + * src/virt-manager.glade: + Added widgets for CPU and memory VM changes. + [c7e7f28b9c16] + +2006-07-24 "Hugh O. Brock + + * src/virtManager/asyncjob.py, src/virtManager/connection.py, + src/virtManager/engine.py, src/virtManager/manager.py: + Added error dialog for domain restore errors + [442d020f0617] + 2006-07-20 "Daniel P. Berrange + * .hgtags: + Added tag RELEASE-0.1.5-1 for changeset + a5976d3f807f516d06b8890e754f9b0265f2bd52 + [1e8a1c3157d0] + + * ChangeLog, configure.ac, virt-manager.spec.in: + Bump release to 0.1.5 + [a5976d3f807f] [RELEASE-0.1.5-1] + * src/virtManager/keyring.py: Initialize self.secrets hash, accidentally removed - [debbdd9bf168] [tip] + [debbdd9bf168] * src/virt-manager.py.in: Switch to gtk.gdk.threads_init() since gtk.threasd_init() is @@ -58,14 +705,6 @@ Merge heads [6bf18e0fa53b] -2006-07-20 "Hugh O. Brock - - * src/virtManager/engine.py: - fix indentation typo in engine - [9e460be02a18] - -2006-07-20 "Daniel P. Berrange - * src/virt-manager.py.in: Merge heads [25428779caf0] @@ -74,22 +713,6 @@ Bump to 0.1.4 in preparation for new release [af11fb18282e] -2006-07-20 "Hugh O. Brock - - * src/virt-manager.glade, src/virtManager/engine.py: - merged Dan's changes - [470f388572a8] - - * src/virt-manager.glade, src/virt-manager.py.in, - src/virtManager/asyncjob.py, src/virtManager/connection.py, - src/virtManager/engine.py, src/virtManager/manager.py: - Make the progress bar threaded so that it will bounce back and forth - in the background (still doesn't work) and abstract the progress bar - functionality - [c2ddab7f68ee] - -2006-07-20 "Daniel P. Berrange - * src/Makefile.am, src/virt-manager.py.in, src/virtManager/Makefile.am, src/vncViewer/Makefile.am, src/vncViewer/crippled_des.py, src/vncViewer/image.py, @@ -107,6 +730,24 @@ Filled out the README file [3d706b59224e] +2006-07-20 "Hugh O. Brock + + * src/virtManager/engine.py: + fix indentation typo in engine + [9e460be02a18] + + * src/virt-manager.glade, src/virtManager/engine.py: + merged Dan's changes + [470f388572a8] + + * src/virt-manager.glade, src/virt-manager.py.in, + src/virtManager/asyncjob.py, src/virtManager/connection.py, + src/virtManager/engine.py, src/virtManager/manager.py: + Make the progress bar threaded so that it will bounce back and forth + in the background (still doesn't work) and abstract the progress bar + functionality + [c2ddab7f68ee] + 2006-07-19 "Daniel P. Berrange * ChangeLog: @@ -130,6 +771,12 @@ Merge heads [12b3b2c7d26d] + * src/virtManager/config.py, src/virtManager/console.py, + src/virtManager/keyring.py, src/virtManager/secret.py, virt- + manager.spec.in: + Added initial support for saving VNC password in the GNOME keyring + [884f6fda6c3b] + * pixmaps/icon_shutdown.png, src/virtManager/console.py, src/virtManager/details.py: Added icon for shutdown button @@ -178,16 +825,6 @@ Pop up dialog for saving images (still doesn't actually do anything) [fa854bc44f20] -2006-07-19 "Daniel P. Berrange - - * src/virtManager/config.py, src/virtManager/console.py, - src/virtManager/keyring.py, src/virtManager/secret.py, virt- - manager.spec.in: - Added initial support for saving VNC password in the GNOME keyring - [884f6fda6c3b] - -2006-07-17 "Hugh O. Brock - * src/virt-manager.glade, src/virtManager/details.py, src/virtManager/engine.py: Add UI bits for saving vm snapshots. Actual "save" dialog and save diff --git a/TODO b/TODO index 52c51e6a..3b22bdf2 100644 --- a/TODO +++ b/TODO @@ -15,13 +15,6 @@ order / importance: 3. Support for dealing with inactive / passive domains - 4. Auto-resize console window to match size of virtual displays - - 5. Deal with VNC display resizing - 6. Ability to send arbitrary keystrokes to VNC (ie keys which local WM would otherwise capture, eg Ctrl+Alt+F1 to switch console) - 7. Implement 'open terminal' to get serial console - - 8. Pick up VNC port from domain's XML diff --git a/configure.ac b/configure.ac index 1ca7bf2a..17f938c8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_INIT(virt-manager.spec.in) -AM_INIT_AUTOMAKE(virt-manager, 0.2.0) +AM_INIT_AUTOMAKE(virt-manager, 0.2.2) AC_PROG_CC AC_PROG_LIBTOOL diff --git a/po/Makefile.am b/po/Makefile.am index be8572be..2c251042 100644 --- a/po/Makefile.am +++ b/po/Makefile.am @@ -18,7 +18,7 @@ all: $(FMTCATALOGS) EXTRA_DIST = $(POTFILE) $(POS) -$(POTFILE): $(POTFILES) $(GLADESCRATCHFILE) +refresh-pot: $(POTFILES) $(GLADESCRATCHFILE) xgettext --default-domain=$(PACKAGE) \ --keyword=_ --keyword=N_ $(POTFILES) $(GLADESCRATCHFILE) if cmp -s $(PACKAGE).po $(POTFILE); then \ @@ -31,7 +31,7 @@ $(GLADESCRATCHFILE): $(GLADEFILE) rm -rf tmp/ intltool-extract --type=gettext/glade -l $< -update-po: Makefile $(POTFILE) refresh-po +update-po: Makefile refresh-pot refresh-po refresh-po: Makefile for cat in $(POS); do \ diff --git a/po/en_GB.po b/po/en_GB.po index b6425a3d..f742b151 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: virt-manager 0.1.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-08-08 10:26-0400\n" +"POT-Creation-Date: 2006-09-15 15:20-0400\n" "PO-Revision-Date: 2006-08-08 10:02+EDT\n" "Last-Translator: Daniel Berrange \n" "Language-Team: Daniel Berrange \n" @@ -16,134 +16,257 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../src/virt-manager.py.in:106 +#: ../../src/virt-manager.py.in:114 msgid "Could not connection to session bus, disabling DBus service" msgstr "" -#: ../../src/virtManager/config.py:177 ../../src/virtManager/config.py:191 -#: ../../src/virtManager/config.py:205 -msgid "Unable to access keyring" -msgstr "" - -#: ../../src/virtManager/console.py:143 +#: ../../src/virtManager/console.py:155 msgid "Unable to activate console" msgstr "" -#: ../../src/virtManager/console.py:189 ../../src/virtManager/details.py:167 +#: ../../src/virtManager/console.py:208 +msgid "Save Virtual Machine Screenshot" +msgstr "" + +#: ../../src/virtManager/console.py:241 +#, python-format +msgid "" +"The screenshot has been saved to:\n" +"%s" +msgstr "" + +#: ../../src/virtManager/console.py:242 +msgid "Screenshot saved" +msgstr "" + +#: ../../src/virtManager/console.py:254 ../../src/virtManager/details.py:179 msgid "Shutdown requested, but machine is already shutting down / shutoff" msgstr "" -#: ../../src/virtManager/console.py:197 ../../src/virtManager/details.py:175 +#: ../../src/virtManager/console.py:262 ../../src/virtManager/details.py:187 msgid "Pause/resume requested, but machine is shutdown / shutoff" msgstr "" -#: ../../src/virtManager/console.py:203 ../../src/virtManager/details.py:181 +#: ../../src/virtManager/console.py:268 ../../src/virtManager/details.py:193 msgid "Pause requested, but machine is already paused" msgstr "" -#: ../../src/virtManager/console.py:208 ../../src/virtManager/details.py:186 +#: ../../src/virtManager/console.py:273 ../../src/virtManager/details.py:198 msgid "Resume requested, but machine is already running" msgstr "" -#: ../../src/virtManager/console.py:274 +#: ../../src/virtManager/console.py:340 msgid "paused" msgstr "" -#: ../../src/virtManager/console.py:288 +#: ../../src/virtManager/console.py:355 msgid "Couldn't open console: " msgstr "" -#: ../../src/virtManager/domain.py:251 +#: ../../src/virtManager/create.py:259 +msgid "Paravirtualized" +msgstr "" + +#: ../../src/virtManager/create.py:261 +msgid "Fully virtualized" +msgstr "" + +#: ../../src/virtManager/create.py:290 +msgid "Invalid FV media address" +msgstr "" + +#: ../../src/virtManager/create.py:297 +msgid "Invalid PV media address" +msgstr "" + +#: ../../src/virtManager/create.py:308 +msgid "Invalid system name" +msgstr "" + +#: ../../src/virtManager/create.py:316 +msgid "Invalid memory setting" +msgstr "" + +#: ../../src/virtManager/create.py:330 +msgid "Invalid storage address" +msgstr "" + +#: ../../src/virtManager/create.py:349 +msgid "Creating Virtual Machine" +msgstr "" + +#: ../../src/virtManager/create.py:352 +msgid "Guest Install Error" +msgstr "" + +#: ../../src/virtManager/create.py:365 +msgid "Locate ISO Image" +msgstr "" + +#: ../../src/virtManager/create.py:390 +msgid "Locate Storage Partition" +msgstr "" + +#: ../../src/virtManager/create.py:396 +msgid "Locate or Create New Storage File" +msgstr "" + +#: ../../src/virtManager/create.py:453 +msgid "Invalid System Name" +msgstr "" + +#: ../../src/virtManager/create.py:454 +msgid "" +"System name must be non-blank, less than 50 characters, and contain no spaces" +msgstr "" + +#: ../../src/virtManager/create.py:459 +msgid "Hardware Support Required" +msgstr "" + +#: ../../src/virtManager/create.py:460 +msgid "" +"Your hardware does not appear to support full virtualization. Only " +"paravirtualized guests will be available on this hardware." +msgstr "" + +#: ../../src/virtManager/create.py:467 +msgid "ISO Location Required" +msgstr "" + +#: ../../src/virtManager/create.py:468 +msgid "You must specify an ISO location for the guest install image" +msgstr "" + +#: ../../src/virtManager/create.py:474 +msgid "URL Required" +msgstr "" + +#: ../../src/virtManager/create.py:475 +msgid "You must specify a URL for the install image for the guest install" +msgstr "" + +#: ../../src/virtManager/create.py:481 +msgid "Storage Address Required" +msgstr "" + +#: ../../src/virtManager/create.py:482 +msgid "" +"You must specify a partition or a file for storage for the guest install" +msgstr "" + +#: ../../src/virtManager/details.py:332 +msgid "Destination" +msgstr "" + +#: ../../src/virtManager/details.py:370 +msgid "MAC address" +msgstr "" + +#: ../../src/virtManager/domain.py:254 msgid "Running" msgstr "" -#: ../../src/virtManager/domain.py:253 +#: ../../src/virtManager/domain.py:256 msgid "Paused" msgstr "" -#: ../../src/virtManager/domain.py:255 tmp/virt-manager.glade.h:98 +#: ../../src/virtManager/domain.py:258 tmp/virt-manager.glade.h:154 msgid "Shutdown" msgstr "" -#: ../../src/virtManager/domain.py:257 +#: ../../src/virtManager/domain.py:260 msgid "Shutoff" msgstr "" -#: ../../src/virtManager/domain.py:259 +#: ../../src/virtManager/domain.py:262 msgid "Crashed" msgstr "" -#: ../../src/virtManager/domain.py:261 +#: ../../src/virtManager/domain.py:264 msgid "Unknown status code" msgstr "" -#: ../../src/virtManager/engine.py:63 +#: ../../src/virtManager/engine.py:66 #, python-format msgid "Unable to open connection to hypervisor URI '%s'" msgstr "" -#: ../../src/virtManager/engine.py:103 +#: ../../src/virtManager/engine.py:109 #, python-format msgid "Error refreshing connection '%s'" msgstr "" -#: ../../src/virtManager/engine.py:212 +#: ../../src/virtManager/engine.py:244 msgid "Save requested, but machine is shutdown / shutoff / paused" msgstr "" -#: ../../src/virtManager/engine.py:214 +#: ../../src/virtManager/engine.py:246 msgid "Save Virtual Machine" msgstr "" -#: ../../src/virtManager/engine.py:227 +#: ../../src/virtManager/engine.py:259 msgid "Saving Virtual Machine" msgstr "" -#: ../../src/virtManager/manager.py:150 +#: ../../src/virtManager/keyring.py:29 +msgid "No support for gnome-keyring" +msgstr "" + +#: ../../src/virtManager/keyring.py:41 +#, python-format +msgid "Keyring unavailable: '%s'" +msgstr "" + +#: ../../src/virtManager/manager.py:162 msgid "Restore Virtual Machine" msgstr "" -#: ../../src/virtManager/manager.py:164 +#: ../../src/virtManager/manager.py:176 msgid "Restoring Virtual Machine" msgstr "" -#: ../../src/virtManager/manager.py:182 +#: ../../src/virtManager/manager.py:194 #, python-format msgid "Error restoring domain '%s'. Is the domain already running?" msgstr "" -#: ../../src/virtManager/manager.py:278 +#: ../../src/virtManager/manager.py:293 msgid "ID" msgstr "" -#: ../../src/virtManager/manager.py:279 +#: ../../src/virtManager/manager.py:294 tmp/virt-manager.glade.h:118 msgid "Name" msgstr "" -#: ../../src/virtManager/manager.py:280 tmp/virt-manager.glade.h:100 +#: ../../src/virtManager/manager.py:295 tmp/virt-manager.glade.h:157 msgid "Status" msgstr "" -#: ../../src/virtManager/manager.py:281 tmp/virt-manager.glade.h:39 +#: ../../src/virtManager/manager.py:296 tmp/virt-manager.glade.h:73 msgid "CPU usage" msgstr "" -#: ../../src/virtManager/manager.py:282 +#: ../../src/virtManager/manager.py:297 msgid "VCPUs" msgstr "" -#: ../../src/virtManager/manager.py:283 tmp/virt-manager.glade.h:66 +#: ../../src/virtManager/manager.py:298 tmp/virt-manager.glade.h:114 msgid "Memory usage" msgstr "" -#: ../../src/virtManager/manager.py:284 tmp/virt-manager.glade.h:48 +#: ../../src/virtManager/manager.py:299 tmp/virt-manager.glade.h:85 msgid "Disk usage" msgstr "" -#: ../../src/virtManager/manager.py:285 tmp/virt-manager.glade.h:72 +#: ../../src/virtManager/manager.py:300 tmp/virt-manager.glade.h:121 msgid "Network traffic" msgstr "" +#: ../../src/virtManager/serialcon.py:35 +msgid "serial console" +msgstr "" + #: tmp/virt-manager.glade.h:1 msgid " free" msgstr "" @@ -157,107 +280,180 @@ msgid "/tmp" msgstr "" #: tmp/virt-manager.glade.h:4 -msgid "00:16:3e:" +msgid "/xen/demo.img" msgstr "" #: tmp/virt-manager.glade.h:5 +msgid "00:16:3e:" +msgstr "" + +#: tmp/virt-manager.glade.h:6 msgid "10 TB" msgstr "" -#: tmp/virt-manager.glade.h:7 +#: tmp/virt-manager.glade.h:8 #, no-c-format msgid "18%" msgstr "" -#: tmp/virt-manager.glade.h:8 +#: tmp/virt-manager.glade.h:9 msgid "2 GB" msgstr "" -#: tmp/virt-manager.glade.h:9 +#: tmp/virt-manager.glade.h:10 msgid "20 bits/sec" msgstr "" -#: tmp/virt-manager.glade.h:10 +#: tmp/virt-manager.glade.h:11 msgid "200 MB" msgstr "" -#: tmp/virt-manager.glade.h:11 +#: tmp/virt-manager.glade.h:12 msgid "256\t" msgstr "" -#: tmp/virt-manager.glade.h:12 +#: tmp/virt-manager.glade.h:13 msgid "30 MB of 128 MB" msgstr "" -#: tmp/virt-manager.glade.h:13 -msgid "80 MB of 1 GB" -msgstr "" - #: tmp/virt-manager.glade.h:14 -msgid ":" +msgid "400 MB" msgstr "" #: tmp/virt-manager.glade.h:15 -msgid "Basic details" +msgid "5\t" msgstr "" #: tmp/virt-manager.glade.h:16 -msgid "CPUs" +msgid "5 GB" msgstr "" #: tmp/virt-manager.glade.h:17 -msgid "Memory" +msgid "500 MB" msgstr "" #: tmp/virt-manager.glade.h:18 -msgid "Network" +msgid "80 MB of 1 GB" msgstr "" #: tmp/virt-manager.glade.h:19 -msgid "Performance" +msgid ":" msgstr "" #: tmp/virt-manager.glade.h:20 -msgid "Physical host CPU count: " +msgid "Basic details" msgstr "" #: tmp/virt-manager.glade.h:21 -msgid "Status monitoring" +msgid "CPUs:" msgstr "" #: tmp/virt-manager.glade.h:22 -msgid "Storage" +msgid "CPUs" msgstr "" #: tmp/virt-manager.glade.h:23 -msgid "The console is currently unavailable" +msgid "Disk image:" msgstr "" #: tmp/virt-manager.glade.h:24 +msgid "Disk size:" +msgstr "" + +#: tmp/virt-manager.glade.h:25 +msgid "Example: system1" +msgstr "" + +#: tmp/virt-manager.glade.h:26 +msgid "Initial memory:" +msgstr "" + +#: tmp/virt-manager.glade.h:27 +msgid "Installation source:" +msgstr "" + +#: tmp/virt-manager.glade.h:28 +msgid "Kickstart source:" +msgstr "" + +#: tmp/virt-manager.glade.h:29 +msgid "Machine name:" +msgstr "" + +#: tmp/virt-manager.glade.h:30 +msgid "Maximum memory:" +msgstr "" + +#: tmp/virt-manager.glade.h:31 +msgid "Memory:" +msgstr "" + +#: tmp/virt-manager.glade.h:32 +msgid "Memory" +msgstr "" + +#: tmp/virt-manager.glade.h:33 +msgid "Memory and CPU allocation" +msgstr "" + +#: tmp/virt-manager.glade.h:34 +msgid "Network" +msgstr "" + +#: tmp/virt-manager.glade.h:35 +msgid "Performance" +msgstr "" + +#: tmp/virt-manager.glade.h:36 +msgid "Physical host CPU count: " +msgstr "" + +#: tmp/virt-manager.glade.h:37 +msgid "Status monitoring" +msgstr "" + +#: tmp/virt-manager.glade.h:38 +msgid "Storage" +msgstr "" + +#: tmp/virt-manager.glade.h:39 +msgid "" +"Storage details - which disk partitions or files the system should use" +msgstr "" + +#: tmp/virt-manager.glade.h:40 +msgid "Summary:" +msgstr "" + +#: tmp/virt-manager.glade.h:41 +msgid "The console is currently unavailable" +msgstr "" + +#: tmp/virt-manager.glade.h:42 msgid "" "Tip: Acceptable values for hex digits are the numbers 0-9 and the " "letters A-F" msgstr "" -#: tmp/virt-manager.glade.h:25 +#: tmp/virt-manager.glade.h:43 msgid "" "Tip: File location paths are as seen from the physical host. Mount " "points are as seen from the virtual machine." msgstr "" -#: tmp/virt-manager.glade.h:26 +#: tmp/virt-manager.glade.h:44 msgid "" "Tip: For best performance, the number of virtual CPUs should be less " -"than the number of physical CPUs on the host system." +"than (or equal to) the number of physical CPUs on the host system." msgstr "" -#: tmp/virt-manager.glade.h:27 +#: tmp/virt-manager.glade.h:45 msgid "" "Tip: You may only increase the size of file-based storage; you can't " "decrease its size." msgstr "" -#: tmp/virt-manager.glade.h:28 +#: tmp/virt-manager.glade.h:46 msgid "" "Too Many Virtual CPUs\n" "\n" @@ -265,376 +461,660 @@ msgid "" "physically. This may result in poor performance in the virtual machine." msgstr "" -#: tmp/virt-manager.glade.h:31 +#: tmp/virt-manager.glade.h:49 +msgid "Virtaulization method:" +msgstr "" + +#: tmp/virt-manager.glade.h:50 +msgid "Virtual CPUs:" +msgstr "" + +#: tmp/virt-manager.glade.h:51 +msgid "Example: /dev/hdc2" +msgstr "" + +#: tmp/virt-manager.glade.h:52 +msgid "Example: ftp://hostname.example.com/ks/ks.cfg" +msgstr "" + +#: tmp/virt-manager.glade.h:53 +msgid "" +"Example: http://servername.example.com/distro/i386/tree" +msgstr "" + +#: tmp/virt-manager.glade.h:54 +msgid "" +"Note: File size parameter is only relevant for new files" +msgstr "" + +#: tmp/virt-manager.glade.h:55 +msgid "" +"Tip: For best performance, the number of virtual CPUs should " +"be less than (or equal to) the number of physical CPUs on the host system." +msgstr "" + +#: tmp/virt-manager.glade.h:56 +msgid "" +"Tip: You may add additional storage, including network-mounted " +"storage, to your virtual system after it has been created using the same " +"tools you would on a physical system." +msgstr "" + +#: tmp/virt-manager.glade.h:57 +msgid "" +"Allocate memory " +"and CPU" +msgstr "" + +#: tmp/virt-manager.glade.h:58 +msgid "" +"Assigning " +"storage space" +msgstr "" + +#: tmp/virt-manager.glade.h:59 +msgid "" +"Choosing a " +"virtualization method" +msgstr "" + +#: tmp/virt-manager.glade.h:60 +msgid "" +"Creating a new " +"virtual system " +msgstr "" + +#: tmp/virt-manager.glade.h:61 +msgid "" +"Locating " +"installation media" +msgstr "" + +#: tmp/virt-manager.glade.h:62 +msgid "" +"Naming your " +"virtual system " +msgstr "" + +#: tmp/virt-manager.glade.h:63 +msgid "" +"Ready to begin " +"installation" +msgstr "" + +#: tmp/virt-manager.glade.h:64 +msgid "A name for your new virtual system" +msgstr "" + +#: tmp/virt-manager.glade.h:65 msgid "Add Virtual NIC" msgstr "" -#: tmp/virt-manager.glade.h:32 -msgid "Add hardware" -msgstr "" - -#: tmp/virt-manager.glade.h:33 +#: tmp/virt-manager.glade.h:66 msgid "Add virtual NIC with:" msgstr "" -#: tmp/virt-manager.glade.h:34 +#: tmp/virt-manager.glade.h:67 msgid "Alert" msgstr "" -#: tmp/virt-manager.glade.h:35 +#: tmp/virt-manager.glade.h:68 msgid "" "All virtual machines\n" "Active virtual machines\n" "Inactive virtual machines" msgstr "" -#: tmp/virt-manager.glade.h:38 +#: tmp/virt-manager.glade.h:71 msgid "Auth" msgstr "" -#: tmp/virt-manager.glade.h:40 +#: tmp/virt-manager.glade.h:72 +msgid "Browse..." +msgstr "" + +#: tmp/virt-manager.glade.h:74 msgid "CPU usage:" msgstr "" -#: tmp/virt-manager.glade.h:41 +#: tmp/virt-manager.glade.h:75 +msgid "CPU/memory" +msgstr "" + +#: tmp/virt-manager.glade.h:76 msgid "CPUs" msgstr "" -#: tmp/virt-manager.glade.h:42 +#: tmp/virt-manager.glade.h:77 +msgid "Complete" +msgstr "" + +#: tmp/virt-manager.glade.h:78 msgid "Connect" msgstr "" -#: tmp/virt-manager.glade.h:43 +#: tmp/virt-manager.glade.h:79 msgid "Copyright (C) 2006 Red Hat Inc." msgstr "" -#: tmp/virt-manager.glade.h:44 +#: tmp/virt-manager.glade.h:80 +msgid "Create a new virtual system" +msgstr "" + +#: tmp/virt-manager.glade.h:81 msgid "Current usage:" msgstr "" -#: tmp/virt-manager.glade.h:45 +#: tmp/virt-manager.glade.h:82 msgid "Delete machine" msgstr "" -#: tmp/virt-manager.glade.h:46 +#: tmp/virt-manager.glade.h:83 msgid "Details" msgstr "" -#: tmp/virt-manager.glade.h:47 +#: tmp/virt-manager.glade.h:84 msgid "Disk" msgstr "" -#: tmp/virt-manager.glade.h:49 +#: tmp/virt-manager.glade.h:86 msgid "Disk usage:" msgstr "" -#: tmp/virt-manager.glade.h:50 +#: tmp/virt-manager.glade.h:87 msgid "Domain ID" msgstr "" -#: tmp/virt-manager.glade.h:51 +#: tmp/virt-manager.glade.h:88 +msgid "FV install" +msgstr "" + +#: tmp/virt-manager.glade.h:89 +msgid "File _Location:" +msgstr "" + +#: tmp/virt-manager.glade.h:90 +msgid "File _Size:" +msgstr "" + +#: tmp/virt-manager.glade.h:91 msgid "Hardware" msgstr "" -#: tmp/virt-manager.glade.h:52 +#: tmp/virt-manager.glade.h:92 msgid "Host:" msgstr "" -#: tmp/virt-manager.glade.h:53 +#: tmp/virt-manager.glade.h:93 msgid "How many virtual CPUs should this sytem have?" msgstr "" -#: tmp/virt-manager.glade.h:54 +#: tmp/virt-manager.glade.h:94 +msgid "How many virtual CPUs should this system have?" +msgstr "" + +#: tmp/virt-manager.glade.h:95 +msgid "How much memory should this VM start up with?" +msgstr "" + +#: tmp/virt-manager.glade.h:96 +msgid "How much memory should this machine be allowed to use?" +msgstr "" + +#: tmp/virt-manager.glade.h:97 +msgid "ISO _Location:" +msgstr "" + +#: tmp/virt-manager.glade.h:98 +msgid "Install Media _URL:" +msgstr "" + +#: tmp/virt-manager.glade.h:99 +msgid "Intro" +msgstr "" + +#: tmp/virt-manager.glade.h:100 +msgid "" +"Involves hardware simulation, allowing for a greater range of operating " +"systems (does not require OS modification). Slower than paravirtualized " +"systems." +msgstr "" + +#: tmp/virt-manager.glade.h:101 msgid "Keep CPU Settings" msgstr "" -#: tmp/virt-manager.glade.h:55 -msgid "Launch _Terminal" +#: tmp/virt-manager.glade.h:102 +msgid "Kickstart U_RL:" msgstr "" -#: tmp/virt-manager.glade.h:56 +#: tmp/virt-manager.glade.h:103 +msgid "" +"Lightweight method of virtualizing machines. Limits operating system choices " +"because the OS must be specially modified to support paravirtualization. " +"Better performance than fully virtualized systems." +msgstr "" + +#: tmp/virt-manager.glade.h:104 msgid "Local Xen host" msgstr "" -#: tmp/virt-manager.glade.h:57 +#: tmp/virt-manager.glade.h:105 msgid "Login" msgstr "" -#: tmp/virt-manager.glade.h:58 +#: tmp/virt-manager.glade.h:106 +msgid "MB" +msgstr "" + +#: tmp/virt-manager.glade.h:107 msgid "" "MB\n" "GB\n" "TB" msgstr "" -#: tmp/virt-manager.glade.h:61 -msgid "Machine console" -msgstr "" - -#: tmp/virt-manager.glade.h:62 -msgid "Machine details" -msgstr "" - -#: tmp/virt-manager.glade.h:63 +#: tmp/virt-manager.glade.h:110 msgid "Machine details..." msgstr "" -#: tmp/virt-manager.glade.h:64 +#: tmp/virt-manager.glade.h:111 msgid "Maintain history of" msgstr "" -#: tmp/virt-manager.glade.h:65 -msgid "Memory" -msgstr "" - -#: tmp/virt-manager.glade.h:67 -msgid "Memory usage:" -msgstr "" - -#: tmp/virt-manager.glade.h:68 -msgid "Modify CPU Settings" -msgstr "" - -#: tmp/virt-manager.glade.h:69 -msgid "Modify File Storage" -msgstr "" - -#: tmp/virt-manager.glade.h:70 -msgid "Name:" -msgstr "" - -#: tmp/virt-manager.glade.h:71 -msgid "Network" -msgstr "" - -#: tmp/virt-manager.glade.h:73 -msgid "Network usage:" -msgstr "" - -#: tmp/virt-manager.glade.h:74 -msgid "New hardware configuration not available" -msgstr "" - -#: tmp/virt-manager.glade.h:75 -msgid "New machine..." -msgstr "" - -#: tmp/virt-manager.glade.h:76 -msgid "Open connection" -msgstr "" - -#: tmp/virt-manager.glade.h:77 -msgid "Open connection..." -msgstr "" - -#: tmp/virt-manager.glade.h:78 -msgid "Open terminal" -msgstr "" - -#: tmp/virt-manager.glade.h:79 -msgid "Other hypervisor" -msgstr "" - -#: tmp/virt-manager.glade.h:80 -msgid "Overview" -msgstr "" - -#: tmp/virt-manager.glade.h:81 -msgid "Password:" -msgstr "" - -#: tmp/virt-manager.glade.h:82 -msgid "Pause" -msgstr "" - -#: tmp/virt-manager.glade.h:83 -msgid "Please wait..." -msgstr "" - -#: tmp/virt-manager.glade.h:84 -msgid "Port:" -msgstr "" - -#: tmp/virt-manager.glade.h:85 -msgid "Processor" -msgstr "" - -#: tmp/virt-manager.glade.h:86 -msgid "Randomly generated MAC address" -msgstr "" - -#: tmp/virt-manager.glade.h:87 -msgid "Read only connection" -msgstr "" - -#: tmp/virt-manager.glade.h:88 -msgid "Remote Xen host" -msgstr "" - -#: tmp/virt-manager.glade.h:89 -msgid "Restore a saved machine from a filesystem image" -msgstr "" - -#: tmp/virt-manager.glade.h:90 -msgid "Restore saved machine..." -msgstr "" - -#: tmp/virt-manager.glade.h:91 -msgid "Run" -msgstr "" - -#: tmp/virt-manager.glade.h:92 -msgid "Save Domain" -msgstr "" - -#: tmp/virt-manager.glade.h:93 -msgid "Save domain" -msgstr "" - -#: tmp/virt-manager.glade.h:94 -msgid "Save this password in your keyring" -msgstr "" - -#: tmp/virt-manager.glade.h:95 -msgid "Saving VM Image" -msgstr "" - -#: tmp/virt-manager.glade.h:96 -msgid "Screenshot" -msgstr "" - -#: tmp/virt-manager.glade.h:97 -msgid "Shut down" -msgstr "" - -#: tmp/virt-manager.glade.h:99 -msgid "Specified MAC address:" -msgstr "" - -#: tmp/virt-manager.glade.h:101 -msgid "Status:" -msgstr "" - -#: tmp/virt-manager.glade.h:102 -msgid "Total memory on host machine:" -msgstr "" - -#: tmp/virt-manager.glade.h:103 -msgid "URI:" -msgstr "" - -#: tmp/virt-manager.glade.h:104 -msgid "UUID:" -msgstr "" - -#: tmp/virt-manager.glade.h:105 -msgid "Unavailable" -msgstr "" - -#: tmp/virt-manager.glade.h:106 -msgid "Update status every" -msgstr "" - -#: tmp/virt-manager.glade.h:107 -msgid "Virtual CPUs" -msgstr "" - -#: tmp/virt-manager.glade.h:108 -msgid "Virtual Machine Console" -msgstr "" - -#: tmp/virt-manager.glade.h:109 -msgid "Virtual Machine Details" -msgstr "" - -#: tmp/virt-manager.glade.h:110 -msgid "Virtual Machine Manager" -msgstr "" - -#: tmp/virt-manager.glade.h:111 -msgid "Virtual Machine Manager Preferences" -msgstr "" - #: tmp/virt-manager.glade.h:112 -msgid "Virtual _Machine" +msgid "Maximum usage:" msgstr "" #: tmp/virt-manager.glade.h:113 -msgid "What is the maximum amount of memory this VM should be able to use?" -msgstr "" - -#: tmp/virt-manager.glade.h:114 -msgid "_Details" +msgid "Memory" msgstr "" #: tmp/virt-manager.glade.h:115 -msgid "_Edit" +msgid "Memory usage:" msgstr "" #: tmp/virt-manager.glade.h:116 -msgid "_File" +msgid "Modify CPU Settings" msgstr "" #: tmp/virt-manager.glade.h:117 -msgid "_Help" -msgstr "" - -#: tmp/virt-manager.glade.h:118 -msgid "_Mount Point (on virtual system):" +msgid "Modify File Storage" msgstr "" #: tmp/virt-manager.glade.h:119 -msgid "_Pause" +msgid "Name:" msgstr "" #: tmp/virt-manager.glade.h:120 -msgid "_Run" -msgstr "" - -#: tmp/virt-manager.glade.h:121 -msgid "_Save" +msgid "Network" msgstr "" #: tmp/virt-manager.glade.h:122 -msgid "_Shutdown" +msgid "Network usage:" msgstr "" #: tmp/virt-manager.glade.h:123 -msgid "_Size:" +msgid "New machine..." msgstr "" #: tmp/virt-manager.glade.h:124 -msgid "_View" +msgid "Normal Disk _Partition:" msgstr "" #: tmp/virt-manager.glade.h:125 -msgid "_View:" +msgid "Open connection" msgstr "" #: tmp/virt-manager.glade.h:126 -msgid "mac-addr-random" +msgid "Open connection..." msgstr "" #: tmp/virt-manager.glade.h:127 -msgid "samples" +msgid "Other hypervisor" msgstr "" #: tmp/virt-manager.glade.h:128 -msgid "seconds" +msgid "Overview" msgstr "" #: tmp/virt-manager.glade.h:129 -msgid "state-host-cpus" +msgid "PVinstall" msgstr "" #: tmp/virt-manager.glade.h:130 -msgid "state-host-memory" +msgid "P_artition:" +msgstr "" + +#: tmp/virt-manager.glade.h:131 +msgid "Password:" msgstr "" #: tmp/virt-manager.glade.h:132 -msgid "translator-credits" +msgid "Pause" msgstr "" #: tmp/virt-manager.glade.h:133 +msgid "Physical host CPU count:" +msgstr "" + +#: tmp/virt-manager.glade.h:134 +msgid "Please choose a name for your virtual system:" +msgstr "" + +#: tmp/virt-manager.glade.h:135 +msgid "" +"Please indicate how you'd like to assign space on this physical host system " +"for your new virtual system. This space will be used to install the virtual " +"system's operating system." +msgstr "" + +#: tmp/virt-manager.glade.h:136 +msgid "" +"Please indicate where installation media is available for the operating " +"system you would like to install on this fully virtualized virtual " +"system:" +msgstr "" + +#: tmp/virt-manager.glade.h:137 +msgid "" +"Please indicate where installation media is available for the operating " +"system you would like to install on this paravirtualized virtual " +"system. Optionally you can provide the URL for a kickstart file that " +"describes your system:" +msgstr "" + +#: tmp/virt-manager.glade.h:138 +msgid "Please wait..." +msgstr "" + +#: tmp/virt-manager.glade.h:139 +msgid "Port:" +msgstr "" + +#: tmp/virt-manager.glade.h:140 +msgid "Powered by libvirt" +msgstr "" + +#: tmp/virt-manager.glade.h:141 +msgid "" +"Press finish to create a new virtual machine with\n" +"this configuration & display the virtual console." +msgstr "" + +#: tmp/virt-manager.glade.h:143 +msgid "Processor" +msgstr "" + +#: tmp/virt-manager.glade.h:144 +msgid "Randomly generated MAC address" +msgstr "" + +#: tmp/virt-manager.glade.h:145 +msgid "Read only connection" +msgstr "" + +#: tmp/virt-manager.glade.h:146 +msgid "Remote Xen host" +msgstr "" + +#: tmp/virt-manager.glade.h:147 +msgid "Restore a saved machine from a filesystem image" +msgstr "" + +#: tmp/virt-manager.glade.h:148 +msgid "Restore saved machine..." +msgstr "" + +#: tmp/virt-manager.glade.h:149 +msgid "Run" +msgstr "" + +#: tmp/virt-manager.glade.h:150 +msgid "Save this password in your keyring" +msgstr "" + +#: tmp/virt-manager.glade.h:151 +msgid "Saving VM Image" +msgstr "" + +#: tmp/virt-manager.glade.h:152 +msgid "Screenshot" +msgstr "" + +#: tmp/virt-manager.glade.h:153 +msgid "Shut down" +msgstr "" + +#: tmp/virt-manager.glade.h:155 +msgid "Simple _File:" +msgstr "" + +#: tmp/virt-manager.glade.h:156 +msgid "Specified MAC address:" +msgstr "" + +#: tmp/virt-manager.glade.h:158 +msgid "Status:" +msgstr "" + +#: tmp/virt-manager.glade.h:159 +msgid "System _Name:" +msgstr "" + +#: tmp/virt-manager.glade.h:160 +msgid "" +"The location of the files necessary for installing an operating " +"system on the virtual system" +msgstr "" + +#: tmp/virt-manager.glade.h:161 +msgid "" +"This assistant will guide you through creating a new virtual system. You " +"will be asked for some information about the virtual system you'd like to " +"create, such as:" +msgstr "" + +#: tmp/virt-manager.glade.h:162 +msgid "Toolbar" +msgstr "" + +#: tmp/virt-manager.glade.h:163 +msgid "Total memory on host machine:" +msgstr "" + +#: tmp/virt-manager.glade.h:164 +msgid "Type" +msgstr "" + +#: tmp/virt-manager.glade.h:165 +msgid "URI:" +msgstr "" + +#: tmp/virt-manager.glade.h:166 +msgid "UUID:" +msgstr "" + +#: tmp/virt-manager.glade.h:167 +msgid "Unavailable" +msgstr "" + +#: tmp/virt-manager.glade.h:168 +msgid "Update status every" +msgstr "" + +#: tmp/virt-manager.glade.h:169 +msgid "Update usage:" +msgstr "" + +#: tmp/virt-manager.glade.h:170 +msgid "VNC" +msgstr "" + +#: tmp/virt-manager.glade.h:171 +msgid "Virtual CPUs" +msgstr "" + +#: tmp/virt-manager.glade.h:172 +msgid "Virtual Machine Console" +msgstr "" + +#: tmp/virt-manager.glade.h:173 +msgid "Virtual Machine Details" +msgstr "" + +#: tmp/virt-manager.glade.h:174 +msgid "Virtual Machine Manager" +msgstr "" + +#: tmp/virt-manager.glade.h:175 +msgid "Virtual Machine Manager Preferences" +msgstr "" + +#: tmp/virt-manager.glade.h:176 +msgid "Virtual _Machine" +msgstr "" + +#: tmp/virt-manager.glade.h:177 +msgid "What is the maximum amount of memory this VM should be able to use?" +msgstr "" + +#: tmp/virt-manager.glade.h:178 +msgid "" +"Whether the system will be fully virtualized or para-virtualized" +msgstr "" + +#: tmp/virt-manager.glade.h:179 +msgid "You will need to choose a virtualization method for your new system:" +msgstr "" + +#: tmp/virt-manager.glade.h:180 +msgid "_Browse..." +msgstr "" + +#: tmp/virt-manager.glade.h:181 +msgid "_CD-ROM or DVD:" +msgstr "" + +#: tmp/virt-manager.glade.h:182 +msgid "_Details" +msgstr "" + +#: tmp/virt-manager.glade.h:183 +msgid "_Edit" +msgstr "" + +#: tmp/virt-manager.glade.h:184 +msgid "_File" +msgstr "" + +#: tmp/virt-manager.glade.h:185 +msgid "_Finish" +msgstr "" + +#: tmp/virt-manager.glade.h:186 +msgid "_FullScreen" +msgstr "" + +#: tmp/virt-manager.glade.h:187 +msgid "_Fully Virtualized:" +msgstr "" + +#: tmp/virt-manager.glade.h:188 +msgid "_Graphical Console" +msgstr "" + +#: tmp/virt-manager.glade.h:189 +msgid "_Help" +msgstr "" + +#: tmp/virt-manager.glade.h:190 +msgid "_ISO Image Location:" +msgstr "" + +#: tmp/virt-manager.glade.h:191 +msgid "_Mount Point (on virtual system):" +msgstr "" + +#: tmp/virt-manager.glade.h:192 +msgid "_Paravirtualized:" +msgstr "" + +#: tmp/virt-manager.glade.h:193 +msgid "_Path to install media:" +msgstr "" + +#: tmp/virt-manager.glade.h:194 +msgid "_Pause" +msgstr "" + +#: tmp/virt-manager.glade.h:195 +msgid "_Run" +msgstr "" + +#: tmp/virt-manager.glade.h:196 +msgid "_Save" +msgstr "" + +#: tmp/virt-manager.glade.h:197 +msgid "_Serial Console" +msgstr "" + +#: tmp/virt-manager.glade.h:198 +msgid "_Shutdown" +msgstr "" + +#: tmp/virt-manager.glade.h:199 +msgid "_Size:" +msgstr "" + +#: tmp/virt-manager.glade.h:200 +msgid "_Take Screenshot" +msgstr "" + +#: tmp/virt-manager.glade.h:201 +msgid "_View" +msgstr "" + +#: tmp/virt-manager.glade.h:202 +msgid "_View:" +msgstr "" + +#: tmp/virt-manager.glade.h:203 +msgid "demo" +msgstr "" + +#: tmp/virt-manager.glade.h:204 +msgid "http://" +msgstr "" + +#: tmp/virt-manager.glade.h:205 +msgid "mac-addr-random" +msgstr "" + +#: tmp/virt-manager.glade.h:206 +msgid "para" +msgstr "" + +#: tmp/virt-manager.glade.h:207 +msgid "samples" +msgstr "" + +#: tmp/virt-manager.glade.h:208 +msgid "seconds" +msgstr "" + +#: tmp/virt-manager.glade.h:209 +msgid "state-host-cpus" +msgstr "" + +#: tmp/virt-manager.glade.h:211 +msgid "translator-credits" +msgstr "" + +#: tmp/virt-manager.glade.h:212 msgid "virtual CPU alert" msgstr "" diff --git a/po/virt-manager.pot b/po/virt-manager.pot index 9576d69b..6a43bd75 100644 --- a/po/virt-manager.pot +++ b/po/virt-manager.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-09-01 16:30-0400\n" +"POT-Creation-Date: 2006-09-15 15:20-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,95 +63,94 @@ msgstr "" msgid "Couldn't open console: " msgstr "" -#: ../../src/virtManager/create.py:291 -#, python-format -msgid "" -"Congratulations, you have successfully created a new virtual system, \"%s" -"\". \n" -"You'll now be able to view and work with \"%s\" in the virtual machine " -"manager." +#: ../../src/virtManager/create.py:259 +msgid "Paravirtualized" msgstr "" -#: ../../src/virtManager/create.py:335 +#: ../../src/virtManager/create.py:261 +msgid "Fully virtualized" +msgstr "" + +#: ../../src/virtManager/create.py:290 msgid "Invalid FV media address" msgstr "" -#: ../../src/virtManager/create.py:342 +#: ../../src/virtManager/create.py:297 msgid "Invalid PV media address" msgstr "" -#: ../../src/virtManager/create.py:352 +#: ../../src/virtManager/create.py:308 msgid "Invalid system name" msgstr "" -#: ../../src/virtManager/create.py:360 +#: ../../src/virtManager/create.py:316 msgid "Invalid memory setting" msgstr "" -#: ../../src/virtManager/create.py:379 +#: ../../src/virtManager/create.py:330 msgid "Invalid storage address" msgstr "" -#: ../../src/virtManager/create.py:398 +#: ../../src/virtManager/create.py:349 msgid "Creating Virtual Machine" msgstr "" -#: ../../src/virtManager/create.py:401 +#: ../../src/virtManager/create.py:352 msgid "Guest Install Error" msgstr "" -#: ../../src/virtManager/create.py:442 +#: ../../src/virtManager/create.py:365 msgid "Locate ISO Image" msgstr "" -#: ../../src/virtManager/create.py:479 +#: ../../src/virtManager/create.py:390 msgid "Locate Storage Partition" msgstr "" -#: ../../src/virtManager/create.py:488 +#: ../../src/virtManager/create.py:396 msgid "Locate or Create New Storage File" msgstr "" -#: ../../src/virtManager/create.py:542 +#: ../../src/virtManager/create.py:453 msgid "Invalid System Name" msgstr "" -#: ../../src/virtManager/create.py:543 +#: ../../src/virtManager/create.py:454 msgid "" "System name must be non-blank, less than 50 characters, and contain no spaces" msgstr "" -#: ../../src/virtManager/create.py:548 +#: ../../src/virtManager/create.py:459 msgid "Hardware Support Required" msgstr "" -#: ../../src/virtManager/create.py:549 +#: ../../src/virtManager/create.py:460 msgid "" "Your hardware does not appear to support full virtualization. Only " "paravirtualized guests will be available on this hardware." msgstr "" -#: ../../src/virtManager/create.py:556 +#: ../../src/virtManager/create.py:467 msgid "ISO Location Required" msgstr "" -#: ../../src/virtManager/create.py:557 +#: ../../src/virtManager/create.py:468 msgid "You must specify an ISO location for the guest install image" msgstr "" -#: ../../src/virtManager/create.py:564 +#: ../../src/virtManager/create.py:474 msgid "URL Required" msgstr "" -#: ../../src/virtManager/create.py:565 +#: ../../src/virtManager/create.py:475 msgid "You must specify a URL for the install image for the guest install" msgstr "" -#: ../../src/virtManager/create.py:575 +#: ../../src/virtManager/create.py:481 msgid "Storage Address Required" msgstr "" -#: ../../src/virtManager/create.py:576 +#: ../../src/virtManager/create.py:482 msgid "" "You must specify a partition or a file for storage for the guest install" msgstr "" @@ -172,7 +171,7 @@ msgstr "" msgid "Paused" msgstr "" -#: ../../src/virtManager/domain.py:258 tmp/virt-manager.glade.h:135 +#: ../../src/virtManager/domain.py:258 tmp/virt-manager.glade.h:154 msgid "Shutdown" msgstr "" @@ -236,15 +235,15 @@ msgstr "" msgid "ID" msgstr "" -#: ../../src/virtManager/manager.py:294 tmp/virt-manager.glade.h:102 +#: ../../src/virtManager/manager.py:294 tmp/virt-manager.glade.h:118 msgid "Name" msgstr "" -#: ../../src/virtManager/manager.py:295 tmp/virt-manager.glade.h:138 +#: ../../src/virtManager/manager.py:295 tmp/virt-manager.glade.h:157 msgid "Status" msgstr "" -#: ../../src/virtManager/manager.py:296 tmp/virt-manager.glade.h:58 +#: ../../src/virtManager/manager.py:296 tmp/virt-manager.glade.h:73 msgid "CPU usage" msgstr "" @@ -252,15 +251,15 @@ msgstr "" msgid "VCPUs" msgstr "" -#: ../../src/virtManager/manager.py:298 tmp/virt-manager.glade.h:98 +#: ../../src/virtManager/manager.py:298 tmp/virt-manager.glade.h:114 msgid "Memory usage" msgstr "" -#: ../../src/virtManager/manager.py:299 tmp/virt-manager.glade.h:70 +#: ../../src/virtManager/manager.py:299 tmp/virt-manager.glade.h:85 msgid "Disk usage" msgstr "" -#: ../../src/virtManager/manager.py:300 tmp/virt-manager.glade.h:105 +#: ../../src/virtManager/manager.py:300 tmp/virt-manager.glade.h:121 msgid "Network traffic" msgstr "" @@ -281,128 +280,180 @@ msgid "/tmp" msgstr "" #: tmp/virt-manager.glade.h:4 -msgid "00:16:3e:" +msgid "/xen/demo.img" msgstr "" #: tmp/virt-manager.glade.h:5 +msgid "00:16:3e:" +msgstr "" + +#: tmp/virt-manager.glade.h:6 msgid "10 TB" msgstr "" -#: tmp/virt-manager.glade.h:7 +#: tmp/virt-manager.glade.h:8 #, no-c-format msgid "18%" msgstr "" -#: tmp/virt-manager.glade.h:8 +#: tmp/virt-manager.glade.h:9 msgid "2 GB" msgstr "" -#: tmp/virt-manager.glade.h:9 +#: tmp/virt-manager.glade.h:10 msgid "20 bits/sec" msgstr "" -#: tmp/virt-manager.glade.h:10 +#: tmp/virt-manager.glade.h:11 msgid "200 MB" msgstr "" -#: tmp/virt-manager.glade.h:11 +#: tmp/virt-manager.glade.h:12 msgid "256\t" msgstr "" -#: tmp/virt-manager.glade.h:12 +#: tmp/virt-manager.glade.h:13 msgid "30 MB of 128 MB" msgstr "" -#: tmp/virt-manager.glade.h:13 -msgid "80 MB of 1 GB" -msgstr "" - #: tmp/virt-manager.glade.h:14 -msgid ":" +msgid "400 MB" msgstr "" #: tmp/virt-manager.glade.h:15 -msgid "Basic details" +msgid "5\t" msgstr "" #: tmp/virt-manager.glade.h:16 -msgid "CPUs:" +msgid "5 GB" msgstr "" #: tmp/virt-manager.glade.h:17 -msgid "CPUs" +msgid "500 MB" msgstr "" #: tmp/virt-manager.glade.h:18 -msgid "Example: system1" +msgid "80 MB of 1 GB" msgstr "" #: tmp/virt-manager.glade.h:19 -msgid "Memory:" +msgid ":" msgstr "" #: tmp/virt-manager.glade.h:20 -msgid "Memory" +msgid "Basic details" msgstr "" #: tmp/virt-manager.glade.h:21 -msgid "Memory and CPU allocation" +msgid "CPUs:" msgstr "" #: tmp/virt-manager.glade.h:22 -msgid "Network" +msgid "CPUs" msgstr "" #: tmp/virt-manager.glade.h:23 -msgid "Performance" +msgid "Disk image:" msgstr "" #: tmp/virt-manager.glade.h:24 -msgid "Physical host CPU count: " +msgid "Disk size:" msgstr "" #: tmp/virt-manager.glade.h:25 -msgid "Status monitoring" +msgid "Example: system1" msgstr "" #: tmp/virt-manager.glade.h:26 -msgid "Storage" +msgid "Initial memory:" msgstr "" #: tmp/virt-manager.glade.h:27 +msgid "Installation source:" +msgstr "" + +#: tmp/virt-manager.glade.h:28 +msgid "Kickstart source:" +msgstr "" + +#: tmp/virt-manager.glade.h:29 +msgid "Machine name:" +msgstr "" + +#: tmp/virt-manager.glade.h:30 +msgid "Maximum memory:" +msgstr "" + +#: tmp/virt-manager.glade.h:31 +msgid "Memory:" +msgstr "" + +#: tmp/virt-manager.glade.h:32 +msgid "Memory" +msgstr "" + +#: tmp/virt-manager.glade.h:33 +msgid "Memory and CPU allocation" +msgstr "" + +#: tmp/virt-manager.glade.h:34 +msgid "Network" +msgstr "" + +#: tmp/virt-manager.glade.h:35 +msgid "Performance" +msgstr "" + +#: tmp/virt-manager.glade.h:36 +msgid "Physical host CPU count: " +msgstr "" + +#: tmp/virt-manager.glade.h:37 +msgid "Status monitoring" +msgstr "" + +#: tmp/virt-manager.glade.h:38 +msgid "Storage" +msgstr "" + +#: tmp/virt-manager.glade.h:39 msgid "" "Storage details - which disk partitions or files the system should use" msgstr "" -#: tmp/virt-manager.glade.h:28 +#: tmp/virt-manager.glade.h:40 +msgid "Summary:" +msgstr "" + +#: tmp/virt-manager.glade.h:41 msgid "The console is currently unavailable" msgstr "" -#: tmp/virt-manager.glade.h:29 +#: tmp/virt-manager.glade.h:42 msgid "" "Tip: Acceptable values for hex digits are the numbers 0-9 and the " "letters A-F" msgstr "" -#: tmp/virt-manager.glade.h:30 +#: tmp/virt-manager.glade.h:43 msgid "" "Tip: File location paths are as seen from the physical host. Mount " "points are as seen from the virtual machine." msgstr "" -#: tmp/virt-manager.glade.h:31 +#: tmp/virt-manager.glade.h:44 msgid "" "Tip: For best performance, the number of virtual CPUs should be less " "than (or equal to) the number of physical CPUs on the host system." msgstr "" -#: tmp/virt-manager.glade.h:32 +#: tmp/virt-manager.glade.h:45 msgid "" "Tip: You may only increase the size of file-based storage; you can't " "decrease its size." msgstr "" -#: tmp/virt-manager.glade.h:33 +#: tmp/virt-manager.glade.h:46 msgid "" "Too Many Virtual CPUs\n" "\n" @@ -410,352 +461,364 @@ msgid "" "physically. This may result in poor performance in the virtual machine." msgstr "" -#: tmp/virt-manager.glade.h:36 +#: tmp/virt-manager.glade.h:49 +msgid "Virtaulization method:" +msgstr "" + +#: tmp/virt-manager.glade.h:50 +msgid "Virtual CPUs:" +msgstr "" + +#: tmp/virt-manager.glade.h:51 msgid "Example: /dev/hdc2" msgstr "" -#: tmp/virt-manager.glade.h:37 +#: tmp/virt-manager.glade.h:52 msgid "Example: ftp://hostname.example.com/ks/ks.cfg" msgstr "" -#: tmp/virt-manager.glade.h:38 +#: tmp/virt-manager.glade.h:53 msgid "" "Example: http://servername.example.com/distro/i386/tree" msgstr "" -#: tmp/virt-manager.glade.h:39 +#: tmp/virt-manager.glade.h:54 msgid "" "Note: File size parameter is only relevant for new files" msgstr "" -#: tmp/virt-manager.glade.h:40 +#: tmp/virt-manager.glade.h:55 msgid "" "Tip: For best performance, the number of virtual CPUs should " "be less than (or equal to) the number of physical CPUs on the host system." msgstr "" -#: tmp/virt-manager.glade.h:41 +#: tmp/virt-manager.glade.h:56 msgid "" "Tip: You may add additional storage, including network-mounted " "storage, to your virtual system after it has been created using the same " "tools you would on a physical system." msgstr "" -#: tmp/virt-manager.glade.h:42 +#: tmp/virt-manager.glade.h:57 msgid "" "Allocate memory " "and CPU" msgstr "" -#: tmp/virt-manager.glade.h:43 +#: tmp/virt-manager.glade.h:58 msgid "" "Assigning " "storage space" msgstr "" -#: tmp/virt-manager.glade.h:44 +#: tmp/virt-manager.glade.h:59 msgid "" "Choosing a " "virtualization method" msgstr "" -#: tmp/virt-manager.glade.h:45 +#: tmp/virt-manager.glade.h:60 msgid "" "Creating a new " "virtual system " msgstr "" -#: tmp/virt-manager.glade.h:46 +#: tmp/virt-manager.glade.h:61 msgid "" "Locating " "installation media" msgstr "" -#: tmp/virt-manager.glade.h:47 +#: tmp/virt-manager.glade.h:62 msgid "" "Naming your " "virtual system " msgstr "" -#: tmp/virt-manager.glade.h:48 +#: tmp/virt-manager.glade.h:63 msgid "" "Ready to begin " "installation" msgstr "" -#: tmp/virt-manager.glade.h:49 +#: tmp/virt-manager.glade.h:64 msgid "A name for your new virtual system" msgstr "" -#: tmp/virt-manager.glade.h:50 +#: tmp/virt-manager.glade.h:65 msgid "Add Virtual NIC" msgstr "" -#: tmp/virt-manager.glade.h:51 +#: tmp/virt-manager.glade.h:66 msgid "Add virtual NIC with:" msgstr "" -#: tmp/virt-manager.glade.h:52 +#: tmp/virt-manager.glade.h:67 msgid "Alert" msgstr "" -#: tmp/virt-manager.glade.h:53 +#: tmp/virt-manager.glade.h:68 msgid "" "All virtual machines\n" "Active virtual machines\n" "Inactive virtual machines" msgstr "" -#: tmp/virt-manager.glade.h:56 +#: tmp/virt-manager.glade.h:71 msgid "Auth" msgstr "" -#: tmp/virt-manager.glade.h:57 +#: tmp/virt-manager.glade.h:72 msgid "Browse..." msgstr "" -#: tmp/virt-manager.glade.h:59 +#: tmp/virt-manager.glade.h:74 msgid "CPU usage:" msgstr "" -#: tmp/virt-manager.glade.h:60 +#: tmp/virt-manager.glade.h:75 msgid "CPU/memory" msgstr "" -#: tmp/virt-manager.glade.h:61 +#: tmp/virt-manager.glade.h:76 msgid "CPUs" msgstr "" -#: tmp/virt-manager.glade.h:62 +#: tmp/virt-manager.glade.h:77 msgid "Complete" msgstr "" -#: tmp/virt-manager.glade.h:63 +#: tmp/virt-manager.glade.h:78 msgid "Connect" msgstr "" -#: tmp/virt-manager.glade.h:64 +#: tmp/virt-manager.glade.h:79 msgid "Copyright (C) 2006 Red Hat Inc." msgstr "" -#: tmp/virt-manager.glade.h:65 +#: tmp/virt-manager.glade.h:80 msgid "Create a new virtual system" msgstr "" -#: tmp/virt-manager.glade.h:66 +#: tmp/virt-manager.glade.h:81 msgid "Current usage:" msgstr "" -#: tmp/virt-manager.glade.h:67 +#: tmp/virt-manager.glade.h:82 msgid "Delete machine" msgstr "" -#: tmp/virt-manager.glade.h:68 +#: tmp/virt-manager.glade.h:83 msgid "Details" msgstr "" -#: tmp/virt-manager.glade.h:69 +#: tmp/virt-manager.glade.h:84 msgid "Disk" msgstr "" -#: tmp/virt-manager.glade.h:71 +#: tmp/virt-manager.glade.h:86 msgid "Disk usage:" msgstr "" -#: tmp/virt-manager.glade.h:72 +#: tmp/virt-manager.glade.h:87 msgid "Domain ID" msgstr "" -#: tmp/virt-manager.glade.h:73 +#: tmp/virt-manager.glade.h:88 msgid "FV install" msgstr "" -#: tmp/virt-manager.glade.h:74 +#: tmp/virt-manager.glade.h:89 msgid "File _Location:" msgstr "" -#: tmp/virt-manager.glade.h:75 +#: tmp/virt-manager.glade.h:90 msgid "File _Size:" msgstr "" -#: tmp/virt-manager.glade.h:76 +#: tmp/virt-manager.glade.h:91 msgid "Hardware" msgstr "" -#: tmp/virt-manager.glade.h:77 +#: tmp/virt-manager.glade.h:92 msgid "Host:" msgstr "" -#: tmp/virt-manager.glade.h:78 +#: tmp/virt-manager.glade.h:93 msgid "How many virtual CPUs should this sytem have?" msgstr "" -#: tmp/virt-manager.glade.h:79 +#: tmp/virt-manager.glade.h:94 +msgid "How many virtual CPUs should this system have?" +msgstr "" + +#: tmp/virt-manager.glade.h:95 msgid "How much memory should this VM start up with?" msgstr "" -#: tmp/virt-manager.glade.h:80 +#: tmp/virt-manager.glade.h:96 msgid "How much memory should this machine be allowed to use?" msgstr "" -#: tmp/virt-manager.glade.h:81 +#: tmp/virt-manager.glade.h:97 msgid "ISO _Location:" msgstr "" -#: tmp/virt-manager.glade.h:82 +#: tmp/virt-manager.glade.h:98 msgid "Install Media _URL:" msgstr "" -#: tmp/virt-manager.glade.h:83 +#: tmp/virt-manager.glade.h:99 msgid "Intro" msgstr "" -#: tmp/virt-manager.glade.h:84 +#: tmp/virt-manager.glade.h:100 msgid "" "Involves hardware simulation, allowing for a greater range of operating " "systems (does not require OS modification). Slower than paravirtualized " "systems." msgstr "" -#: tmp/virt-manager.glade.h:85 +#: tmp/virt-manager.glade.h:101 msgid "Keep CPU Settings" msgstr "" -#: tmp/virt-manager.glade.h:86 +#: tmp/virt-manager.glade.h:102 msgid "Kickstart U_RL:" msgstr "" -#: tmp/virt-manager.glade.h:87 +#: tmp/virt-manager.glade.h:103 msgid "" "Lightweight method of virtualizing machines. Limits operating system choices " "because the OS must be specially modified to support paravirtualization. " "Better performance than fully virtualized systems." msgstr "" -#: tmp/virt-manager.glade.h:88 +#: tmp/virt-manager.glade.h:104 msgid "Local Xen host" msgstr "" -#: tmp/virt-manager.glade.h:89 +#: tmp/virt-manager.glade.h:105 msgid "Login" msgstr "" -#: tmp/virt-manager.glade.h:90 +#: tmp/virt-manager.glade.h:106 msgid "MB" msgstr "" -#: tmp/virt-manager.glade.h:91 +#: tmp/virt-manager.glade.h:107 msgid "" "MB\n" "GB\n" "TB" msgstr "" -#: tmp/virt-manager.glade.h:94 +#: tmp/virt-manager.glade.h:110 msgid "Machine details..." msgstr "" -#: tmp/virt-manager.glade.h:95 +#: tmp/virt-manager.glade.h:111 msgid "Maintain history of" msgstr "" -#: tmp/virt-manager.glade.h:96 +#: tmp/virt-manager.glade.h:112 msgid "Maximum usage:" msgstr "" -#: tmp/virt-manager.glade.h:97 +#: tmp/virt-manager.glade.h:113 msgid "Memory" msgstr "" -#: tmp/virt-manager.glade.h:99 +#: tmp/virt-manager.glade.h:115 msgid "Memory usage:" msgstr "" -#: tmp/virt-manager.glade.h:100 +#: tmp/virt-manager.glade.h:116 msgid "Modify CPU Settings" msgstr "" -#: tmp/virt-manager.glade.h:101 +#: tmp/virt-manager.glade.h:117 msgid "Modify File Storage" msgstr "" -#: tmp/virt-manager.glade.h:103 +#: tmp/virt-manager.glade.h:119 msgid "Name:" msgstr "" -#: tmp/virt-manager.glade.h:104 +#: tmp/virt-manager.glade.h:120 msgid "Network" msgstr "" -#: tmp/virt-manager.glade.h:106 +#: tmp/virt-manager.glade.h:122 msgid "Network usage:" msgstr "" -#: tmp/virt-manager.glade.h:107 +#: tmp/virt-manager.glade.h:123 msgid "New machine..." msgstr "" -#: tmp/virt-manager.glade.h:108 +#: tmp/virt-manager.glade.h:124 msgid "Normal Disk _Partition:" msgstr "" -#: tmp/virt-manager.glade.h:109 +#: tmp/virt-manager.glade.h:125 msgid "Open connection" msgstr "" -#: tmp/virt-manager.glade.h:110 +#: tmp/virt-manager.glade.h:126 msgid "Open connection..." msgstr "" -#: tmp/virt-manager.glade.h:111 +#: tmp/virt-manager.glade.h:127 msgid "Other hypervisor" msgstr "" -#: tmp/virt-manager.glade.h:112 +#: tmp/virt-manager.glade.h:128 msgid "Overview" msgstr "" -#: tmp/virt-manager.glade.h:113 +#: tmp/virt-manager.glade.h:129 msgid "PVinstall" msgstr "" -#: tmp/virt-manager.glade.h:114 +#: tmp/virt-manager.glade.h:130 msgid "P_artition:" msgstr "" -#: tmp/virt-manager.glade.h:115 +#: tmp/virt-manager.glade.h:131 msgid "Password:" msgstr "" -#: tmp/virt-manager.glade.h:116 +#: tmp/virt-manager.glade.h:132 msgid "Pause" msgstr "" -#: tmp/virt-manager.glade.h:117 +#: tmp/virt-manager.glade.h:133 msgid "Physical host CPU count:" msgstr "" -#: tmp/virt-manager.glade.h:118 +#: tmp/virt-manager.glade.h:134 msgid "Please choose a name for your virtual system:" msgstr "" -#: tmp/virt-manager.glade.h:119 +#: tmp/virt-manager.glade.h:135 msgid "" "Please indicate how you'd like to assign space on this physical host system " "for your new virtual system. This space will be used to install the virtual " "system's operating system." msgstr "" -#: tmp/virt-manager.glade.h:120 +#: tmp/virt-manager.glade.h:136 msgid "" "Please indicate where installation media is available for the operating " "system you would like to install on this fully virtualized virtual " "system:" msgstr "" -#: tmp/virt-manager.glade.h:121 +#: tmp/virt-manager.glade.h:137 msgid "" "Please indicate where installation media is available for the operating " "system you would like to install on this paravirtualized virtual " @@ -763,284 +826,295 @@ msgid "" "describes your system:" msgstr "" -#: tmp/virt-manager.glade.h:122 +#: tmp/virt-manager.glade.h:138 msgid "Please wait..." msgstr "" -#: tmp/virt-manager.glade.h:123 +#: tmp/virt-manager.glade.h:139 msgid "Port:" msgstr "" -#: tmp/virt-manager.glade.h:124 -msgid "Processor" -msgstr "" - -#: tmp/virt-manager.glade.h:125 -msgid "Randomly generated MAC address" -msgstr "" - -#: tmp/virt-manager.glade.h:126 -msgid "Read only connection" -msgstr "" - -#: tmp/virt-manager.glade.h:127 -msgid "Remote Xen host" -msgstr "" - -#: tmp/virt-manager.glade.h:128 -msgid "Restore a saved machine from a filesystem image" -msgstr "" - -#: tmp/virt-manager.glade.h:129 -msgid "Restore saved machine..." -msgstr "" - -#: tmp/virt-manager.glade.h:130 -msgid "Run" -msgstr "" - -#: tmp/virt-manager.glade.h:131 -msgid "Save this password in your keyring" -msgstr "" - -#: tmp/virt-manager.glade.h:132 -msgid "Saving VM Image" -msgstr "" - -#: tmp/virt-manager.glade.h:133 -msgid "Screenshot" -msgstr "" - -#: tmp/virt-manager.glade.h:134 -msgid "Shut down" -msgstr "" - -#: tmp/virt-manager.glade.h:136 -msgid "Simple _File:" -msgstr "" - -#: tmp/virt-manager.glade.h:137 -msgid "Specified MAC address:" -msgstr "" - -#: tmp/virt-manager.glade.h:139 -msgid "Status:" -msgstr "" - #: tmp/virt-manager.glade.h:140 -msgid "System _Name:" +msgid "Powered by libvirt" msgstr "" #: tmp/virt-manager.glade.h:141 msgid "" +"Press finish to create a new virtual machine with\n" +"this configuration & display the virtual console." +msgstr "" + +#: tmp/virt-manager.glade.h:143 +msgid "Processor" +msgstr "" + +#: tmp/virt-manager.glade.h:144 +msgid "Randomly generated MAC address" +msgstr "" + +#: tmp/virt-manager.glade.h:145 +msgid "Read only connection" +msgstr "" + +#: tmp/virt-manager.glade.h:146 +msgid "Remote Xen host" +msgstr "" + +#: tmp/virt-manager.glade.h:147 +msgid "Restore a saved machine from a filesystem image" +msgstr "" + +#: tmp/virt-manager.glade.h:148 +msgid "Restore saved machine..." +msgstr "" + +#: tmp/virt-manager.glade.h:149 +msgid "Run" +msgstr "" + +#: tmp/virt-manager.glade.h:150 +msgid "Save this password in your keyring" +msgstr "" + +#: tmp/virt-manager.glade.h:151 +msgid "Saving VM Image" +msgstr "" + +#: tmp/virt-manager.glade.h:152 +msgid "Screenshot" +msgstr "" + +#: tmp/virt-manager.glade.h:153 +msgid "Shut down" +msgstr "" + +#: tmp/virt-manager.glade.h:155 +msgid "Simple _File:" +msgstr "" + +#: tmp/virt-manager.glade.h:156 +msgid "Specified MAC address:" +msgstr "" + +#: tmp/virt-manager.glade.h:158 +msgid "Status:" +msgstr "" + +#: tmp/virt-manager.glade.h:159 +msgid "System _Name:" +msgstr "" + +#: tmp/virt-manager.glade.h:160 +msgid "" "The location of the files necessary for installing an operating " "system on the virtual system" msgstr "" -#: tmp/virt-manager.glade.h:142 +#: tmp/virt-manager.glade.h:161 msgid "" "This assistant will guide you through creating a new virtual system. You " "will be asked for some information about the virtual system you'd like to " "create, such as:" msgstr "" -#: tmp/virt-manager.glade.h:143 +#: tmp/virt-manager.glade.h:162 msgid "Toolbar" msgstr "" -#: tmp/virt-manager.glade.h:144 +#: tmp/virt-manager.glade.h:163 msgid "Total memory on host machine:" msgstr "" -#: tmp/virt-manager.glade.h:145 +#: tmp/virt-manager.glade.h:164 msgid "Type" msgstr "" -#: tmp/virt-manager.glade.h:146 +#: tmp/virt-manager.glade.h:165 msgid "URI:" msgstr "" -#: tmp/virt-manager.glade.h:147 +#: tmp/virt-manager.glade.h:166 msgid "UUID:" msgstr "" -#: tmp/virt-manager.glade.h:148 +#: tmp/virt-manager.glade.h:167 msgid "Unavailable" msgstr "" -#: tmp/virt-manager.glade.h:149 +#: tmp/virt-manager.glade.h:168 msgid "Update status every" msgstr "" -#: tmp/virt-manager.glade.h:150 +#: tmp/virt-manager.glade.h:169 msgid "Update usage:" msgstr "" -#: tmp/virt-manager.glade.h:151 +#: tmp/virt-manager.glade.h:170 msgid "VNC" msgstr "" -#: tmp/virt-manager.glade.h:152 +#: tmp/virt-manager.glade.h:171 msgid "Virtual CPUs" msgstr "" -#: tmp/virt-manager.glade.h:153 +#: tmp/virt-manager.glade.h:172 msgid "Virtual Machine Console" msgstr "" -#: tmp/virt-manager.glade.h:154 +#: tmp/virt-manager.glade.h:173 msgid "Virtual Machine Details" msgstr "" -#: tmp/virt-manager.glade.h:155 +#: tmp/virt-manager.glade.h:174 msgid "Virtual Machine Manager" msgstr "" -#: tmp/virt-manager.glade.h:156 +#: tmp/virt-manager.glade.h:175 msgid "Virtual Machine Manager Preferences" msgstr "" -#: tmp/virt-manager.glade.h:157 +#: tmp/virt-manager.glade.h:176 msgid "Virtual _Machine" msgstr "" -#: tmp/virt-manager.glade.h:158 +#: tmp/virt-manager.glade.h:177 msgid "What is the maximum amount of memory this VM should be able to use?" msgstr "" -#: tmp/virt-manager.glade.h:159 +#: tmp/virt-manager.glade.h:178 msgid "" "Whether the system will be fully virtualized or para-virtualized" msgstr "" -#: tmp/virt-manager.glade.h:160 -msgid "" -"You are now ready to begin your installation of $SYSTEM_NAME. Once " -"installation is complete, you will be able to view and work with " -"$SYSTEM_NAME in the virtual machine manager." -msgstr "" - -#: tmp/virt-manager.glade.h:161 +#: tmp/virt-manager.glade.h:179 msgid "You will need to choose a virtualization method for your new system:" msgstr "" -#: tmp/virt-manager.glade.h:162 +#: tmp/virt-manager.glade.h:180 msgid "_Browse..." msgstr "" -#: tmp/virt-manager.glade.h:163 +#: tmp/virt-manager.glade.h:181 msgid "_CD-ROM or DVD:" msgstr "" -#: tmp/virt-manager.glade.h:164 +#: tmp/virt-manager.glade.h:182 msgid "_Details" msgstr "" -#: tmp/virt-manager.glade.h:165 +#: tmp/virt-manager.glade.h:183 msgid "_Edit" msgstr "" -#: tmp/virt-manager.glade.h:166 +#: tmp/virt-manager.glade.h:184 msgid "_File" msgstr "" -#: tmp/virt-manager.glade.h:167 +#: tmp/virt-manager.glade.h:185 msgid "_Finish" msgstr "" -#: tmp/virt-manager.glade.h:168 +#: tmp/virt-manager.glade.h:186 msgid "_FullScreen" msgstr "" -#: tmp/virt-manager.glade.h:169 +#: tmp/virt-manager.glade.h:187 msgid "_Fully Virtualized:" msgstr "" -#: tmp/virt-manager.glade.h:170 +#: tmp/virt-manager.glade.h:188 msgid "_Graphical Console" msgstr "" -#: tmp/virt-manager.glade.h:171 +#: tmp/virt-manager.glade.h:189 msgid "_Help" msgstr "" -#: tmp/virt-manager.glade.h:172 +#: tmp/virt-manager.glade.h:190 msgid "_ISO Image Location:" msgstr "" -#: tmp/virt-manager.glade.h:173 +#: tmp/virt-manager.glade.h:191 msgid "_Mount Point (on virtual system):" msgstr "" -#: tmp/virt-manager.glade.h:174 +#: tmp/virt-manager.glade.h:192 msgid "_Paravirtualized:" msgstr "" -#: tmp/virt-manager.glade.h:175 +#: tmp/virt-manager.glade.h:193 msgid "_Path to install media:" msgstr "" -#: tmp/virt-manager.glade.h:176 +#: tmp/virt-manager.glade.h:194 msgid "_Pause" msgstr "" -#: tmp/virt-manager.glade.h:177 +#: tmp/virt-manager.glade.h:195 msgid "_Run" msgstr "" -#: tmp/virt-manager.glade.h:178 +#: tmp/virt-manager.glade.h:196 msgid "_Save" msgstr "" -#: tmp/virt-manager.glade.h:179 +#: tmp/virt-manager.glade.h:197 msgid "_Serial Console" msgstr "" -#: tmp/virt-manager.glade.h:180 +#: tmp/virt-manager.glade.h:198 msgid "_Shutdown" msgstr "" -#: tmp/virt-manager.glade.h:181 +#: tmp/virt-manager.glade.h:199 msgid "_Size:" msgstr "" -#: tmp/virt-manager.glade.h:182 +#: tmp/virt-manager.glade.h:200 msgid "_Take Screenshot" msgstr "" -#: tmp/virt-manager.glade.h:183 +#: tmp/virt-manager.glade.h:201 msgid "_View" msgstr "" -#: tmp/virt-manager.glade.h:184 +#: tmp/virt-manager.glade.h:202 msgid "_View:" msgstr "" -#: tmp/virt-manager.glade.h:185 -msgid "_Virtual CPUs:" +#: tmp/virt-manager.glade.h:203 +msgid "demo" msgstr "" -#: tmp/virt-manager.glade.h:186 +#: tmp/virt-manager.glade.h:204 +msgid "http://" +msgstr "" + +#: tmp/virt-manager.glade.h:205 msgid "mac-addr-random" msgstr "" -#: tmp/virt-manager.glade.h:187 +#: tmp/virt-manager.glade.h:206 +msgid "para" +msgstr "" + +#: tmp/virt-manager.glade.h:207 msgid "samples" msgstr "" -#: tmp/virt-manager.glade.h:188 +#: tmp/virt-manager.glade.h:208 msgid "seconds" msgstr "" -#: tmp/virt-manager.glade.h:189 +#: tmp/virt-manager.glade.h:209 msgid "state-host-cpus" msgstr "" -#: tmp/virt-manager.glade.h:191 +#: tmp/virt-manager.glade.h:211 msgid "translator-credits" msgstr "" -#: tmp/virt-manager.glade.h:192 +#: tmp/virt-manager.glade.h:212 msgid "virtual CPU alert" msgstr "" diff --git a/src/virt-manager.glade b/src/virt-manager.glade index cc0c0f3c..3ea77fde 100644 --- a/src/virt-manager.glade +++ b/src/virt-manager.glade @@ -602,7 +602,7 @@ Inactive virtual machines True Virtual Machine Manager Copyright (C) 2006 Red Hat Inc. - + Powered by libvirt This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -618,13 +618,17 @@ Inactive virtual machines Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA False + http://virt-manager.et.redhat.com/ + Daniel P. Berrange <berrange@redhat.com> Hugh O. Brock <hbrock@redhat.com> Máirín Duffy <duffy@redhat.com> +Jeremy Katz <katzj@redhat.com> Máirín Duffy <duffy@redhat.com> translator-credits + @@ -1522,9 +1526,6 @@ Máirín Duffy <duffy@redhat.com> 0 0.5 GTK_SHADOW_NONE - - CPUs - @@ -1533,107 +1534,25 @@ Máirín Duffy <duffy@redhat.com> 0.5 1 1 - 0 - 0 + 5 + 3 12 0 - + True - 2 - 2 False - 5 - 2 + 0 - + True - How many <b>virtual</b> CPUs should this sytem have? - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 1 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - False - False - 1 1 32 1 10 10 - - - - 1 - 2 - 0 - 1 - fill - - - - - - - True - <b>Physical</b> host CPU count: - False - True - GTK_JUSTIFY_RIGHT - False - False - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - 256 + How many virtual CPUs should this machine be allocated? False False GTK_JUSTIFY_LEFT - False + True False 0 0.5 @@ -1643,17 +1562,247 @@ Máirín Duffy <duffy@redhat.com> -1 False 0 - - state-host-cpus - - 1 - 2 - 1 - 2 - fill - + 0 + False + False + + + + + + 3 + True + 4 + 2 + False + 3 + 3 + + + + True + Change allocation: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Total CPUs on host machine: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + Maximum allocation: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + Current allocation: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + 8 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 3 + 4 + fill + + + + + + + True + 2 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + 2 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + + True + True + 1 + 0 + True + GTK_UPDATE_IF_VALID + False + False + 2 1 32 1 2 2 + + + + 1 + 2 + 0 + 1 + fill + + + + + + 0 + False + False @@ -1879,7 +2028,7 @@ Máirín Duffy <duffy@redhat.com> True - How much memory should this machine be allowed to use? + How much memory should this machine be allocated? False False GTK_JUSTIFY_LEFT @@ -1914,7 +2063,7 @@ Máirín Duffy <duffy@redhat.com> True - Update usage: + Change allocation: False False GTK_JUSTIFY_LEFT @@ -1970,7 +2119,7 @@ Máirín Duffy <duffy@redhat.com> True - Maximum usage: + Maximum allocation: False False GTK_JUSTIFY_LEFT @@ -1998,7 +2147,7 @@ Máirín Duffy <duffy@redhat.com> True - Current usage: + Current allocation: False False GTK_JUSTIFY_LEFT @@ -2120,7 +2269,7 @@ Máirín Duffy <duffy@redhat.com> 1 0 True - GTK_UPDATE_ALWAYS + GTK_UPDATE_IF_VALID False False 50 50 32000 5 10 10 @@ -3256,8 +3405,8 @@ Máirín Duffy <duffy@redhat.com> True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + GTK_POLICY_ALWAYS + GTK_POLICY_ALWAYS GTK_SHADOW_NONE GTK_CORNER_TOP_LEFT @@ -3503,8 +3652,8 @@ Máirín Duffy <duffy@redhat.com> True True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC + GTK_POLICY_ALWAYS + GTK_POLICY_ALWAYS GTK_SHADOW_NONE GTK_CORNER_TOP_LEFT @@ -5697,7 +5846,6 @@ TB True False - 1 @@ -5879,7 +6027,6 @@ TB True False True - @@ -5939,7 +6086,6 @@ TB False True virt-method-pv - @@ -6175,7 +6321,7 @@ TB True False True - + @@ -6213,7 +6359,7 @@ TB False True media-iso-image - + @@ -6244,7 +6390,6 @@ TB True False - 0 @@ -6789,7 +6934,6 @@ TB True False - @@ -6827,7 +6971,6 @@ TB True False - @@ -7237,7 +7380,6 @@ TB True False - 0 @@ -7290,6 +7432,7 @@ TB True False + 0 @@ -7660,9 +7803,10 @@ TB + 6 True 12 - 5 + 3 False 0 0 @@ -7695,34 +7839,6 @@ TB - - - True - What is the maximum amount of memory this VM should be able to use? - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 5 - 1 - 2 - fill - - - - True @@ -7751,94 +7867,10 @@ TB - - - True - 2 GB - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 5 - 6 - fill - - - - - - - True - 256 - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 9 - 10 - fill - - - - - - - True - Total memory on host machine: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 5 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 3 - 5 - 6 - fill - - - - True - _Virtual CPUs: + How many virtual CPUs should this system have? True True GTK_JUSTIFY_LEFT @@ -7863,71 +7895,6 @@ TB - - - True - Physical host CPU count: - False - True - GTK_JUSTIFY_RIGHT - False - False - 0 - 0.5 - 5 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 3 - 9 - 10 - fill - - - - - - - True - 0 - 0.5 - 0 - 1 - 0 - 0 - 0 - 33 - - - - True - True - 1 - 0 - True - GTK_UPDATE_ALWAYS - False - False - 1 1 32 1 10 10 - - - - - - 3 - 4 - 8 - 9 - fill - - - - True @@ -7956,34 +7923,6 @@ TB - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 10 - 11 - fill - - - - True @@ -8062,7 +8001,7 @@ TB 1 - 5 + 3 11 12 fill @@ -8070,6 +8009,146 @@ TB + + + True + Physical host CPU count: + False + True + GTK_JUSTIFY_RIGHT + False + False + 0 + 0.5 + 5 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 10 + 11 + fill + + + + + + + True + 256 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 10 + 11 + fill + + + + + + + True + Total memory on host machine: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 5 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 5 + 6 + fill + + + + + + + True + 2 GB + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 5 + 6 + fill + + + + + + + True + What is the maximum amount of memory this VM should be able to use? + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 3 + 1 + 2 + fill + + + + True @@ -8090,7 +8169,7 @@ TB 1 - 5 + 3 3 4 fill @@ -8099,12 +8178,12 @@ TB - + True - 0.5 - 0.5 - 1 - 1 + 0 + 0 + 0 + 0 0 0 0 @@ -8121,28 +8200,27 @@ TB False False 249 50 32000 5 10 10 - + - 1 - 4 + 2 + 3 2 3 - 30 - + fill fill - + True - 0.5 - 0.5 - 1 - 1 + 0 + 0 + 0 + 0 0 0 0 @@ -8158,21 +8236,55 @@ TB GTK_UPDATE_ALWAYS False False - 249 50 32000 5 10 10 - + 244 50 32000 5 10 10 - 1 - 4 + 2 + 3 4 5 - 30 - + fill fill + + + + True + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + True + True + 1 + 0 + True + GTK_UPDATE_IF_VALID + True + False + 1 1 32 1 2 2 + + + + + 2 + 3 + 9 + 10 + fill + + + 0 @@ -8271,28 +8383,610 @@ TB 0.10000000149 0 0 - 0 - 0 - 0 - 0 + 6 + 6 + 6 + 6 - + True - You are now ready to begin your installation of $SYSTEM_NAME. Once installation is complete, you will be able to view and work with $SYSTEM_NAME in the virtual machine manager. - False - True - GTK_JUSTIFY_LEFT - True - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 + False + 0 + + + + 6 + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + 6 + True + 9 + 2 + False + 3 + 3 + + + + True + <b>Machine name:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + <b>Installation source:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + <b>Kickstart source:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + <b>Disk image:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 4 + 5 + fill + + + + + + + True + <b>Disk size:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 5 + 6 + fill + + + + + + + True + <b>Maximum memory:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 6 + 7 + fill + + + + + + + True + <b>Initial memory:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 7 + 8 + fill + + + + + + + True + <b>Virtaulization method:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + <b>Virtual CPUs:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 8 + 9 + fill + + + + + + + True + demo + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 0 + 1 + fill + + + + + + + True + para + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 1 + 2 + fill + + + + + + + True + http:// + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 2 + 3 + fill + + + + + + + True + http:// + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 3 + 4 + fill + + + + + + + True + /xen/demo.img + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 4 + 5 + fill + + + + + + + True + 5 GB + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 5 + 6 + fill + + + + + + + True + 500 MB + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 6 + 7 + fill + + + + + + + True + 400 MB + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 7 + 8 + fill + + + + + + + True + 5 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 8 + 9 + fill + + + + + + + + + + + True + <b>Summary:</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + True + Press finish to create a new virtual machine with +this configuration & display the virtual console. + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + diff --git a/src/virt-manager.py.in b/src/virt-manager.py.in index e2437433..c48b559f 100755 --- a/src/virt-manager.py.in +++ b/src/virt-manager.py.in @@ -31,6 +31,20 @@ gettext_dir = "::GETTEXTDIR::" locale.setlocale(locale.LC_ALL, '') gettext.install(gettext_app, gettext_dir) +# Urgh, pygtk merely logs a warning when failing to open +# the X11 display connection, and lets everything carry +# on as if all were fine. Ultimately bad stuff happens, +# so lets catch it here & get the hell out... +import warnings +warnings.filterwarnings('error', module='gtk') +try: + import gtk +except Warning, e: + # ...the risk is we catch too much though + # Damned if we do, damned if we dont :-)( + print _("Unable to initialize GTK: ") + str(e) + sys.exit(1) +warnings.resetwarnings() import gtk gtk.gdk.threads_init() diff --git a/src/virtManager/about.py b/src/virtManager/about.py index 3a949434..a1fea681 100644 --- a/src/virtManager/about.py +++ b/src/virtManager/about.py @@ -27,6 +27,7 @@ class vmmAbout: self.window.signal_autoconnect({ "on_vmm_about_delete_event": self.close, + "on_vmm_about_response": self.close, }) def show(self): diff --git a/src/virtManager/create.py b/src/virtManager/create.py index fbff3aa2..a897e4ad 100644 --- a/src/virtManager/create.py +++ b/src/virtManager/create.py @@ -34,7 +34,7 @@ from rhpl.translate import _, N_, textdomain, utf8 from virtManager.asyncjob import vmmAsyncJob -VM_PARAVIRT = 1 +VM_PARA_VIRT = 1 VM_FULLY_VIRT = 2 VM_INSTALL_FROM_ISO = 1 @@ -72,44 +72,20 @@ class vmmCreate(gobject.GObject): "on_create_back_clicked" : self.back, "on_create_forward_clicked" : self.forward, "on_create_finish_clicked" : self.finish, - "on_create_vm_name_focus_out_event" : self.set_name, - "on_virt_method_toggled" : self.set_virt_method, - "on_media_toggled" : self.set_install_from, "on_fv_iso_location_browse_clicked" : self.browse_iso_location, + "on_create_memory_max_value_changed": self.set_max_memory, "on_storage_partition_address_browse_clicked" : self.browse_storage_partition_address, "on_storage_file_address_browse_clicked" : self.browse_storage_file_address, - "on_storage_toggled" : self.set_storage_type, - "on_storage_file_size_changed" : self.set_storage_file_size, - "on_create_memory_max_value_changed" : self.set_max_memory, - "on_create_memory_startup_value_changed" : self.set_startup_memory, - "on_create_vcpus_changed" : self.set_vcpus, - "on_cd_focus_out_event" : self.choose_media_location, - "on_cd_path_changed" : self.choose_media_location, + "on_storage_file_address_changed": self.toggle_storage_size, + "on_storage_toggled" : self.change_storage_type, + "on_media_toggled" : self.change_media_type, }) - self.set_initial_state() - - def show(self): - self.vm_added_handle = self.connection.connect("vm-added", self.open_vm_console) - self.topwin.show() - def _init_members(self): - #the dahta - self.vm_name = None - self.virt_method = VM_PARAVIRT - self.install_fv_media_type = VM_INSTALL_FROM_ISO - self.install_media_address = None - self.install_kickstart_address = None - self.storage_method = VM_STORAGE_PARTITION - self.storage_partition_address = None - self.storage_file_address = None - self.storage_file_size = DEFAULT_STORAGE_FILE_SIZE - self.max_memory = 0 - self.startup_memory = 0 - self.vcpus = 1 - self.vm_uuid = None - self.vm_added_handle = None - self.install_error = None + def show(self): + self.topwin.show() + self.reset_state() + self.topwin.present() def set_initial_state(self): notebook = self.window.get_widget("create-pages") @@ -128,17 +104,20 @@ class vmmCreate(gobject.GObject): self.window.get_widget("page6-title").modify_bg(gtk.STATE_NORMAL,black) # set up the list for the cd-path widget - self.opt_media_list = self.window.get_widget("cd-path") - model = gtk.ListStore(str) - self.opt_media_list.set_model(model) + cd_list = self.window.get_widget("cd-path") + # Fields are raw device path, volume label, flag indicating + # whether volume is present or not, and HAL path + cd_model = gtk.ListStore(str, str, bool, str) + cd_list.set_model(cd_model) text = gtk.CellRendererText() - self.opt_media_list.pack_start(text, True) - self.opt_media_list.add_attribute(text, 'text', 0) + cd_list.pack_start(text, True) + cd_list.add_attribute(text, 'text', 1) + cd_list.add_attribute(text, 'sensitive', 2) + self.populate_opt_media(cd_model) - self.reset_state() + self.window.get_widget("create-cpus-physical").set_text(str(self.connection.host_maximum_processor_count())) def reset_state(self): - self._init_members() notebook = self.window.get_widget("create-pages") notebook.set_current_page(0) # Hide the "finish" button until the appropriate time @@ -147,6 +126,24 @@ class vmmCreate(gobject.GObject): self.window.get_widget("create-back").set_sensitive(False) self.window.get_widget("storage-file-size").set_sensitive(False) + self.change_media_type() + self.change_storage_type() + self.window.get_widget("create-vm-name").set_text("") + self.window.get_widget("virt-method-pv").set_active(True) + self.window.get_widget("media-iso-image").set_active(True) + self.window.get_widget("fv-iso-location").set_text("") + self.window.get_widget("pv-media-url").set_text("") + self.window.get_widget("pv-ks-url").set_text("") + self.window.get_widget("storage-partition").set_active(True) + self.window.get_widget("storage-partition-address").set_text("") + self.window.get_widget("storage-file-address").set_text("") + self.window.get_widget("storage-file-size").set_value(2000) + self.window.get_widget("create-memory-max").set_value(500) + self.window.get_widget("create-memory-startup").set_value(500) + self.window.get_widget("create-vcpus").set_value(1) + + self.install_error = None + def forward(self, ignore=None): notebook = self.window.get_widget("create-pages") @@ -155,10 +152,9 @@ class vmmCreate(gobject.GObject): if notebook.get_current_page() == 1 and not xeninst.util.is_hvm_capable(): notebook.set_current_page(4) - self.virt_method = VM_PARAVIRT - elif (notebook.get_current_page() == 2 and self.virt_method == VM_PARAVIRT): + elif (notebook.get_current_page() == 2 and self.get_config_method() == VM_PARA_VIRT): notebook.set_current_page(4) - elif (notebook.get_current_page() == 3 and self.virt_method == VM_FULLY_VIRT): + elif (notebook.get_current_page() == 3 and self.get_config_method() == VM_FULLY_VIRT): notebook.set_current_page(5) else: notebook.next_page() @@ -168,230 +164,180 @@ class vmmCreate(gobject.GObject): # do this always, since there's no "leaving a notebook page" event. self.window.get_widget("create-finish").hide() self.window.get_widget("create-forward").show() - if notebook.get_current_page() == 4 and self.virt_method == VM_PARAVIRT: - notebook.set_current_page(2) - elif notebook.get_current_page() == 5 and self.virt_method == VM_FULLY_VIRT: + if notebook.get_current_page() == 4 and self.get_config_method() == VM_PARA_VIRT: + if xeninst.util.is_hvm_capable(): + notebook.set_current_page(2) + else: + notebook.set_current_page(1) + elif notebook.get_current_page() == 5 and self.get_config_method() == VM_FULLY_VIRT: notebook.set_current_page(3) else: notebook.prev_page() - + def get_config_name(self): + return self.window.get_widget("create-vm-name").get_text() + + def get_config_method(self): + if self.window.get_widget("virt-method-pv").get_active(): + return VM_PARA_VIRT + elif self.window.get_widget("virt-method-fv").get_active(): + return VM_FULLY_VIRT + else: + return VM_PARA_VIRT + + def get_config_install_source(self): + if self.get_config_method() == VM_PARA_VIRT: + return self.window.get_widget("pv-media-url").get_text() + else: + if self.window.get_widget("media-iso-image").get_active(): + return self.window.get_widget("fv-iso-location").get_text() + else: + cd = self.window.get_widget("cd-path") + model = cd.get_model() + return model.get_value(cd.get_active_iter(), 0) + + def get_config_kickstart_source(self): + if self.get_config_method() == VM_PARA_VIRT: + return self.window.get_widget("pv-ks-url").get_text() + else: + return "" + + def get_config_disk_image(self): + if self.window.get_widget("storage-partition").get_active(): + return self.window.get_widget("storage-partition-address").get_text() + else: + return self.window.get_widget("storage-file-address").get_text() + + def get_config_disk_size(self): + if self.window.get_widget("storage-partition").get_active(): + return None + else: + return self.window.get_widget("storage-file-size").get_value() + + def get_config_maximum_memory(self): + return self.window.get_widget("create-memory-max").get_value() + + def get_config_initial_memory(self): + return self.window.get_widget("create-memory-startup").get_value() + + def get_config_virtual_cpus(self): + return self.window.get_widget("create-vcpus").get_value() + def page_changed(self, notebook, page, page_number): # would you like some spaghetti with your salad, sir? - + if page_number == 0: - #set up the front page self.window.get_widget("create-back").set_sensitive(False) - elif page_number == 1: - #set up the system-name page name_widget = self.window.get_widget("create-vm-name") - if self.vm_name != None: - name_widget.set_text(self.vm_name) - else: - name_widget.set_text("") name_widget.grab_focus() - elif page_number == 2: #set up the virt method page - if self.virt_method == VM_PARAVIRT: - self.window.get_widget("virt-method-pv").set_active(True) - else: - self.window.get_widget("virt-method-fv").set_active(True) - + pass elif page_number == 3: #set up the fv install media page - model = self.opt_media_list.get_model() - model.clear() - #make sure the model has one empty item - model.append() - devs = self._get_optical_devices() - for dev in devs: - model.append([dev]) - if self.install_media_address != None: - self.window.get_widget("fv-iso-location").set_text(self.install_media_address) - else: - self.window.get_widget("fv-iso-location").set_text("") - if self.install_fv_media_type == VM_INSTALL_FROM_ISO: - self.window.get_widget("media-iso-image").set_active(True) - self.window.get_widget("fv-iso-location-box").set_sensitive(True) - else: - self.window.get_widget("media-physical").set_active(True) - self.window.get_widget("fv-iso-location-box").set_sensitive(False) - + pass elif page_number == 4: #set up the pv install media page url_widget = self.window.get_widget("pv-media-url") - ks_widget = self.window.get_widget("pv-ks-url") - if self.install_media_address != None: - url_widget.set_text(self.install_media_address) - else: - url_widget.set_text("") - if self.install_kickstart_address != None: - ks_widget.set_text(self.install_kickstart_address) - else: - ks_widget.set_text("") url_widget.grab_focus() - elif page_number == 5: #set up the storage space page partwidget = self.window.get_widget("storage-partition-address") filewidget = self.window.get_widget("storage-file-address") - - if self.storage_partition_address != None: - partwidget.set_text(self.storage_partition_address) - else: - partwidget.set_text("") - if self.storage_file_address != None: - filewidget.set_text(self.storage_file_address) - else: - filewidget.set_text("") - if self.storage_method == VM_STORAGE_PARTITION: - self.window.get_widget("storage-partition").set_active(True) - self.window.get_widget("storage-partition-box").set_sensitive(True) - self.window.get_widget("storage-file-box").set_sensitive(False) - else: - self.window.get_widget("storage-file-backed").set_active(True) - self.window.get_widget("storage-partition-box").set_sensitive(False) - self.window.get_widget("storage-file-box").set_sensitive(True) - elif page_number == 6: # memory stuff - max_mem = self.connection.host_memory_size()/1024 # in megabytes from henceforth - - #avoid absurdity, hopefully - if self.max_memory == 0: - self.max_memory = int(max_mem / 2) - if self.startup_memory > self.max_memory: - self.startup_memory = self.max_memory - - max_mem_slider = self.window.get_widget("create-memory-max") - self.window.get_widget("create-host-memory").set_text("%d MB" % max_mem) - max_mem_slider.get_adjustment().upper = max_mem - max_mem_slider.get_adjustment().value = self.max_memory - startup_mem_slider = self.window.get_widget("create-memory-startup") - startup_mem_slider.get_adjustment().upper = self.max_memory - startup_mem_slider.get_adjustment().value = self.startup_memory - startup_mem_slider.set_value(self.max_memory) - - #vcpu stuff - max_cpus = self.connection.host_maximum_processor_count() - self.window.get_widget("create-cpus-physical").set_text(`max_cpus`) - cpu_spinbox = self.window.get_widget("create-vcpus").get_adjustment() - cpu_spinbox.upper = max_cpus - cpu_spinbox.value = self.vcpus - + pass elif page_number == 7: - #set up the congrats page - congrats = self.window.get_widget("create-congrats-label") - - # XXX the validation doesn't really go here - if self.vm_name == None: self.vm_name = "No Name" - - congrats.set_text(_("Congratulations, you have successfully created a new virtual system, \"%s\". \nYou'll now be able to view and work with \"%s\" in the virtual machine manager.") % (self.vm_name, self.vm_name) ) - congrats.set_use_markup(True) + self.window.get_widget("summary-name").set_text(self.get_config_name()) + if self.get_config_method() == VM_PARA_VIRT: + self.window.get_widget("summary-method").set_text(_("Paravirtualized")) + else: + self.window.get_widget("summary-method").set_text(_("Fully virtualized")) + self.window.get_widget("summary-install-source").set_text(self.get_config_install_source()) + self.window.get_widget("summary-kickstart-source").set_text(self.get_config_kickstart_source()) + self.window.get_widget("summary-disk-image").set_text(self.get_config_disk_image()) + disksize = self.get_config_disk_size() + if disksize != None: + self.window.get_widget("summary-disk-size").set_text(str(int(disksize)) + " MB") + else: + self.window.get_widget("summary-disk-size").set_text("-") + self.window.get_widget("summary-max-memory").set_text(str(int(self.get_config_maximum_memory())) + " MB") + self.window.get_widget("summary-initial-memory").set_text(str(int(self.get_config_initial_memory())) + " MB") + self.window.get_widget("summary-virtual-cpus").set_text(str(int(self.get_config_virtual_cpus()))) self.window.get_widget("create-forward").hide() self.window.get_widget("create-finish").show() - + def close(self, ignore1=None,ignore2=None): - self.connection.disconnect(int(self.vm_added_handle)) - self.vm_added_handle = None self.topwin.hide() return 1 - + def finish(self, ignore=None): - #begin DEBUG STUFF - if self.install_kickstart_address == None: - ks = "None" - else: - ks = self.install_kickstart_address - if self.storage_file_size==None: - sfs = "Preset" - else: - sfs = `self.storage_file_size/1024` - if self.storage_method == VM_STORAGE_PARTITION: - saddr = self.storage_partition_address - else: - saddr = self.storage_file_address - logging.debug("your vm properties: \n Name=" + self.vm_name + \ - "\n Virt method: " + `self.virt_method` + \ - "\n Install media type (fv): " + `self.install_fv_media_type` + \ - "\n Install media address: " + self.install_media_address + \ - "\n Install kickstart address: " + ks + \ - "\n Install storage type: " + `self.storage_method` + \ - "\n Install storage address: " + saddr + \ - "\n Install storage file size: " + sfs + \ - "\n Install max kernel memory: " + `int(self.max_memory)` + \ - "\n Install startup kernel memory: " + `int(self.startup_memory)` + \ - "\n Install vcpus: " + `int(self.vcpus)`) - # end DEBUG STUFF - # first things first, are we trying to create a fully virt guest? - if self.virt_method == VM_FULLY_VIRT: + if self.get_config_method() == VM_FULLY_VIRT: guest = xeninst.FullVirtGuest() try: - guest.cdrom = self.install_media_address + guest.cdrom = self.get_config_install_source() except ValueError, e: self._validation_error_box(_("Invalid FV media address"),e.args[0]) - self.install_media_address = None else: guest = xeninst.ParaVirtGuest() try: - guest.location = self.install_media_address + guest.location = self.get_config_install_source() except ValueError, e: self._validation_error_box(_("Invalid PV media address"), e.args[0]) - self.install_media_address = None return - if self.install_kickstart_address != None and self.install_kickstart_address != "": - guest.extraargs = "ks=%s" % self.install_kickstart_address - + ks = self.get_config_kickstart_source() + if ks != None and len(ks) != 0: + guest.extraargs = "ks=%s" % ks + # set the name try: - guest.name = self.vm_name + guest.name = self.get_config_name() except ValueError, e: self._validation_error_box(_("Invalid system name"), e.args[0]) - self.vm_name = None return - + # set the memory try: - guest.memory = int(self.max_memory) + guest.memory = int(self.get_config_maximum_memory()) except ValueError: self._validation_error_box(_("Invalid memory setting"), e.args[0]) - self.max_memory = None return # set vcpus - guest.vcpus = int(self.vcpus) - - # disks - if self.storage_method == VM_STORAGE_PARTITION: - saddr = self.storage_partition_address - else: - saddr = self.storage_file_address + guest.vcpus = int(self.get_config_virtual_cpus()) + # disks filesize = None - if self.storage_file_size != None: - filesize = int(self.storage_file_size)/1024 + if self.get_config_disk_size() != None: + filesize = self.get_config_disk_size() / 1024.0 try: - d = xeninst.XenDisk(saddr, filesize) + d = xeninst.XenDisk(self.get_config_disk_image(), filesize) except ValueError, e: self._validation_error_box(_("Invalid storage address"), e.args[0]) - self.storage_partition_address = self.storage_file_address = self.storage_file_size = None return guest.disks.append(d) + # uuid + guest.uuid = xeninst.util.uuidToString(xeninst.util.randomUUID()) + # network n = xeninst.XenNetworkInterface(None) guest.nics.append(n) - #grab the uuid before we start - self.vm_uuid = xeninst.util.uuidToString(xeninst.util.randomUUID()) - guest.set_uuid(self.vm_uuid) - # set up the graphics to use SDL guest.graphics = "vnc" + logging.debug("Creating a VM " + guest.name + \ + "\n UUID: " + guest.uuid + \ + "\n Source: " + self.get_config_install_source() + \ + "\n Kickstart: " + self.get_config_kickstart_source() + \ + "\n Memory: " + str(guest.memory) + \ + "\n # VCPUs: " + str(guest.vcpus) + \ + "\n Filesize: " + str(filesize) + \ + "\n Disk image: " + str(self.get_config_disk_image())) + #let's go self.install_error = None progWin = vmmAsyncJob(self.config, self.do_install, [guest], @@ -400,6 +346,13 @@ class vmmCreate(gobject.GObject): if self.install_error != None: self._validation_error_box(_("Guest Install Error"), self.install_error) return + + vm = self.connection.get_vm(guest.uuid) + (gtype, host, port) = vm.get_graphics_console() + if gtype == "vnc": + self.emit("action-show-console", self.connection.get_uri(), guest.uuid) + else: + self.emit("action-show-terminal", self.connection.get_uri(), guest.uuid) self.close() def do_install(self, guest): @@ -409,39 +362,11 @@ class vmmCreate(gobject.GObject): self.install_error = "ERROR: %s" % e logging.exception(e) return - - def set_name(self, src, ignore=None): - self.vm_name = src.get_text() - def set_virt_method(self, button): - if button.get_active(): - if button.name == "virt-method-pv": - self.virt_method = VM_PARAVIRT - else: - self.virt_method = VM_FULLY_VIRT - self.install_media_address = None - - def set_install_from(self, button): - if button.get_active(): - if button.name == "media-iso-image": - self.install_fv_media_type = VM_INSTALL_FROM_ISO - self.window.get_widget("fv-iso-location-box").set_sensitive(True) - self.opt_media_list.set_sensitive(False) - elif button.name == "media-physical": - self.install_fv_media_type = VM_INSTALL_FROM_CD - self.window.get_widget("fv-iso-location-box").set_sensitive(False) - self.opt_media_list.set_sensitive(True) - self.opt_media_list.set_active(0) - - def choose_media_location(self, src): - model = self.opt_media_list.get_model() - logging.debug("User chose: " + model.get_value(self.opt_media_list.get_active_iter(), 0)) - self.install_media_address = model.get_value(self.opt_media_list.get_active_iter(), 0) - def browse_iso_location(self, ignore1=None, ignore2=None): - self.install_media_address = self._browse_file(_("Locate ISO Image")) - if self.install_media_address != None: - self.window.get_widget("fv-iso-location").set_text(self.install_media_address) + file = self._browse_file(_("Locate ISO Image")) + if file != None: + self.window.get_widget("fv-iso-location").set_text(file) def _browse_file(self, dialog_name, folder=None): # user wants to browse for an ISO @@ -462,28 +387,13 @@ class vmmCreate(gobject.GObject): else: fcdialog.destroy() return None - - def set_media_address(self, src, ignore=None): - self.install_media_address = src.get_text().strip() - - def set_kickstart_address(self, src, ignore=None): - self.install_kickstart_address = src.get_text().strip() - - def set_storage_partition_address(self, src, ignore=None): - self.storage_partition_address = src.get_text() - - def set_storage_file_address(self, src, ignore=None): - self.storage_file_address = src.get_text() def browse_storage_partition_address(self, src, ignore=None): - self.storage_partition_address = self._browse_file(_("Locate Storage Partition"), "/dev") - if self.storage_partition_address != None: - self.window.get_widget("storage-partition-address").set_text(self.storage_partition_address) + part = self._browse_file(_("Locate Storage Partition"), "/dev") + if part != None: + self.window.get_widget("storage-partition-address").set_text(part) def browse_storage_file_address(self, src, ignore=None): - # Reset the storage_file_size value - if self.storage_file_size == None: - self.storage_file_size = STORAGE_FILE_SIZE self.window.get_widget("storage-file-size").set_sensitive(True) fcdialog = gtk.FileChooserDialog(_("Locate or Create New Storage File"), self.window.get_widget("vmm-create"), @@ -495,45 +405,50 @@ class vmmCreate(gobject.GObject): fcdialog.connect("confirm-overwrite", self.confirm_overwrite_callback) response = fcdialog.run() fcdialog.hide() + file = None if(response == gtk.RESPONSE_ACCEPT): - self.storage_file_address = fcdialog.get_filename() + file = fcdialog.get_filename() - if self.storage_file_address != None: - self.window.get_widget("storage-file-address").set_text(self.storage_file_address) + if file != None: + self.window.get_widget("storage-file-address").set_text(file) + + def toggle_storage_size(self, ignore1=None, ignore2=None): + file = self.get_config_disk_image() + if file != None and len(file) > 0 and not(os.path.exists(file)): + self.window.get_widget("storage-file-size").set_sensitive(True) + else: + self.window.get_widget("storage-file-size").set_sensitive(False) def confirm_overwrite_callback(self, chooser): # Only called when the user has chosen an existing file self.window.get_widget("storage-file-size").set_sensitive(False) - self.storage_file_size = None return gtk.FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME - - - def set_storage_type(self, button): - if button.get_active(): - if button.name == "storage-partition": - self.storage_method = VM_STORAGE_PARTITION - self.window.get_widget("storage-partition-box").set_sensitive(True) - self.window.get_widget("storage-file-box").set_sensitive(False) - else: - self.storage_method = VM_STORAGE_FILE - self.window.get_widget("storage-partition-box").set_sensitive(False) - self.window.get_widget("storage-file-box").set_sensitive(True) - def set_storage_file_size(self, src): - self.storage_file_size = src.get_adjustment().value + def change_media_type(self, ignore=None): + if self.window.get_widget("media-iso-image").get_active(): + self.window.get_widget("fv-iso-location-box").set_sensitive(True) + self.window.get_widget("cd-path").set_sensitive(False) + else: + self.window.get_widget("fv-iso-location-box").set_sensitive(False) + self.window.get_widget("cd-path").set_sensitive(True) + self.window.get_widget("cd-path").set_active(-1) + + def change_storage_type(self, ignore=None): + if self.window.get_widget("storage-partition").get_active(): + self.window.get_widget("storage-partition-box").set_sensitive(True) + self.window.get_widget("storage-file-box").set_sensitive(False) + self.window.get_widget("storage-file-size").set_sensitive(False) + else: + self.window.get_widget("storage-partition-box").set_sensitive(False) + self.window.get_widget("storage-file-box").set_sensitive(True) + self.toggle_storage_size() def set_max_memory(self, src): - self.max_memory = src.get_adjustment().value + max_memory = src.get_adjustment().value startup_mem_adjustment = self.window.get_widget("create-memory-startup").get_adjustment() - if startup_mem_adjustment.value > self.max_memory: - startup_mem_adjustment.value = self.max_memory - startup_mem_adjustment.upper = self.max_memory - - def set_startup_memory(self, src): - self.startup_memory = src.get_adjustment().value - - def set_vcpus(self, src): - self.vcpus = src.get_adjustment().value + if startup_mem_adjustment.value > max_memory: + startup_mem_adjustment.value = max_memory + startup_mem_adjustment.upper = max_memory def validate(self, page_num): if page_num == 1: # the system name page @@ -544,34 +459,38 @@ class vmmCreate(gobject.GObject): return False elif page_num == 2: # the virt method page - if self.virt_method == VM_FULLY_VIRT and not xeninst.util.is_hvm_capable(): + if self.get_config_method() == VM_FULLY_VIRT and not xeninst.util.is_hvm_capable(): self._validation_error_box(_("Hardware Support Required"), \ _("Your hardware does not appear to support full virtualization. Only paravirtualized guests will be available on this hardware.")) return False - - elif page_num == 3: # the fully virt media page - if self.install_fv_media_type == VM_INSTALL_FROM_ISO: - self.set_media_address(self.window.get_widget("fv-iso-location")) - if (self.install_media_address == None or len(self.install_media_address) == 0): - self._validation_error_box(_("ISO Location Required"), \ - _("You must specify an ISO location for the guest install image")) - return False + elif page_num == 3: # the fully virt media page + if self.window.get_widget("media-iso-image").get_active(): + src = self.get_config_install_source() + if src == None or len(src) == 0: + self._validation_error_box(_("ISO Path Required"), \ + _("You must specify an ISO location for the guest installation")) + return False + elif not(os.path.exists(src)): + self._validation_error_box(_("ISO Path Not Found"), \ + _("You must specify a valid path to the ISO image for guest installation")) + return False + else: + cdlist = self.window.get_widget("cd-path") + if cdlist.get_active() == -1: + self._validation_error_box(_("Install media required"), \ + _("You must select the CDROM install media for guest installation")) + return False elif page_num == 4: # the paravirt media page - self.set_media_address(self.window.get_widget("pv-media-url")) - self.set_kickstart_address(self.window.get_widget("pv-ks-url")) - if self.install_media_address == None or len(self.install_media_address) == 0: + src = self.get_config_install_source() + if src == None or len(src) == 0: self._validation_error_box(_("URL Required"), \ _("You must specify a URL for the install image for the guest install")) return False elif page_num == 5: # the storage page - if self.window.get_widget("storage-partition").get_active(): - self.set_storage_partition_address(self.window.get_widget("storage-partition-address")) - else: - self.set_storage_file_address(self.window.get_widget("storage-file-address")) - - if (self.storage_partition_address == None or len(self.storage_partition_address) == 0) and (self.storage_file_address == None or len(self.storage_file_address) == 0): + disk = self.get_config_disk_image() + if disk == None or len(disk) == 0: self._validation_error_box(_("Storage Address Required"), \ _("You must specify a partition or a file for storage for the guest install")) return False @@ -579,7 +498,7 @@ class vmmCreate(gobject.GObject): # do this always, since there's no "leaving a notebook page" event. self.window.get_widget("create-back").set_sensitive(True) return True - + def _validation_error_box(self, text1, text2=None): message_box = gtk.MessageDialog(self.window.get_widget("vmm-create"), \ 0, \ @@ -591,24 +510,71 @@ class vmmCreate(gobject.GObject): message_box.run() message_box.destroy() - def open_vm_console(self,ignore,uri,uuid): - if uuid == self.vm_uuid: - vm = self.connection.get_vm(uuid) - (gtype, host, port) = vm.get_graphics_console() - if gtype == "vnc": - self.emit("action-show-console", self.connection.get_uri(), self.vm_uuid) - else: - self.emit("action-show-terminal", self.connection.get_uri(), self.vm_uuid) - - def _get_optical_devices(self): + def populate_opt_media(self, model): # get a list of optical devices with data discs in, for FV installs - optical_device_list = [] + vollabel = {} + volpath = {} + # 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 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") + if label == None or len(label) == 0: + label = devnode + vollabel[devnode] = label + volpath[devnode] = d + + + for d in self.hal_iface.FindDeviceByCapability("storage.cdrom"): dev = self.bus.get_object("org.freedesktop.Hal", d) - if dev.GetPropertyBoolean("volume.is_disc") and \ - dev.GetPropertyBoolean("volume.disc.has_data") and \ - dev.GetPropertyBoolean("volume.is_mounted"): - optical_device_list.append(dev.GetProperty("volume.mount_point")) - return optical_device_list - - + devnode = dev.GetProperty("block.device") + if vollabel.has_key(devnode): + model.append([devnode, vollabel[devnode], True, volpath[devnode]]) + else: + model.append([devnode, _("No media present"), False, None]) + + 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") + if label == None or len(label) == 0: + label = devnode + + cdlist = self.window.get_widget("cd-path") + model = cdlist.get_model() + + # Search for the row with matching device node and + # fill in info about inserted media + for row in model: + if row[0] == devnode: + row[1] = label + row[2] = True + row[3] = path + + def _device_removed(self, path): + vol = self.bus.get_object("org.freedesktop.Hal", path) + cdlist = self.window.get_widget("cd-path") + model = cdlist.get_model() + + active = cdlist.get_active() + idx = 0 + # Search for the row containing matching HAL volume path + # and update (clear) it, de-activating it if its currently + # selected + for row in model: + if row[3] == path: + row[1] = _("No media present") + row[2] = False + row[3] = None + if idx == active: + cdlist.set_active(-1) + idx = idx + 1 diff --git a/src/virtManager/details.py b/src/virtManager/details.py index ed188092..0b5adce3 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -102,7 +102,7 @@ class vmmDetails(gobject.GObject): "on_details_menu_view_toolbar_activate": self.toggle_toolbar, "on_config_cpus_apply_clicked": self.config_cpus_apply, - "on_config_vm_cpus_changed": self.config_vm_cpus, + "on_config_vcpus_changed": self.config_vm_cpus, "on_config_memory_changed": self.config_memory_value, "on_config_memory_apply_clicked": self.config_memory_apply }) @@ -225,20 +225,20 @@ class vmmDetails(gobject.GObject): self.window.get_widget("control-shutdown").set_sensitive(False) self.window.get_widget("details-menu-pause").set_sensitive(False) self.window.get_widget("details-menu-shutdown").set_sensitive(False) - self.window.get_widget("details-menu-save").set_sensitive(False) + self.window.get_widget("details-menu-save").set_sensitive(False) else: self.window.get_widget("control-pause").set_sensitive(True) self.window.get_widget("control-shutdown").set_sensitive(True) self.window.get_widget("details-menu-pause").set_sensitive(True) self.window.get_widget("details-menu-shutdown").set_sensitive(True) - self.window.get_widget("details-menu-save").set_sensitive(True) + self.window.get_widget("details-menu-save").set_sensitive(True) if status == libvirt.VIR_DOMAIN_PAUSED: self.window.get_widget("control-pause").set_active(True) self.window.get_widget("details-menu-pause").set_active(True) else: self.window.get_widget("control-pause").set_active(False) - self.window.get_widget("details-menu-pause").set_active(False) + self.window.get_widget("details-menu-pause").set_active(False) except: self.ignorePause = False self.ignorePause = False @@ -250,7 +250,6 @@ class vmmDetails(gobject.GObject): self.window.get_widget("details-menu-serial").set_sensitive(True) else: self.window.get_widget("details-menu-serial").set_sensitive(False) - def refresh_resources(self, vm): self.window.get_widget("overview-cpu-usage-text").set_text("%d %%" % self.vm.cpu_time_percentage()) @@ -278,18 +277,23 @@ class vmmDetails(gobject.GObject): self.window.get_widget("state-vm-maxmem").set_text("%d MB" % (vm_maxmem/1024)) self.window.get_widget("state-vm-memory").set_text("%d MB" % (vm_memory/1024)) + self.window.get_widget("state-host-cpus").set_text("%d" % self.vm.get_connection().host_active_processor_count()) + self.window.get_widget("config-vcpus").get_adjustment().upper = vm.vcpu_max_count() + self.window.get_widget("state-vm-vcpus").set_text("%d" % (vm.vcpu_count())) + self.window.get_widget("state-vm-max-vcpus").set_text("%d" % (vm.vcpu_max_count())) + def update_config_memory(self): self.window.get_widget("config-memory").get_adjustment().value = self.vm.current_memory()/1024 def update_config_cpus(self): - self.window.get_widget("config-vm-cpus").get_adjustment().value = self.vm.vcpu_count() + self.window.get_widget("config-vcpus").get_adjustment().value = self.vm.vcpu_count() def update_state_cpus(self): self.window.get_widget("state-host-cpus").set_text(`(self.vm.get_connection().host_maximum_processor_count())`) def config_cpus_apply(self, src): # Apply the change to the number of CPUs - vcpus = self.window.get_widget("config-vm-cpus").get_adjustment().value + vcpus = self.window.get_widget("config-vcpus").get_adjustment().value # if requested # of CPUS > host CPUS, pop up warning dialog (not implemented yet) diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index 4506d872..2fb72eee 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -186,6 +186,10 @@ class vmmDomain(gobject.GObject): return 0 return self.record[0]["vcpuCount"] + def vcpu_max_count(self): + cpus = self.get_xml_string("/domain/vcpu") + return int(cpus) + def cpu_time_vector(self): vector = [] stats = self.record diff --git a/src/virtManager/engine.py b/src/virtManager/engine.py index f49ee616..ca74a4a5 100644 --- a/src/virtManager/engine.py +++ b/src/virtManager/engine.py @@ -210,7 +210,6 @@ class vmmEngine: self.connections[uri]["windowManager"].show() def show_create(self, uri): - if self.windowCreate == None: self.windowCreate = vmmCreate(self.get_config(), self.get_connection(uri, False)) self.windowCreate.connect("action-show-console", self._do_show_console) diff --git a/src/vncViewer/rfb.py b/src/vncViewer/rfb.py index e75cc551..d962acf5 100644 --- a/src/vncViewer/rfb.py +++ b/src/vncViewer/rfb.py @@ -95,7 +95,7 @@ class RFBFrameBuffer: raise NotImplementedError # data is given as ARGB - def change_cursor(self, width, height, data): + def change_cursor(self, width, height, x, y, data): #print >>stderr, 'change_cursor' raise NotImplementedError @@ -542,7 +542,7 @@ class RFBNetworkClient(RFBProxy): def send(self, s): return self.sock.send(s) - + def getpass(self): import getpass if self.pwdfile: diff --git a/src/vncViewer/vnc.py b/src/vncViewer/vnc.py index 33d4dddf..34730d17 100755 --- a/src/vncViewer/vnc.py +++ b/src/vncViewer/vnc.py @@ -21,7 +21,7 @@ import gobject import rfb import sys -from struct import pack +from struct import pack, unpack import pygtk import gtk @@ -40,6 +40,7 @@ class GRFBFrameBuffer(rfb.RFBFrameBuffer, gobject.GObject): self.canvas = canvas self.pixmap = None self.name = "VNC" + self.dirtyregion = None def get_name(self): return self.name @@ -62,6 +63,7 @@ class GRFBFrameBuffer(rfb.RFBFrameBuffer, gobject.GObject): def resize_screen(self, width, height): self.pixmap = gtk.gdk.Pixmap(self.canvas.window, width, height) + self.gc = self.pixmap.new_gc() self.emit("resize", width, height) return (0, 0, width, height) @@ -69,19 +71,43 @@ class GRFBFrameBuffer(rfb.RFBFrameBuffer, gobject.GObject): if self.pixmap == None: return - gc = self.pixmap.new_gc() - self.pixmap.draw_rgb_32_image(gc, x, y, width, height, gtk.gdk.RGB_DITHER_NONE, data) - self.emit("invalidate", x, y, width, height) + self.pixmap.draw_rgb_32_image(self.gc, x, y, width, height, gtk.gdk.RGB_DITHER_NONE, data) + self.dirty(x,y,width,height) + def dirty(self, x, y, width, height): + if self.dirtyregion == None: + self.dirtyregion = { "x1": x, "y1": y, "x2": x+width, "y2": y+height } + else: + if x < self.dirtyregion["x1"]: + self.dirtyregion["x1"] = x + if (x + width) > self.dirtyregion["x2"]: + self.dirtyregion["x2"] = (x + width) + if y < self.dirtyregion["y1"]: + self.dirtyregion["y1"] = y + if (y + height) > self.dirtyregion["y2"]: + self.dirtyregion["y2"] = (y + height) def process_solid(self, x, y, width, height, color): - print >>stderr, 'process_solid: %dx%d at (%d,%d), color=%r' % (width,height,x,y, color) + # XXX very very evil assumes pure 32-bit RGBA format + (r,g,b,a) = unpack('BBBB', color) + self.gc.set_rgb_fg_color(gtk.gdk.Color(red=r*255,green=g*255,blue=b*255)) + if width == 1 and height == 1: + self.pixmap.draw_point(self.gc, x, y) + else: + self.pixmap.draw_rectangle(self.gc, True, x, y, width, height) + self.dirty(x,y,width,height) def update_screen(self, t): - #print >>stderr, 'update_screen' - pass + if self.dirtyregion != None: + x1 = self.dirtyregion["x1"] + x2 = self.dirtyregion["x2"] + y1 = self.dirtyregion["y1"] + y2 = self.dirtyregion["y2"] + #print "Update %d,%d (%dx%d)" % (x1, y1, (x2-x1), (y2-y1)) + self.emit("invalidate", x1, y1, x2-x1, y2-y1) + self.dirtyregion = None - def change_cursor(self, width, height, data): + def change_cursor(self, width, height, x, y, data): print >>stderr, 'change_cursor' def move_cursor(self, x, y): @@ -95,8 +121,8 @@ class GRFBNetworkClient(rfb.RFBNetworkClient, gobject.GObject): "disconnected": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, []) } - def __init__(self, host, port, converter, debug=0): - rfb.RFBNetworkClient.__init__(self, host, port, converter, debug=debug,preferred_encoding=(rfb.ENCODING_RAW,rfb.ENCODING_DESKTOP_RESIZE)) + def __init__(self, host, port, converter, debug=0, preferred_encoding=(rfb.ENCODING_RAW)): + rfb.RFBNetworkClient.__init__(self, host, port, converter, debug=debug,preferred_encoding=preferred_encoding) self.__gobject_init__() self.watch = None @@ -115,7 +141,8 @@ class GRFBNetworkClient(rfb.RFBNetworkClient, gobject.GObject): try: self.loop1() - except: + except Exception, e: + print str(e) self.close() self.emit("disconnected") return 0 @@ -158,6 +185,10 @@ class GRFBViewer(gtk.DrawingArea): self.authenticated = False self.needpw = True self.autograbkey = autograbkey + self.preferred_encoding = (rfb.ENCODING_RAW, rfb.ENCODING_DESKTOP_RESIZE) + # Current impl of draw_solid is *far* too slow to be practical + # for Hextile which likes lots of 1x1 pixels solid rectangles + self.preferred_encoding = (rfb.ENCODING_HEXTILE, rfb.ENCODING_RAW, rfb.ENCODING_DESKTOP_RESIZE) self.fb.connect("resize", self.resize_display) self.fb.connect("invalidate", self.repaint_region) @@ -206,12 +237,12 @@ class GRFBViewer(gtk.DrawingArea): def get_framebuffer_name(self): return self.fb.get_name() - def connect_to_host(self, host, port): + def connect_to_host(self, host, port, debug=0): if self.client != None: self.disconnect_from_host() self.client = NOne - client = GRFBNetworkClient(host, port, self.fb) + client = GRFBNetworkClient(host, port, self.fb, debug=debug, preferred_encoding=self.preferred_encoding) client.connect("disconnected", self._client_disconnected) auth_types = client.init() @@ -225,6 +256,7 @@ class GRFBViewer(gtk.DrawingArea): self.needpw = False else: self.needpw = True + return self.needpw def _client_disconnected(self, src): self.client = None @@ -302,7 +334,7 @@ class GRFBViewer(gtk.DrawingArea): return self.autograbkey def grab_keyboard(self): - gtk.gdk.keyboard_grab(win.window, 1, long(0)) + gtk.gdk.keyboard_grab(self.window, 1, long(0)) self.grabbedKeyboard = True def ungrab_keyboard(self): @@ -315,7 +347,7 @@ class GRFBViewer(gtk.DrawingArea): def leave_notify(self, win, event): if self.autograbkey: - gtk.ungrab_keyboard() + self.ungrab_keyboard() def key_press(self, win, event): # Key handling in VNC is screwy. The event.keyval from GTK is @@ -428,14 +460,16 @@ def main(): vp = gtk.Viewport() pane.add(vp) - vnc = GRFBViewer() + vnc = GRFBViewer(autograbkey=True) vp.add(vnc) win.show_all() win.present() - if vnc.connect_to_host(host, port): + if vnc.connect_to_host(host, port, debug=0): print "Need password" + if password == None: + return 1 else: print "No password needed" vnc.authenticate(password) diff --git a/virt-manager.spec.in b/virt-manager.spec.in index 4fbf7918..92590700 100644 --- a/virt-manager.spec.in +++ b/virt-manager.spec.in @@ -4,11 +4,11 @@ # allows an extra fragment based on the timestamp to be appended # to the release. This distinguishes automated builds, from formal # Fedora RPM builds -%define _extra_release %{?extra_release:%{extra_release}} +%define _extra_release %{?dist:%{dist}}%{!?dist:%{?extra_release:%{extra_release}}} Name: @PACKAGE@ Version: @VERSION@ -Release: 3%{_extra_release} +Release: 1%{_extra_release} Summary: Virtual Machine Manager Group: Applications/Emulators @@ -25,19 +25,21 @@ Requires: libvirt-python >= 0.1.4-3 # Definitely does not work with earlier due to python API changes Requires: dbus-python >= 0.61 # Might work with earlier, but this is what we've tested -# We use 'ctypes' so don't need the 'gnome-keyring-python' bits Requires: gnome-keyring >= 0.4.9 # Minimum we've tested with # Although if you don't have this, comment it out and the app # will work just fine - keyring functionality will simply be -# disabled +# disabled Requires: gnome-python2-gnomekeyring >= 2.15.4 # Minimum we've tested with Requires: libxml2-python >= 2.6.23 # Required to install Xen guests Requires: python-xeninst >= 0.90.1 - -# Earlier vte han broken python binding module +# Required for loading the glade UI +Requires: pygtk2-libglade +# Required for our graphics which are currently SVG format +Requires: librsvg2 +# Earlier vte had broken python binding module Requires: vte >= 0.12.2 ExclusiveArch: %{ix86} x86_64 ia64 @@ -47,6 +49,10 @@ BuildRequires: gtk2-devel BuildRequires: python-devel BuildRequires: gettext +Requires(pre): GConf2 +Requires(post): GConf2 +Requires(preun): GConf2 + %description Virtual Machine Manager provides a graphical tool for administering virtual machines such as Xen. It uses libvirt as the backend management @@ -70,17 +76,30 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/sparkline.la %clean rm -rf $RPM_BUILD_ROOT +%pre +if [ "$1" -gt 1 ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-uninstall-rule \ + %{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || : +fi + %post export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` -SCHEMAS="%{name}.schemas" -for S in $SCHEMAS; do - gconftool-2 --makefile-install-rule /etc/gconf/schemas/$S > /dev/null -done +gconftool-2 --makefile-install-rule \ + %{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || : + update-desktop-database %{_datadir}/applications %postun update-desktop-database %{_datadir}/applications +%preun +if [ "$1" -eq 0 ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-uninstall-rule \ + %{_sysconfdir}/gconf/schemas/%{name}.schemas > /dev/null || : +fi + %files -f %{name}.lang %defattr(-,root,root,-) %doc README COPYING AUTHORS ChangeLog NEWS @@ -95,21 +114,41 @@ update-desktop-database %{_datadir}/applications %{_datadir}/%{name}/*.py %{_datadir}/%{name}/*.pyc -%ghost %{_datadir}/%{name}/*.pyo +%{_datadir}/%{name}/*.pyo %{_datadir}/%{name}/virtManager/*.py %{_datadir}/%{name}/virtManager/*.pyc -%ghost %{_datadir}/%{name}/virtManager/*.pyo +%{_datadir}/%{name}/virtManager/*.pyo %{_datadir}/%{name}/vncViewer/*.py %{_datadir}/%{name}/vncViewer/*.pyc -%ghost %{_datadir}/%{name}/vncViewer/*.pyo +%{_datadir}/%{name}/vncViewer/*.pyo %{_datadir}/applications/%{name}.desktop %{_datadir}/dbus-1/services/%{name}.service %changelog +* Fri Sep 15 2006 Daniel Berrange - 0.2.2-1 +- Fix event handling in create VM wizard (bz 206660 & 206186) +- Fix close button in about dialog (bz 205943) +- Refresh .pot files +- Turn on VNC scrollbars fulltime to avoid GTK window sizing issue + which consistently resize too small. + +* Mon Sep 11 2006 Daniel Berrange - 0.2.1-3 +- Added requires on pygtk2-libglade & librsvg2 (bz 205941 & 205942) +- Re-arrange to use console-helper to launch app +- Added 'dist' component to release number + +* Wed Sep 6 2006 Jeremy Katz - 0.2.1-2 +- don't ghost pyo files (#205448) + +* Mon Sep 4 2006 Daniel Berrange - 0.2.1-1 +- Updated to 0.2.1 tar.gz +- Added rules to install/uninstall gconf schemas in preun,post,pre + scriptlets + * Thu Aug 24 2006 Jeremy Katz - 0.2.0-3 - BR gettext