Clear hash ring cache in get_topic_for*

This causes the hash ring to be reset on each API request, avoiding
an issue where a new conductor never joins the ring until the API
service is restarted.

Closes-Bug: 1378570

Change-Id: Ic57370163f2f833efab662837036298f29f4ca90
Put a cap on our cyclomatic complexity

Flake8 has support for McCabe cyclomatic complexity.  Ironic's
most complex code is at 16 right now, so cap this at 17 to make
sure we don't start writing more complex code than what we already
have today.

Nova is doing similar: https://review.openstack.org/#/c/129125

Change-Id: I99fa26f763ab456d3428951d6a729098a73cf9ef
Continue heartbeating after DB connection failure

If the conductor cannot connect to the database to heartbeat,
it should retry on the next heartbeat instead of the heartbeat
thread dying.

Partial-Bug: 1382589

Change-Id: I994994e1e8ec4760b677a4ab613ee059c5787900
Merge "Put a cap on our cyclomatic complexity"
Merge "Continue heartbeating after DB connection failure"
Update node-validate error messages

Upon executing node-validate upon a node in Ironic, the
error message/reason is provided without any clear instruction
as to where the missing parameters are supposed to be defined.

This fix proposes to update the error messages to specify where
the information is missing.

Change-Id: I66e84ac3341882ae72796cc9536f20773142267f
Closes-Bug: #1379911
Merge "Update node-validate error messages"
Add SNMP driver for Aten PDU's

Closes-Bug: #1383162

Change-Id: I5b7c61c608fb32d7e35acfcd3f4bf5fec7c05b62
Merge "Add SNMP driver for Aten PDU's"