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 / modules / HwStatus.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  85 lines

  1. /**
  2.  * File:
  3.  *    HwStatus.ycp
  4.  *
  5.  * Module:
  6.  *    HwStatus
  7.  *
  8.  * Authors:
  9.  *    Klaus Kaempf (kkaempf@suse.de)
  10.  *
  11.  * Summary:
  12.  *    All hardware status relevant functions are here
  13.  * $Id: HwStatus.ycp 31067 2006-05-19 13:37:23Z jsrain $
  14.  */
  15. {
  16.     module "HwStatus";
  17.  
  18.     textdomain "installation";
  19.  
  20.     // status map for devices, key is "unique id", value is symbol (`yes, `no)
  21.  
  22.     map<string, symbol> statusmap = $[];
  23.  
  24.     /**
  25.      * Set
  26.      * set status for a hardware device
  27.      * @param id    string, unique-id for device
  28.      * @param stat    symbol, status of device (`yes or `no)
  29.      *
  30.      */
  31.     global define void Set (string id, symbol stat)
  32.     ``{
  33.     statusmap[id] = stat;
  34.     }
  35.  
  36.     /**
  37.      * Get()
  38.      * get status for device
  39.      * @param id    string, unique-id for device
  40.      * @returns symbol    status of device, (`yes or `no)
  41.      *            returns `unknown if status wasn't set before
  42.      */
  43.     global define symbol Get (string id)
  44.     ``{
  45.     return statusmap[id]:`unknown;
  46.     }
  47.  
  48.     /**
  49.      * Save()
  50.      * save stati for all devices
  51.      */
  52.     global define void Save ()
  53.     ``{
  54.     foreach (string id, symbol stat, statusmap,
  55.     ``{
  56.         y2milestone ("Setting status of %1 as %2", id, stat);
  57.         SCR::Write(.probe.status.configured, id, stat);
  58.     });
  59.     }
  60.  
  61.     /**
  62.      * Update()
  63.      * set stati for all devices
  64.      */
  65.     global define void Update ()
  66.     ``{
  67.     // probe all pci and isapnp devices once
  68.     // so they have a defined status after update
  69.     SCR::Read (.probe.pci);
  70.     SCR::Read (.probe.isapnp);
  71.  
  72.     // build relation between old keys and new UDIs (bug #104676)
  73.     string command = "hwinfo --pci --block --mouse --save-config=all";
  74.     y2milestone ("Running %1", command);
  75.     map cmdret = (map)SCR::Execute (.target.bash_output, command);
  76.     integer exit = cmdret["exit"]:-1;
  77.     y2milestone ("Command retval: %1", cmdret["exit"]:-1);
  78.     if (exit != 0)
  79.         y2error ("Command output: %1", cmdret);
  80.     else
  81.         y2debug ("Command output: %1", cmdret);
  82.     }
  83.  
  84. }
  85.