| Index: client/bin/base_utils.py
|
| diff --git a/client/bin/base_utils.py b/client/bin/base_utils.py
|
| index 00e745f157fbd5f86180ef36e4145517e0d6ec3a..5d7256667694769dbda61c525ac88f62d0d190b6 100644
|
| --- a/client/bin/base_utils.py
|
| +++ b/client/bin/base_utils.py
|
| @@ -748,3 +748,57 @@ def process_is_alive(name_pattern):
|
| ignore_status=True) == 0
|
|
|
|
|
| +def get_hwclock_seconds(utc=True):
|
| + """
|
| + Return the hardware clock in seconds as a floating point value.
|
| + Use Coordinated Universal Time if utc is True, local time otherwise.
|
| + Raise a ValueError if unable to read the hardware clock.
|
| + """
|
| + cmd = '/sbin/hwclock --debug'
|
| + if utc:
|
| + cmd += ' --utc'
|
| + hwclock_output = utils.system_output(cmd, ignore_status=True)
|
| + match = re.search(r'= ([0-9]+) seconds since .+ (-?[0-9.]+) seconds$',
|
| + hwclock_output, re.DOTALL)
|
| + if match:
|
| + seconds = int(match.group(1)) + float(match.group(2))
|
| + logging.debug('hwclock seconds = %f' % seconds)
|
| + return seconds
|
| +
|
| + raise ValueError('Unable to read the hardware clock -- ' +
|
| + hwclock_output)
|
| +
|
| +
|
| +def set_wake_alarm(alarm_time):
|
| + """
|
| + Set the hardware RTC-based wake alarm to 'alarm_time'.
|
| + """
|
| + utils.write_one_line('/sys/class/rtc/rtc0/wakealarm', str(alarm_time))
|
| +
|
| +
|
| +def set_power_state(state):
|
| + """
|
| + Set the system power state to 'state'.
|
| + """
|
| + utils.write_one_line('/sys/power/state', state)
|
| +
|
| +
|
| +def standby():
|
| + """
|
| + Power-on suspend (S1)
|
| + """
|
| + set_power_state('standby')
|
| +
|
| +
|
| +def suspend_to_ram():
|
| + """
|
| + Suspend the system to RAM (S3)
|
| + """
|
| + set_power_state('mem')
|
| +
|
| +
|
| +def suspend_to_disk():
|
| + """
|
| + Suspend the system to disk (S4)
|
| + """
|
| + set_power_state('disk')
|
|
|