/[svn.andrew.net.au]/usbspindownd/usbspindownd.py
ViewVC logotype

Diff of /usbspindownd/usbspindownd.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 33 by apollock, Thu Jan 31 07:58:04 2008 UTC revision 37 by apollock, Fri Feb 1 02:44:52 2008 UTC
# Line 35  spindown_cmd_args = "" Line 35  spindown_cmd_args = ""
35  keep_running = True  keep_running = True
36  signals = {}  signals = {}
37    
38    class Error(Exception):
39            pass
40    
41    
42  def signal_handler(signal, stack):  def signal_handler(signal, stack):
43    global keep_running    global keep_running
   global sigdict  
44    keep_running = False    keep_running = False
45    
46    
# Line 80  def load_config(options): Line 83  def load_config(options):
83    except IOError, e:    except IOError, e:
84      print "Got a '%s' trying to read %s" % (e.strerror, options.config)      print "Got a '%s' trying to read %s" % (e.strerror, options.config)
85      sys.exit(1)      sys.exit(1)
86      except ConfigParser.MissingSectionHeaderError, e:
87        print "Parser error: '%s'" % (e.message)
88        sys.exit(1)
89    if cf.has_option("DEFAULT", "wait"):    if cf.has_option("DEFAULT", "wait"):
90      defaultwait = cf.get("DEFAULT", "wait")      defaultwait = cf.get("DEFAULT", "wait")
91    else:    else:
# Line 147  def monitor_disks(config, options): Line 153  def monitor_disks(config, options):
153          if msio == config[disk]["last_msio"]:          if msio == config[disk]["last_msio"]:
154            debug(options, "Disk has been idle since last considered")            debug(options, "Disk has been idle since last considered")
155            now = int(time.time())            now = int(time.time())
156            if (now - config[disk]["timestamp"]) >= config[disk]["wait"]:            if (now - config[disk]["timestamp"]) >= int(config[disk]["wait"]):
157              debug(options, "Disk eligible for spinning down")              debug(options, "Disk eligible for spinning down")
158              # We can spin this disk down              # We can spin this disk down
159              if not config[disk]["spun_down"]:              if not config[disk]["spun_down"]:
160                if spin_down(disk):                if spin_down(options, disk):
161                  debug(options, "Disk spun down")                  debug(options, "Disk spun down")
162                  config[disk]["spun_down"] = True                  config[disk]["spun_down"] = True
163                else:                else:
# Line 162  def monitor_disks(config, options): Line 168  def monitor_disks(config, options):
168              # This disk is ineligible for spinning down at this time              # This disk is ineligible for spinning down at this time
169              debug(options, "Disk idle for %s seconds, but not for long enough (%s)" % (now - config[disk]["timestamp"], config[disk]["wait"]))              debug(options, "Disk idle for %s seconds, but not for long enough (%s)" % (now - config[disk]["timestamp"], config[disk]["wait"]))
170          else:          else:
           debug(options, "Disk not idle (old msio: %s, current msio: %s)" % (config[disk]["last_msio"], msio))  
171            config[disk]["last_msio"] = msio            config[disk]["last_msio"] = msio
172            config[disk]["timestamp"] = int(time.time())            config[disk]["timestamp"] = int(time.time())
173            config[disk]["spun_down"] = False            if config[disk]["spun_down"]:
174                debug(options, "%s presumed spun back up by activity" % (disk))
175                config[disk]["spun_down"] = False
176              debug(options, "Disk not idle (old msio: %s, current msio: %s)" % (config[disk]["last_msio"], msio))
177      debug(options, "Sleeping")      debug(options, "Sleeping")
178      time.sleep(60)      time.sleep(60)
179    debug(options, "Shutting down")    debug(options, "Shutting down")

Legend:
Removed from v.33  
changed lines
  Added in v.37

  ViewVC Help
Powered by ViewVC 1.1.22