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 |
44 |
keep_running = False |
keep_running = False |
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: |
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") |