Hello community, here is the log from the commit of package vm-install checked in at Mon Sep 1 02:38:52 CEST 2008. -------- --- arch/i386/vm-install/vm-install.changes 2008-08-15 22:36:49.000000000 +0200 +++ /mounts/work_src_done/STABLE/vm-install/vm-install.changes 2008-08-30 05:42:28.561619000 +0200 @@ -1,0 +2,20 @@ +Tue Aug 26 11:45:31 MDT 2008 - carnold@novell.com + +- Added option to set on_poweroff, on_reboot and on_crash. + +------------------------------------------------------------------- +Wed Aug 20 13:45:31 MDT 2008 - carnold@novell.com + +- Use to qcow2 images and use qemu-img-xen to create them. + +------------------------------------------------------------------- +Mon Aug 19 08:24:28 MDT 2008 - carnold@novell.com + +- bnc#418207 - vm-install missing dependency, libvirt-python +- bnc#414899 - vm-install erroneously reports installation error + when using qcow +- bnc#417494 - python's file chooser dialog changes with + every release, hence this fix. +- Allow virt-viewer to be used as the vm viewer. + +------------------------------------------------------------------- Old: ---- vm-install-0.3.5.tar.bz2 New: ---- vm-install-0.3.7.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vm-install.spec ++++++ --- /var/tmp/diff_new_pack.l17153/_old 2008-09-01 02:38:26.000000000 +0200 +++ /var/tmp/diff_new_pack.l17153/_new 2008-09-01 02:38:26.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package vm-install (Version 0.3.5) +# spec file for package vm-install (Version 0.3.7) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -26,12 +26,12 @@ License: GPL v2 or later Group: System/Emulators/PC AutoReqProv: yes -Version: 0.3.5 +Version: 0.3.7 Release: 1 Summary: Tool to Define a Virtual Machine and Install Its Operating System -Source0: %{name}-0.3.5.tar.bz2 +Source0: %{name}-0.3.7.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build -Requires: xen-tools python-urlgrabber libxml2-python +Requires: xen-tools python-urlgrabber libxml2-python libvirt-python %define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()") %description @@ -85,6 +85,17 @@ %{_datadir}/applications/YaST2/vm-install.desktop %changelog +* Tue Aug 26 2008 carnold@novell.com +- Added option to set on_poweroff, on_reboot and on_crash. +* Wed Aug 20 2008 carnold@novell.com +- Use to qcow2 images and use qemu-img-xen to create them. +* Tue Aug 19 2008 carnold@novell.com +- bnc#418207 - vm-install missing dependency, libvirt-python +- bnc#414899 - vm-install erroneously reports installation error + when using qcow +- bnc#417494 - python's file chooser dialog changes with + every release, hence this fix. +- Allow virt-viewer to be used as the vm viewer. * Mon Aug 04 2008 carnold@novell.com - Added Wei Kong's PXE boot feature for PV guests. * Thu Jul 31 2008 carnold@novell.com ++++++ vm-install-0.3.5.tar.bz2 -> vm-install-0.3.7.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/glade/vm-install.glade new/vm-install-0.3.7/glade/vm-install.glade --- old/vm-install-0.3.5/glade/vm-install.glade 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/glade/vm-install.glade 2008-08-30 05:41:30.000000000 +0200 @@ -3951,7 +3951,7 @@ </child> <child> - <widget class="GtkAlignment" id="alignment257"> + <widget class="GtkAlignment" id="alignment269"> <property name="visible">True</property> <property name="xalign">0.5</property> <property name="yalign">0.5</property> @@ -3963,7 +3963,7 @@ <property name="right_padding">0</property> <child> - <widget class="GtkVBox" id="vbox29"> + <widget class="GtkVBox" id="vbox93"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> @@ -3994,125 +3994,310 @@ </child> <child> - <widget class="GtkAlignment" id="alignment268"> + <widget class="GtkTable" id="table129"> <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> + <property name="n_rows">2</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">0</property> + <property name="column_spacing">10</property> <child> - <widget class="GtkTable" id="table129"> + <widget class="GtkRadioButton" id="fv-src-pxe"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">PXE-boot</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_media_toggled" last_modification_time="Thu, 17 Jan 2008 21:34:29 GMT"/> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox91"> <property name="visible">True</property> - <property name="n_rows">2</property> - <property name="n_columns">2</property> <property name="homogeneous">False</property> - <property name="row_spacing">0</property> - <property name="column_spacing">10</property> + <property name="spacing">10</property> <child> - <widget class="GtkRadioButton" id="fv-src-disk"> + <widget class="GtkComboBox" id="fv-src-disk-box"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">virtual-disk</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> - <property name="active">True</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_fv_src_disk_toggled" last_modification_time="Thu, 17 Jan 2008 21:31:52 GMT"/> + <signal name="changed" handler="on_cd_path_changed" last_modification_time="Thu, 17 Jan 2008 21:29:21 GMT"/> </widget> <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> </packing> </child> <child> - <widget class="GtkRadioButton" id="fv-src-pxe"> + <widget class="GtkButton" id="fv-src-disk-add"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">PXE-boot</property> - <property name="use_underline">True</property> + <property name="label">gtk-add</property> + <property name="use_stock">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <property name="group">fv-src-disk</property> - <signal name="toggled" handler="on_media_toggled" last_modification_time="Thu, 17 Jan 2008 21:34:29 GMT"/> + <signal name="clicked" handler="on_fv_src_disk_add_clicked" last_modification_time="Thu, 17 Jan 2008 21:26:42 GMT"/> </widget> <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> </packing> </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">fill</property> + </packing> + </child> - <child> - <widget class="GtkHBox" id="hbox91"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">10</property> + <child> + <widget class="GtkRadioButton" id="fv-src-disk"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">virtual-disk</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">True</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_fv_src_disk_toggled" last_modification_time="Thu, 17 Jan 2008 21:31:52 GMT"/> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> - <child> - <widget class="GtkComboBox" id="fv-src-disk-box"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="add_tearoffs">False</property> - <property name="focus_on_click">True</property> - <signal name="changed" handler="on_cd_path_changed" last_modification_time="Thu, 17 Jan 2008 21:29:21 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> + <child> + <widget class="GtkLabel" id="label549"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> - <child> - <widget class="GtkButton" id="fv-src-disk-add"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-add</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="on_fv_src_disk_add_clicked" last_modification_time="Thu, 17 Jan 2008 21:26:42 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="y_options">fill</property> - </packing> - </child> + <child> + <widget class="GtkLabel" id="fv_exit_args_help"> + <property name="visible">True</property> + <property name="label" translatable="yes">fv_exit_args_help</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">True</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">10</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkTable" id="table132"> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">2</property> + <property name="column_spacing">10</property> + + <child> + <widget class="GtkLabel" id="fv_on_poweroff_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">fv_on_poweroff_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="fv_on_reboot_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">fv_on_reboot_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="fv_on_crash_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">fv_on_crash_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="fv-poweroff-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="fv-reboot-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="fv-crash-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> </child> </widget> <packing> <property name="padding">0</property> - <property name="expand">True</property> + <property name="expand">False</property> <property name="fill">True</property> </packing> </child> @@ -4693,6 +4878,231 @@ <property name="fill">True</property> </packing> </child> + + <child> + <widget class="GtkLabel" id="label537"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="pv_exit_args_help"> + <property name="visible">True</property> + <property name="label" translatable="yes">pv_exit_args_help</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">True</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">10</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkTable" id="table130"> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">2</property> + <property name="column_spacing">10</property> + + <child> + <widget class="GtkLabel" id="pv_on_poweroff_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">pv_on_poweroff_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="pv_on_reboot_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">pv_on_reboot_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="pv_on_crash_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">pv_on_crash_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="pv-reboot-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="pv-crash-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="pv-poweroff-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">fill</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label559"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </widget> </child> </widget> @@ -4899,6 +5309,206 @@ <property name="fill">True</property> </packing> </child> + + <child> + <widget class="GtkLabel" id="label554"> + <property name="visible">True</property> + <property name="label" translatable="yes"></property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="r_exit_args_help"> + <property name="visible">True</property> + <property name="label" translatable="yes">r_exit_args_help</property> + <property name="use_underline">False</property> + <property name="use_markup">True</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">True</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">10</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkTable" id="table133"> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">2</property> + <property name="column_spacing">10</property> + + <child> + <widget class="GtkLabel" id="r_on_poweroff_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">r_on_poweroff_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="r_on_reboot_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">r_on_reboot_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="r_on_crash_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">r_on_crash_label</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">1</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="r-poweroff-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="r-reboot-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + + <child> + <widget class="GtkComboBox" id="r-crash-combo"> + <property name="visible">True</property> + <property name="items" translatable="yes"></property> + <property name="add_tearoffs">False</property> + <property name="focus_on_click">True</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> </widget> </child> </widget> @@ -6991,7 +7601,7 @@ npiv phy tap:aio -tap:qcow +tap:qcow2 tap:vmdk</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/Makefile new/vm-install-0.3.7/Makefile --- old/vm-install-0.3.5/Makefile 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/Makefile 2008-08-30 05:41:30.000000000 +0200 @@ -1,5 +1,5 @@ PACKAGE = vm-install -VER = 0.3.5 +VER = 0.3.7 default: @echo "Run 'make install DESTDIR=$destdir' to install." diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/setup.py new/vm-install-0.3.7/setup.py --- old/vm-install-0.3.5/setup.py 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/setup.py 2008-08-30 05:41:30.000000000 +0200 @@ -1,7 +1,7 @@ from distutils.core import setup setup(name='vminstall', - version='0.3.5', + version='0.3.7', description='Define a virtual machine and install its operating system', author='Charles Coffing', author_email='ccoffing@novell.com', diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vmdisks/disks.py new/vm-install-0.3.7/src/vmdisks/disks.py --- old/vm-install-0.3.5/src/vmdisks/disks.py 2008-08-14 22:44:34.000000000 +0200 +++ new/vm-install-0.3.7/src/vmdisks/disks.py 2008-08-30 05:41:29.000000000 +0200 @@ -80,7 +80,12 @@ def create_qcow(filename, bytes, arg={}, progress=lambda f:None): log.debug("Creating qcow file '%s', %d bytes." % (filename, bytes)) mb = str(bytes / 1024 / 1024) - vminstall.util.run(['/usr/sbin/qcow-create', mb, filename]) + if os.path.exists('/usr/bin/qemu-img-xen'): + mb = mb + 'M' + fmt = '-fqcow2' + vminstall.util.run(['/usr/bin/qemu-img-xen', 'create', fmt, filename, mb]) + else: + vminstall.util.run(['/usr/sbin/qcow-create', mb, filename]) def devid_to_devstr(devid): return 'xvd' + (chr((devid-51712)/16 + ord('a'))) @@ -188,29 +193,41 @@ def is_local(self): return True -class TapQcowDriver(FileDriver): +class TapQcow2Driver(FileDriver): def create(self, path, blocks, args={}, progress=lambda f:None): dpath = os.path.dirname(path) if not os.path.exists(dpath): os.makedirs(dpath) create_qcow(path, blocks * 512, args, progress=progress) def vsize(self, path): - # FIXME: how to query this? + if os.path.exists(path): + try: + fd = os.open(path, os.O_RDONLY) + buf = os.read(fd, 32) + except: + return None + os.close(fd) + if len(buf) == 32: + data = struct.unpack('>IIQIIQ', buf) + blocks = data[-1] / 512 + return blocks return None def is_local(self): return True + DRIVERS = { - 'file': LoopDriver('file'), - 'iscsi': Driver('iscsi'), - 'nbd': Driver('nbd'), - 'npiv': Driver('npiv'), - 'phy': PhyDriver('phy'), - 'tap:aio': TapAioDriver('tap:aio'), - 'tap:qcow': TapQcowDriver('tap:qcow'), - 'tap:vmdk': TapVmdkDriver('tap:vmdk'), + 'file': LoopDriver('file'), + 'iscsi': Driver('iscsi'), + 'nbd': Driver('nbd'), + 'npiv': Driver('npiv'), + 'phy': PhyDriver('phy'), + 'tap:aio': TapAioDriver('tap:aio'), + 'tap:qcow2': TapQcow2Driver('tap:qcow2'), + 'tap:vmdk': TapVmdkDriver('tap:vmdk'), } default_proto = 'file' +disk_protocols = ["file:", "iscsi:", "nbd:", "npiv:", "phy:", "tap:aio:", "tap:qcow2:", "tap:vmdk:"] def parse_string(disk, extended=False, blocks=None): """Parses a text representation of a disk, and returns such a disk object. @@ -654,7 +671,6 @@ elif device_name == "": device_name = os.getcwd() else: - disk_protocols = ["file:", "iscsi:", "nbd:", "npiv:", "phy:", "tap:aio:", "tap:qcow:", "tap:vmdk:"] index=0 pathname = device_name while index < len(disk_protocols): diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vminstall/console.py new/vm-install-0.3.7/src/vminstall/console.py --- old/vm-install-0.3.5/src/vminstall/console.py 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/src/vminstall/console.py 2008-08-30 05:41:29.000000000 +0200 @@ -114,6 +114,8 @@ child's PID if (success and not detach), else None. Note that failure cannot be determined if detach is True. """ + #default_viewer = 'virt-viewer' + default_viewer = 'vncviewer' domid = get_domid_from_uuid(guest.uuid) vncport = get_vnc_port_from_domid(domid, timeout=10.0) if vncport == None: @@ -124,16 +126,19 @@ def find_viewer(): try: for path in os.environ['PATH'].split(':'): - viewer = os.path.join(path, 'vncviewer') + viewer = os.path.join(path, default_viewer) if os.path.exists(viewer): - log.info("Found vncviewer: %s" % (viewer,)) + log.info("Found %s: %s" % (default_viewer, viewer)) return viewer except: pass return None def exec_viewer(viewer): try: - os.execv(viewer, ['vncviewer', '::%d' % vncport, ]) + if default_viewer == 'virt-viewer': + os.execv(viewer, [default_viewer, '%d' % domid, ]) + else: + os.execv(viewer, [default_viewer, '::%d' % vncport, ]) except: os._exit(1) viewer = find_viewer() diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vminstall/gtk/chooser.py new/vm-install-0.3.7/src/vminstall/gtk/chooser.py --- old/vm-install-0.3.5/src/vminstall/gtk/chooser.py 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/src/vminstall/gtk/chooser.py 2008-08-30 05:41:29.000000000 +0200 @@ -1,4 +1,5 @@ import gtk +from vmdisks.disks import disk_protocols def chooser(dialog_name, topwin, mode=gtk.FILE_CHOOSER_ACTION_OPEN, file=None, folder=None, type=None): @@ -6,7 +7,6 @@ (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_ACCEPT)) if file: - disk_protocols = ["file:", "iscsi:", "nbd:", "npiv:", "phy:", "tap:aio:", "tap:qcow:", "tap:vmdk:"] index=0 filename = file while index < len(disk_protocols): diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vminstall/gtk/disk_widgets.py new/vm-install-0.3.7/src/vminstall/gtk/disk_widgets.py --- old/vm-install-0.3.5/src/vminstall/gtk/disk_widgets.py 2008-08-15 21:59:59.000000000 +0200 +++ new/vm-install-0.3.7/src/vminstall/gtk/disk_widgets.py 2008-08-30 05:41:29.000000000 +0200 @@ -15,6 +15,7 @@ import vmdisks from tree_view import * from chooser import * +from vmdisks.disks import disk_protocols class DisksView(PyTreeView): def __init__(self, disks, renumber=True): @@ -398,7 +399,7 @@ (file, folder) = chooser(vminstall.msg.locate_disk, self.disk_edit_widget.get_toplevel(), file=file, mode=mode, folder=self.disk_folder) - if folder not in file: + if file and folder not in file: file = folder + "/" + file if file != None: self.disk_folder = folder @@ -416,7 +417,6 @@ self.glade.get_widget('disk-location').get_child().set_text(file) def parse_protocol(self): - disk_protocols = ["file:", "iscsi:", "nbd:", "npiv:", "phy:", "tap:aio:", "tap:qcow:", "tap:vmdk:"] diskwidget = self.glade.get_widget('disk-location') disktext = diskwidget.get_active_text() text = None diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vminstall/gtk/interface.py new/vm-install-0.3.7/src/vminstall/gtk/interface.py --- old/vm-install-0.3.5/src/vminstall/gtk/interface.py 2008-08-13 19:28:16.000000000 +0200 +++ new/vm-install-0.3.7/src/vminstall/gtk/interface.py 2008-08-30 05:41:29.000000000 +0200 @@ -244,6 +244,15 @@ set_text('hardware-processors-title', text=vminstall.msg.processors, modifier=bold_prompt, markup=True) set_text('i_extra_args_help', text=vminstall.msg.extra_args_help) set_text('i_extra_args_label', text=vminstall.msg.extra_args_prompt, modifier=prompt) + set_text('pv_exit_args_help', text=vminstall.msg.exit_args_help) + set_text('pv_on_poweroff_label', text=vminstall.msg.on_poweroff, modifier=prompt) + set_text('pv_on_reboot_label', text=vminstall.msg.on_reboot, modifier=prompt) + set_text('pv_on_crash_label', text=vminstall.msg.on_crash, modifier=prompt) + set_text('pv_exit_args_help', text=vminstall.msg.exit_args_help) + set_text('fv_exit_args_help', text=vminstall.msg.exit_args_help) + set_text('fv_on_poweroff_label', text=vminstall.msg.on_poweroff, modifier=prompt) + set_text('fv_on_reboot_label', text=vminstall.msg.on_reboot, modifier=prompt) + set_text('fv_on_crash_label', text=vminstall.msg.on_crash, modifier=prompt) set_text('install_help') set_text('intro_help1') set_text('intro_help2', markup=True) @@ -271,6 +280,10 @@ set_text('pv_install_help', text=vminstall.msg.install_media_help) set_text('r_extra_args_help', text=vminstall.msg.extra_args_help) set_text('r_extra_args_label', text=vminstall.msg.extra_args_prompt, modifier=prompt) + set_text('r_exit_args_help', text=vminstall.msg.exit_args_help) + set_text('r_on_poweroff_label', text=vminstall.msg.on_poweroff, modifier=prompt) + set_text('r_on_reboot_label', text=vminstall.msg.on_reboot, modifier=prompt) + set_text('r_on_crash_label', text=vminstall.msg.on_crash, modifier=prompt) set_text('summary_help', markup=True) set_text('vcpus_prompt', modifier=prompt) @@ -621,6 +634,21 @@ self.window.get_widget('fv-src-pxe').set_active(True) else: self.window.get_widget('fv-src-disk').set_active(True) + on_exit_normal = on_exit[:] + on_exit_normal.pop() + on_exit_normal.pop() + combo = self.window.get_widget('fv-poweroff-combo') + set_combo_from_list(combo, on_exit_normal) + index = on_exit_normal.index(self.defaults.on_poweroff) + combo.set_active(index) + combo = self.window.get_widget('fv-reboot-combo') + set_combo_from_list(combo, on_exit_normal) + index = on_exit_normal.index(self.defaults.on_reboot) + combo.set_active(index) + combo = self.window.get_widget('fv-crash-combo') + set_combo_from_list(combo, on_exit) + index = on_exit.index(self.defaults.on_crash) + combo.set_active(index) elif page_number == self.pages['pv_install']: combo = self.window.get_widget('pv-src-disk-box') self.src_disks = filter(lambda disk: disk.exists(), self.defaults.disks) @@ -663,11 +691,41 @@ for l in ('os_settings_help', 'os-settings-hbox'): self.window.get_widget(l).set_sensitive(sens) self.window.get_widget('i-extra-args').set_text(self.defaults.extra_args) + on_exit_normal = on_exit[:] + on_exit_normal.pop() + on_exit_normal.pop() + combo = self.window.get_widget('pv-poweroff-combo') + set_combo_from_list(combo, on_exit_normal) + index = on_exit_normal.index(self.defaults.on_poweroff) + combo.set_active(index) + combo = self.window.get_widget('pv-reboot-combo') + set_combo_from_list(combo, on_exit_normal) + index = on_exit_normal.index(self.defaults.on_reboot) + combo.set_active(index) + combo = self.window.get_widget('pv-crash-combo') + set_combo_from_list(combo, on_exit) + index = on_exit.index(self.defaults.on_crash) + combo.set_active(index) elif page_number == self.pages['pv_runtime']: w = self.window.get_widget('r-extra-args') w.connect('activate', self.apply) w.set_text(self.defaults.extra_args) w.grab_focus() + on_exit_normal = on_exit[:] + on_exit_normal.pop() + on_exit_normal.pop() + combo = self.window.get_widget('r-poweroff-combo') + set_combo_from_list(combo, on_exit_normal) + index = on_exit_normal.index(self.defaults.on_poweroff) + combo.set_active(index) + combo = self.window.get_widget('r-reboot-combo') + set_combo_from_list(combo, on_exit_normal) + index = on_exit_normal.index(self.defaults.on_reboot) + combo.set_active(index) + combo = self.window.get_widget('r-crash-combo') + set_combo_from_list(combo, on_exit) + index = on_exit.index(self.defaults.on_crash) + combo.set_active(index) ## ## Buttons @@ -1190,6 +1248,12 @@ self.options.pxe_boot = 0 else: self.options.pxe_boot = 1 + combo = self.window.get_widget('fv-poweroff-combo') + self.options.on_poweroff = combo.get_active_text() + combo = self.window.get_widget('fv-reboot-combo') + self.options.on_reboot = combo.get_active_text() + combo = self.window.get_widget('fv-crash-combo') + self.options.on_crash = combo.get_active_text() elif page_num == self.pages['pv_install']: if self.window.get_widget('pv-src-disk').get_active(): i = self.window.get_widget('pv-src-disk-box').get_active() @@ -1222,8 +1286,20 @@ self.options.source = src self.options.os_settings = self.window.get_widget('os-settings').get_text() self.options.extra_args = self.window.get_widget('i-extra-args').get_text() + combo = self.window.get_widget('pv-poweroff-combo') + self.options.on_poweroff = combo.get_active_text() + combo = self.window.get_widget('pv-reboot-combo') + self.options.on_reboot = combo.get_active_text() + combo = self.window.get_widget('pv-crash-combo') + self.options.on_crash = combo.get_active_text() elif page_num == self.pages['pv_runtime']: self.options.extra_args = self.window.get_widget('r-extra-args').get_text() + combo = self.window.get_widget('r-poweroff-combo') + self.options.on_poweroff = combo.get_active_text() + combo = self.window.get_widget('r-reboot-combo') + self.options.on_reboot = combo.get_active_text() + combo = self.window.get_widget('r-crash-combo') + self.options.on_crash = combo.get_active_text() return True diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vminstall/msg.py new/vm-install-0.3.7/src/vminstall/msg.py --- old/vm-install-0.3.5/src/vminstall/msg.py 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/src/vminstall/msg.py 2008-08-30 05:41:29.000000000 +0200 @@ -192,6 +192,7 @@ os_type_help = _("Please specify the type of operating system that will run within the virtual machine. This defines many defaults, and helps decide how to start paravirtualized operating systems.") os_settings_help = _("Some operating systems support automating the installation by specifying a URL or file(s). Select a directory to include multiple files.") extra_args_help = _("Some operating systems accept additional arguments, used to customize the installation or boot process.") +exit_args_help = _("Select the behavior when the operating system exits with power off, reboot or crash. Settings take effect after installation is complete.") #STEVE #install_media_help = _("Please indicate where the installation media is available for the operating system that you would like to install.") install_media_help = _("Specify the bootable virtual disk (often labeled as Disk 1) or the network installation source URL. Each CD, DVD, or ISO image required for installation must be added as a virtual disk.") @@ -254,6 +255,9 @@ installation_source_prompt = _("Installation Source") automated_installation_prompt = _("Automated Installation") operating_system_prompt = _("Operating System") +on_poweroff = _("Power Off") +on_reboot = _("Reboot") +on_crash = _("Crash") # Descriptive names of automated install methods kickstart_desc = _("Kickstart file or URL") diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/vm-install-0.3.5/src/vminstall/options.py new/vm-install-0.3.7/src/vminstall/options.py --- old/vm-install-0.3.5/src/vminstall/options.py 2008-08-07 03:57:49.000000000 +0200 +++ new/vm-install-0.3.7/src/vminstall/options.py 2008-08-30 05:41:29.000000000 +0200 @@ -24,6 +24,8 @@ import xend import keytable +on_exit = ["destroy", "restart", "preserve", "rename-restart", "coredump-destroy", "coredump-restart"] + class Options(dict): def __init__(self): default_keys = ( @@ -170,7 +172,7 @@ check_type(value, (list,)) nics = value elif item == 'on_crash' or item == 'on_poweroff' or item == 'on_reboot': - if value not in ('restart', 'destroy', 'preserve', 'rename-restart'): + if value not in on_exit: bad() elif item == 'os_settings': check_type(value, (str,)) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de