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_vm_autoyast.ycp < prev    next >
Text File  |  2006-11-29  |  3KB  |  119 lines

  1. /**
  2.  * Module:    inst_vm_autoyast.ycp
  3.  *
  4.  * Authors:    Ladislav Slezak <lslezak@suse.cz>
  5.  *
  6.  * Purpose:    Ask for an AutoYaST profile.
  7.  *
  8.  * $Id: inst_vm_autoyast.ycp 31352 2006-06-06 23:53:13Z mgfritch $
  9.  *
  10.  */
  11.  
  12. {
  13.     textdomain "vm";
  14.  
  15.     import "VM";
  16.     import "Wizard";
  17.     import "Popup";
  18.     import "Report";
  19.     import "Label";
  20.  
  21.     // screen title for network options
  22.     string title = _("AutoYaST Profile");
  23.  
  24.     // build and show dialog
  25.     Wizard::OpenAcceptDialog();
  26.  
  27.  
  28.     term contents = `HBox(
  29.     `HSpacing(1),
  30.     `TextEntry(`id(`profile), `opt(`hstretch), _("AutoYaST &Profile"), VM::GetAutoYastProfile()),
  31.     `HSpacing(1),
  32.     `VBox(
  33.         `Label(""),
  34.         `PushButton(`id(`select_profile), _("Select Profile..."))
  35.     ),
  36.     `HSpacing(1)
  37.     );
  38.  
  39.     // help text for autoyast settings (1/2)
  40.     string help_text = sformat(_("<p><b><big>%1</big></b></p>"), title)
  41.     // help text for autoyast settings (2/2)
  42.     + _("<p>You can install a VM using predefined settings from an AutoYaST profile. AutoYast profiles can be created using YaST > Miscellaneous > Autoinstallation.</p>");
  43.  
  44.     Wizard::SetContents (title, contents, help_text, true, true);
  45.  
  46.     symbol ret = nil;
  47.  
  48.     while (true)
  49.     {
  50.     ret = (symbol) Wizard::UserInput();
  51.  
  52.     if (ret == `abort && Popup::ConfirmAbort(`painless))
  53.     {
  54.         break;
  55.     }
  56.     else if (ret == `cancel || ret == `back)
  57.     {
  58.         break;
  59.     }
  60.     else if (ret == `select_profile)
  61.     {
  62.         string new_profile = (string) UI::QueryWidget (`id(`profile), `Value);
  63.         if (new_profile == nil || new_profile == "")
  64.         {
  65.         new_profile = "/var/lib/autoinstall/repository/";
  66.         }
  67.         new_profile = UI::AskForExistingFile(new_profile, "*", _("Select an AutoYaST Profile"));
  68.  
  69.         if (new_profile != nil)
  70.         {
  71.         UI::ChangeWidget(`id(`profile), `Value, new_profile);
  72.         }
  73.     }
  74.     else if (ret == `next)
  75.     {
  76.         string profile = (string) UI::QueryWidget (`id(`profile), `Value);
  77.  
  78.         if (profile != "" && (integer)SCR::Read(.target.size, profile) < 0) {
  79.         Report::Error(_("The specified AutoYaST Profile does not exist."));
  80.         continue;
  81.         }
  82.  
  83.         VM::SetAutoYastProfile(profile);
  84.  
  85.         if (profile != "")
  86.         {
  87.         import "Profile";
  88.  
  89.         if (!Profile::ReadXML(profile))
  90.         {
  91.             Report::Warning(_("Cannot load the profile in
  92. the current system. It may be broken."));
  93.         }
  94.         else
  95.         {
  96.             y2milestone("Loaded AutoYaST profile: %1", Profile::current);
  97.             // import VM config
  98.  
  99.             map xen_setting = Profile::current["xen"]:$[];
  100.  
  101.             if (xen_setting != nil && xen_setting != $[] &&
  102.             // ask user to load VM settings from the profile
  103.             Popup::YesNo(_("Load the virtual machine configuration from the profile?")))
  104.             {
  105.             y2milestone("Import settings: %1", xen_setting);
  106.             VM::Import(xen_setting);
  107.             }
  108.         }
  109.         }
  110.  
  111.         break;
  112.     }
  113.     }
  114.  
  115.     Wizard::CloseDialog();
  116.  
  117.     return ret;
  118. }
  119.