home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / clients / inst_xen_mode.ycp < prev    next >
Text File  |  2006-11-29  |  3KB  |  100 lines

  1. /**
  2.  * Module:    inst_xen_mode.ycp
  3.  *
  4.  * Authors:    Ladislav Slezak <lslezak@suse.cz>
  5.  *
  6.  * Purpose:    Select the virtualization mode (para or full)
  7.  *
  8.  * $Id: inst_xen_mode.ycp 31352 2006-06-06 23:53:13Z mgfritch $
  9.  *
  10.  */
  11.  
  12. {
  13.     textdomain "vm";
  14.  
  15.     import "VM";
  16.     import "VM_Common";
  17.     import "Wizard";
  18.     import "Popup";
  19.     import "Report";
  20.     import "Label";
  21.     import "Mode";
  22.  
  23.  
  24.     // screen title for the Xen mode selection
  25.     string title = _("Virtualization Mode");
  26.  
  27.     // build and show dialog
  28.     Wizard::OpenAcceptDialog ();
  29.  
  30.     term contents = `HBox(
  31.     `HSpacing(2),
  32.     `RadioButtonGroup(`id(`rb_group),
  33.         `Frame( title,
  34.         `VBox(
  35.             `VSpacing(0.5),
  36.             `Left(`RadioButton(`id("para"), _("Paravirtualization (requires Xen-enabled guest OS)"), VM::GetVirtualizationType() == "para")),
  37.             `VSpacing(0.5),
  38.             `Left(`RadioButton(`id("full"), _("Full Virtualization (requires specialized hardware)"), VM::GetVirtualizationType() == "full")),
  39.             `VSpacing(0.5)
  40.         )
  41.         )
  42.     ),
  43.     `HSpacing(2)
  44.     );
  45.  
  46.     // help text for virtualization mode setting (1/5)
  47.     string help_text = sformat(_("<p><b><big>%1</big></b></p>"), title)
  48.     // help text for virtualization mode setting (2/5)
  49.     + _("<p>Virtual machines can be created to run in either paravirtualization mode or full virtualization mode.</p>")
  50.  
  51.     // help text for virtualization mode setting (3/5)
  52.     + _("<p><b>Paravirtualization mode</b> uses selective emulation of the hardware devices. To run in paravirtualization mode, the OS must be optimized to run in the Xen virtual server environment. This type of optimized OS is often called a paravirtualized or Xen-enabled guest.</p>")
  53.  
  54.     // help text for virtualization mode setting (4/5)
  55.     + _("<p><b>Full virtualization mode</b> completely emulates all hardware devices but must run on a computer that supports hardware-assisted virtualization. Most popular operating systems can run in full virtualization mode.</p>");
  56.  
  57.  
  58.     Wizard::SetContents (title, contents, help_text, true, true);
  59.  
  60.     // set full virtualization widget state
  61.     if (!Mode::config() && !VM_Common::VirtualizationCPU())
  62.     {
  63.     // not autoyast config mode and no virtualization CPU => disable full virtualization
  64.     UI::ChangeWidget(`id("full"), `Enabled, false);
  65.     }
  66.  
  67.     symbol ret = nil;
  68.  
  69.     while (true)
  70.     {
  71.     ret = (symbol) Wizard::UserInput();
  72.  
  73.     if (ret == `abort && Popup::ConfirmAbort(`painless))
  74.         break;
  75.  
  76.     if (ret == `cancel || ret == `back)
  77.         break;
  78.  
  79.     if (ret == `next)
  80.     {
  81.         string selected = (string)(UI::QueryWidget(`id(`rb_group), `CurrentButton));
  82.  
  83.         if (selected != VM::GetVirtualizationType()) {
  84.         VM_Common::SetModified(true);
  85.         VM::SetVirtualizationType(selected);
  86.         //VM::ResetAllSettings();
  87.         VM::ResetNumberOfCpus();
  88.         VM::UpdateDiskConfig(VM_Common::custom_source, "", ""); // remove any old custom sources that were added as disks. See bugzilla #171696
  89.         VM::ResetSource();
  90.         }
  91.  
  92.         break;
  93.     }
  94.     }
  95.  
  96.     Wizard::CloseDialog();
  97.  
  98.     return ret;
  99. }
  100.