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 / include / vm / cmdline.ycp
Text File  |  2006-11-29  |  5KB  |  201 lines

  1. /**
  2.  * File:
  3.  *   include/vm/cmdline.ycp
  4.  *
  5.  * Summary:
  6.  *   Command line interface functions
  7.  *
  8.  * Authors:
  9.  *   Ladislav Slezak <lslezak@suse.cz>
  10.  *   Michael G. Fritch <mgfritch@novell.com>
  11.  *
  12.  * $Id: cmdline.ycp 34434 2006-11-16 21:34:28Z mgfritch $
  13.  *
  14.  * Handlers for command line mode.
  15.  *
  16.  */
  17.  
  18. {
  19.     import "Progress";
  20.     import "Wizard";
  21.     import "GetInstArgs";
  22.     import "VM";
  23.     import "VM_Common";
  24.     import "Mode";
  25.     import "Sequencer";
  26.     import "CommandLine";
  27.  
  28.  
  29.     textdomain "vm";
  30.  
  31.  
  32.     define symbol manage() {
  33.     return (symbol)WFM::CallFunction ("inst_vm_manage", [false, true]);
  34.     }
  35.  
  36.  
  37.     define symbol select_create() {
  38.     return (symbol)WFM::CallFunction ("inst_xen_create", [true, true]);
  39.     }
  40.  
  41.  
  42.     define symbol proposal() {
  43.     string proposal_type = sformat("%1_%2", VM::GetVMMtype(), VM_Common::proposal_type);
  44.     symbol retval = (symbol)WFM::CallFunction ("inst_proposal",
  45.             [GetInstArgs::ButtonsProposal(true, true, proposal_type)]);
  46.  
  47.     if (retval == `back) {
  48.         return `forceback;
  49.     }
  50.     return retval;
  51.     }
  52.  
  53.  
  54.     define symbol start() {
  55.  
  56.     if (!Mode::config()) {
  57.         symbol retval = (symbol)WFM::CallFunction("inst_vm_kickoff", [false, false]);
  58.         VM_Common::RemoveTmpDir(); // Remove all bogus tmp directories (bugzilla #217403)
  59.         return retval;
  60.     }
  61.     else {
  62.         // save the current settings into the AutoYaST profile settings
  63.         VM_Common::autoyast_profile_settings[VM_Common::proposal_type] = VM::SubExport();
  64.     }
  65.  
  66.     return `next;
  67.     }
  68.  
  69.  
  70.     define symbol prepare(string new_proposal_type) {
  71.     // set the proposal_type
  72.     VM_Common::proposal_type = new_proposal_type;
  73.  
  74.     // reset the appropriate proposal settings
  75.     if (VM_Common::proposal_type == "boot") {
  76.         VM::ResetSource();
  77.         VM::ResetExtraArgs();
  78.         if (!Mode::config()) {
  79.             //load the saved AutoYaST profile settings
  80.             VM::Import(VM_Common::autoyast_profile_settings);
  81.         }
  82.     }
  83.     else {
  84.         VM::ResetAllSettings();
  85.     }
  86.  
  87.     return `next;
  88.     }
  89.  
  90.  
  91.     define symbol GUIhandler() {
  92.     // create initial dialog
  93.     Wizard::CreateDialog();
  94.     Wizard::SetDesktopIcon ("vm");
  95.  
  96.     map aliases = $[
  97.         "manage"        : ``(manage()), // manage virtual machines
  98.         "select_create"        : ``(select_create()), // creation options
  99.         "install_prepare"    : ``(prepare("install")), // change proposal_type to install and reset the proposal settings.
  100.         "install_proposal"    : ``(proposal()), // install options
  101.         "install_start"        : ``(start()), // start vm install
  102.         "boot_prepare"        : ``(prepare("boot")), // change proposal_type to boot and reset the proposal settings.
  103.         "boot_proposal"        : ``(proposal()), // boot options
  104.         "boot_start"        : ``(start()), // boot vm and display feedback dialog
  105.         "existing_prepare"    : ``(prepare("existing")), // change proposal_type to existing and reset the proposal settings.
  106.         "existing_proposal"    : ``(proposal()), // existing vm install options
  107.         "existing_start"    : ``(start()), // boot vm and display feedback dialog
  108.         ];
  109.  
  110.     boolean isAutoinstallation = false;
  111.     if (Mode::config()) { // running inside of autoinstallation wizard (AutoYaST)
  112.         isAutoinstallation = true;
  113.     }
  114.  
  115.     map sequence = $[
  116.         "ws_start"        : (isAutoinstallation) ? "install_prepare" : "manage",
  117.         "manage"        :
  118.             $[
  119.             `close        : `finish,
  120.             `add        : "select_create",
  121.             `next        : `next,
  122.             `finish        : `finish,
  123.             `abort        : `abort,
  124.             ],
  125.         "select_create"        :
  126.             $[
  127.             `install    : "install_prepare",
  128.             `existing    : "existing_prepare",
  129.             `abort        : (isAutoinstallation) ? `abort : "manage",
  130.             ],
  131.         "install_prepare"    :
  132.             $[
  133.             `forceback    : (isAutoinstallation) ? `back : "select_create",
  134.             `next        : "install_proposal",
  135.             `abort        : (isAutoinstallation) ? `abort : "manage",
  136.             ],
  137.         "install_proposal"    :
  138.             $[
  139.             `forceback    : (isAutoinstallation) ? `back : "select_create",
  140.             `next        : "install_start",
  141.             `abort        : (isAutoinstallation) ? `abort : "manage",
  142.             ],
  143.         "install_start"        :
  144.             $[
  145.             `forceback    : "install_proposal",
  146.             `next        : "boot_prepare",
  147.             `abort        : (isAutoinstallation) ? `abort : "manage",
  148.             ],
  149.         "boot_prepare"        :
  150.             $[
  151.             `forceback    : "install_prepare",
  152.             `next        : "boot_proposal",
  153.             `abort        : (isAutoinstallation) ? `abort : "manage",
  154.              ],
  155.         "boot_proposal"        :
  156.             $[
  157.                 `forceback    : "install_prepare",
  158.             `next        : "boot_start",
  159.             `abort        : (isAutoinstallation) ? `abort : "manage",
  160.             ],
  161.         "boot_start"        :
  162.             $[
  163.             `forceback    : "boot_proposal",
  164.             `again        : "select_create",
  165.             `next        : (isAutoinstallation) ? `next : "manage",
  166.             `finish        : (isAutoinstallation) ? `finish : "manage",
  167.             `abort        : (isAutoinstallation) ? `abort : "manage",
  168.             ],
  169.         "existing_prepare"    :
  170.             $[
  171.             `forceback    : "select_create",
  172.             `next        : "existing_proposal",
  173.             `abort        : (isAutoinstallation) ? `abort : "manage",
  174.             ],
  175.         "existing_proposal"    :
  176.             $[
  177.             `forceback    : "select_create",
  178.             `next        : "existing_start",
  179.             `abort        : (isAutoinstallation) ? `abort : "manage",
  180.             ],
  181.         "existing_start"    :
  182.             $[
  183.             `forceback    : "existing_proposal",
  184.             `again        : "select_create",
  185.             `next        : (isAutoinstallation) ? `next : "manage",
  186.             `finish        : (isAutoinstallation) ? `finish : "manage",
  187.             `abort        : (isAutoinstallation) ? `abort : "manage",
  188.             ]
  189.     ];
  190.  
  191.     y2milestone("sequence: %1", sequence);
  192.  
  193.     symbol ret = Sequencer::Run(aliases, sequence);
  194.  
  195.     Wizard::CloseDialog();
  196.  
  197.     return ret;
  198.     }
  199. }
  200.  
  201.