diff options
author | Scott Moser <smoser@ubuntu.com> | 2013-10-09 10:03:03 -0400 |
---|---|---|
committer | Scott Moser <smoser@ubuntu.com> | 2013-10-09 10:03:03 -0400 |
commit | ad71260b802526d6751d4726a2efda62515fbf24 (patch) | |
tree | b17c800fe43321e80f6b1d69ab137ab7f25e7138 | |
parent | 16a2bff998f6553ac13b7f0acaf6c0f24feecc83 (diff) | |
download | vyos-cloud-init-ad71260b802526d6751d4726a2efda62515fbf24.tar.gz vyos-cloud-init-ad71260b802526d6751d4726a2efda62515fbf24.zip |
power_state_change: convert an int input for delay to string, improve doc
this adds 'timeout' to the documentation for power_state_change, and
supports delay being an integer or a string. This is so that yaml
can contain:
delay: 30
rather than
delay: "+30"
or
dealy: "30"
-rw-r--r-- | cloudinit/config/cc_power_state_change.py | 6 | ||||
-rw-r--r-- | doc/examples/cloud-config-power-state.txt | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/cloudinit/config/cc_power_state_change.py b/cloudinit/config/cc_power_state_change.py index 188047e5..e3150808 100644 --- a/cloudinit/config/cc_power_state_change.py +++ b/cloudinit/config/cc_power_state_change.py @@ -75,6 +75,12 @@ def load_power_state(cfg): ','.join(opt_map.keys())) delay = pstate.get("delay", "now") + # convert integer 30 or string '30' to '+30' + try: + delay = "+%s" % int(delay) + except ValueError: + pass + if delay != "now" and not re.match(r"\+[0-9]+", delay): raise TypeError("power_state[delay] must be 'now' or '+m' (minutes).") diff --git a/doc/examples/cloud-config-power-state.txt b/doc/examples/cloud-config-power-state.txt index 59f062d0..8df14366 100644 --- a/doc/examples/cloud-config-power-state.txt +++ b/doc/examples/cloud-config-power-state.txt @@ -12,11 +12,20 @@ # that may go to the console as a result of system services like # syslog being taken down while cloud-init is running. # +# If you delay '+5' (5 minutes) and have a timeout of +# 120 (2 minutes), then the max time until shutdown will be 7 minutes. +# cloud-init will invoke 'shutdown +5' after the process finishes, or +# when 'timeout' seconds have elapsed. +# # delay: form accepted by shutdown. default is 'now'. other format # accepted is +m (m in minutes) # mode: required. must be one of 'poweroff', 'halt', 'reboot' # message: provided as the message argument to 'shutdown'. default is none. +# timeout: the amount of time to give the cloud-init process to finish +# before executing shutdown. +# power_state: - delay: 30 + delay: "+30" mode: poweroff message: Bye Bye + timeout: 30 |