Encapsulate Ironic client retry logic

This is the start of being more consistent with our client retry
logic when an error with the Ironic API server is encountered.
This will eventually touch many sections of the Nova Ironic driver,
but since we have neither unit tests nor functional tests for the driver,
this will be implemented slowly.

All calls to ironicclient node.list() are replaced in this patch.

This would be a first step in eventually having the driver contain
a reference to a single IronicClientWrapper object, rather than
repeatedly instantiating a new one. At that point, we could also
do some sort of caching of the connection returned from _get_client().

Partial-Bug: #1295870

Change-Id: I8e98d5540994acbf5abab64231f7a1b7624f7712
Remove a DB query for get_ports_by_node()

This renames get_ports_by_node() to get_ports_by_node_id() and changes
the node_id argument to always need to be the integer ID. This removes
the need for get_ports_by_node() to query the DB for UUID -> ID
conversion.

By doing this, we can save a DB query in the cases where we already have
the Node integer ID.

This is needed to help set up the next patch to clean up calls to
get_node(). There's now a case in port API controller where we need
to lookup the Node by UUID just to get its ID to be passed into this
call. Until we implement the Node lazy-loading code, we fetch the
full Node, but this isn't any worse than before for this case, as
I'm just moving it from the DB layer. I've noted this with a FIXME
and it will be made more efficient in the future.

Change-Id: I9993c0c87794171fb971524ac5c30490b3e33716
Add Ironic User Guide

Add a User guide, Initial chapters to cover introduction, architecture
diagrams, terminology for Ironic service.

Change-Id: I08faac6204aa412e330362133eb14241f3c21b34
Sync oslo/config/generator

Sync from oslo:
  0e98afda1ba85243771e31e0c859d550334da648

Change-Id: I9162975b4b76a61693262819a291cc9fa9d2c318
Sync oslo/common/excutils

Sync commits:
  6d0a6c3083218cdac52758a8b6aac6b03402c658
  8b2b0b743e84ceed7841cf470afed6a5da8e1d07
  fcf517d72cb81f972fad20caa9ff0341e9b4aa9c
  33a2cee6a690ecfdb2cecfe8f01b0b1dacb5bd17

Change-Id: I4f12aecf558baf0004ceed65f55520850534b73c
Overwriting node_is_available in IronicDriver

Overwriting node_is_available so it call to
node.get from the ironic client.

Change-Id: If27048342349c6eb87291416d82f719001db6dac
Closes-Bug: #1299288
Fix conductor.manager test assertion order

A bunch of conductor.manager tests have equaltiy assertions in the
wrong order: this patch addresses that.

Change-Id: I88f3a7a05e7c4f3e1d0cd86afc5167e9e73bf4af
Merge "Encapsulate Ironic client retry logic"
Imported Translations from Transifex

Change-Id: I8ab062a641f899577b0b885e1d519b3db085966d
Merge "Overwriting node_is_available in IronicDriver"
Merge "Sync oslo/config/generator"
Merge "Imported Translations from Transifex"
Refactor the driver fields mapping

Refactor the driver fields mapping into classes, the idea is to have one
class per driver type (pxe, seamicro, agent, etc...). The old mapping was
hard to extend, for e.g in case of converting one of the values before
sending the request to Ironic wasn't possible (swap_mb -> swap_gb).

This patch also minimize the number of requests sent to the Ironic API
when adding/cleaning up the nodes attributes, instead of sending 1
request per attribute it will condense everything in one request to
avoid bombarding the API service.

Change-Id: Ibfd0a8051dc84740b42c2ad46dbdbe1ed00cbdf1
Merge "Add Ironic User Guide"
Merge "Fix conductor.manager test assertion order"
Merge "Remove a DB query for get_ports_by_node()"
Install guide for Ironic

This contains the beginnings of documentation on how to
install and configure the Bare Metal Service (ironic).

This is modelled after documentation available at
http://docs.openstack.org/havana/install-guide/install/apt/content/.

Change-Id: I7bf0a9caaf5bd5a2fcfc6fd0b0addeedb7ca26cb
Fix message preventing overwrite the instance_uuid

If a node already has an instance associated with it, we prevent
the instance_uuid from being updated (one should tear-down the node
first). When trying to update the instance_uuid the message returned
was saying that the node was associated with the new instance value,
this patch fix the message to return the current instance_uuid associated
with the node.

Change-Id: Ib8ab6c96b28b49b6259a95e82c83c5fbdeba5f91
Closes-Bug: #1308144
Some minor clean up of various doc pages

* simplify the links on index.rst
* update the main description on the index page

* move install/ironic-install under deploy/
* rename ironic-install to install-guide
* rename userguide to user-guide
* clarify a few things in the install-guide

Change-Id: Ic6eff035df42d0c3fa78f54eac7ad8322ebb0afc
Merge "Refactor the driver fields mapping"