ipmi_adapter: simplify, retry if command fails 03/15003/3
authorJosep Puigdemont <josep.puigdemont@enea.com>
Fri, 6 May 2016 10:09:58 +0000 (12:09 +0200)
committerJosep Puigdemont <josep.puigdemont@gmail.com>
Wed, 15 Jun 2016 15:00:41 +0000 (15:00 +0000)
commit2ea2690762b4a1e547d2ca71674125c7e101d7fd
tree3a5b43447ab20ca69e5eb8f1aabdee41b2505e98
parent874ca3f24d349ee844bb7339dda34eddb2e91c73
ipmi_adapter: simplify, retry if command fails

The method get_node_state has been added to the the IpmiAdapter class.

In addition, now the power on/off methods will try several times to
perform their IPMI command before giving up, instead of bailing out at
the first error.

After the power on/off command is completed, the method will wait until
the node is in the desired state.

NOTE: a command could potentially take several minutes if the defaults
are used; each IPMI command can take up to 1 minute, and there can be 3
commands issued per operation, one of them may be retried 20 times with
the current defaults. Ideally we would use eventlet or something similar
to allow each command a limited time to execute, instead:

    with eventlet.timeout.Timeout(seconds) as t:
        power_on/off_command

Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
deploy/dha_adapters/ipmi_adapter.py