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 / iscsi-client_auto.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  99 lines

  1. /**
  2.  * File:    clients/iscsi-client_auto.ycp
  3.  * Package:    Configuration of iscsi-client
  4.  * Summary:    Client for autoinstallation
  5.  * Authors:    Michal Zugec <mzugec@suse.cz>
  6.  *
  7.  * $Id: iscsi-client_auto.ycp 27936 2006-02-13 20:01:14Z olh $
  8.  *
  9.  * This is a client for autoinstallation. It takes its arguments,
  10.  * goes through the configuration and return the setting.
  11.  * Does not do any changes to the configuration.
  12.  */
  13.  
  14. /**
  15.  * @param function to execute
  16.  * @param map/list of iscsi-client settings
  17.  * @return map edited settings, Summary or boolean on success depending on called function
  18.  * @example map mm = $[ "FAIL_DELAY" : "77" ];
  19.  * @example map ret = WFM::CallFunction ("iscsi-client_auto", [ "Summary", mm ]);
  20.  */
  21.  
  22. {
  23.  
  24. textdomain "iscsi-client";
  25.  
  26. y2milestone("----------------------------------------");
  27. y2milestone("IscsiClient auto started");
  28.  
  29. import "IscsiClient";
  30. include "iscsi-client/wizards.ycp";
  31.  
  32. any ret = nil;
  33. string func = "";
  34. map param = $[];
  35.  
  36. /* Check arguments */
  37. if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
  38.     func = (string)WFM::Args(0);
  39.     if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
  40.     param = (map) WFM::Args(1);
  41. }
  42. y2debug("func=%1", func);
  43. y2debug("param=%1", param);
  44.  
  45. /* Create a summary*/
  46. if(func == "Summary") {
  47.     ret = select(IscsiClient::Summary(), 0, "");
  48. }
  49. /* Reset configuration */
  50. else if (func == "Reset") {
  51.     IscsiClient::Import($[]);
  52.     ret = $[];
  53. }
  54. /* Change configuration (run AutoSequence) */
  55. else if (func == "Change") {
  56.     ret = IscsiClientAutoSequence();
  57. }
  58. /* Import configuration */
  59. else if (func == "Import") {
  60.     ret = IscsiClient::Import(param);
  61. }
  62. /* Return actual state */
  63. else if (func == "Export") {
  64.     ret = IscsiClient::Export();
  65. }
  66. /* Return needed packages */
  67. else if (func == "Packages") {
  68.     ret = IscsiClient::AutoPackages();
  69. }
  70. /* Read current state */
  71. else if (func == "Read") {
  72.     import "Progress";
  73.     boolean progress_orig = Progress::set (false);
  74.     ret = IscsiClient::Read();
  75.     Progress::set (progress_orig);
  76. }
  77. /* Write givven settings */
  78. else if (func == "Write") {
  79.     import "Progress";
  80.     boolean progress_orig = Progress::set (false);
  81.     IscsiClient::write_only = true;
  82.     ret = IscsiClient::Write();
  83.     Progress::set (progress_orig);
  84. }
  85. /* Unknown function */
  86. else {
  87.     y2error("Unknown function: %1", func);
  88.     ret = false;
  89. }
  90.  
  91. y2debug("ret=%1", ret);
  92. y2milestone("IscsiClient auto finished");
  93. y2milestone("----------------------------------------");
  94.  
  95. return ret;
  96.  
  97. /* EOF */
  98. }
  99.