Allow overriding the log level for ironicclient

oslo provides a 'default_log_levels' conf variable for overriding
logging levels for certain modules. This could be used to override
ironicclient's default logging level, however it requires re-setting
all of the log levels for oslo's defaults. This is rather inconvenient.

I think it makes sense to allow the ironic virt driver to have an easy
config option for this. When in debug mode, ironicclient logs every
single API call and response. In an environment with a lot of nodes,
it clutters the logs.

This adds a 'client_log_level' config option to the 'ironic' config
section in nova. If it's unset (default), there's no change in behavior.
If it's set, it takes precedence over the 'default_log_levels',
'verbose', and 'debug' settings that one may have in nova.conf

Example usage:
[ironic]
client_log_level=INFO

DocImpact

Closes-bug: 1325663

Change-Id: Id16d5017e1d9ae5d2b15ff3daca177ab36a32869
Prevent updating UUID of Node, Port and Chassis on DB API level

UUID is seen as something similar to pkey and is not expected
to be updated after creation.
This patch makes update_{node,chassis,port} raise InvalidParameterValue,
if 'uuid' field is passed in.

Closes-Bug: #1333683
Change-Id: I7312036a5144cebe3da7f033f73e881e79e8a2ca
Updates Ironic Guide with deployment information

This patch updates
Ironic deployment information
Adds 3 deployment diagrams
Describes deployment process

Change-Id: Idbe973c9a5f9805fe9a186a1db77fc66c044eeaf
Update Nova's available resources at termination

This updates ClusteredComputeManager to override terminate_instance() with
a call to update_available_resource().  The goal here is to limit the lag
between when an Ironic node has been freed and when it will become available
again to the Nova.  This avoids scheduling errors against Ironic node
inventories with high utilization and/or limited node resources.

Change-Id: I767cb97d9b182f1f9528d078b07a85ffbad313ba
Closes-bug: #1334027
Updated from global requirements

Change-Id: I7a3158247a284ea90be769920b2f4f389f98c089
Update nova rebuild to account for new image

Update the Nova driver's rebuild() to account for changes in the instance image
during rebuild.  Currently, rebuild ignores user requests to rebuild with a
new image, making it impossible to do image-based upgrades.  This adds logic
to the patcher to account for the preserve_ephemeral flag and updates rebuild()
to use the patcher to re-patch all driver_info during rebuild.

This also adds missing test coverage of the rebuild code.

Change-Id: I6c8aacd36e0095d0590a1dc552730f2d52036225
Closes-bug: #1334905.
Minor cleanups to nova virt driver and tests

- remove unused classmethod "instance" from nova.virt.ironic driver
- two more pep8 fixes in unit tests

Change-Id: I0ba4b4717abe8bb8fdb9092c8e07332c3c011a22
Merge branch 'openstack-master' into SD-1375
Merge "Update Nova's available resources at termination"
Merge "Updated from global requirements"
Allow noauth for Neutron

Adds support for noauth for communicating with Neutron.

Change-Id: I798a7ba84fcd2b46e5028ef50752e8f1f9c1c708
Fix workaround for the "device is busy" problem

Right after partitioning, we have a sleep(3) to avoid the "device is
busy" problem. A less error-prone solution is to check with fuser,
whether there is any process currently using the disk.

The following config options are introduced under the 'disk_partitioner'
group:
- check_device_interval: seconds between consecutive checks for the
device status
- check_device_max_retries: number of retries for checking the device
status

Change-Id: Icb73db5aeb16d1abc390975c2bd8bf4b486566e5
Implements: blueprint device-status-check-with-fuser
Closes-Bug: #1301975
Merge "Allow noauth for Neutron"
Add gettextutils._L* to import_exceptions

Using the new logging translation markers (_LI(), _LW(), _LE(),
_LC())[1] is problematic because they are not modules. Since the
Openstack guidelines only allow modules to be imported[2], the entire
gettextutils module must imported in order to use the translation
markers.

This patch adds all four markers to import_exceptions in tox.ini, so
they can be imported individually without failing the pep8 tests.  This
is already done with the _() marker.  With this change, it will be
allowable to import marker functions like so:

from ironic.openstack.common.gettextutils import _LI
from ironic.openstack.common.gettextutils import _LW
from ironic.openstack.common.gettextutils import _LE
from ironic.openstack.common.gettextutils import _LC

[1]http://docs.openstack.org/developer/oslo.i18n/guidelines.html
[2]http://docs.openstack.org/developer/hacking/#imports

Change-Id: I78192dd7525624174deb8d377996ed3d61b36a8a
Merge "Minor cleanups to nova virt driver and tests"
Merge "Add gettextutils._L* to import_exceptions"
Merge "Update nova rebuild to account for new image"
Merge "Fix workaround for the "device is busy" problem"
Simplify error handling

This code block is needlessly complex.

Change-Id: I41375458d21e38267cd0a1d21b0b14ab498fc172
Updates the Ironic on Devstack dev documentation

The current devstack configuration in the dev documentation
is out of date and will not successfully spin up a
Nova with Ironic driver environment. One of the critical
changes necessary is to set the IRONIC_VM_SPECS_RAM to 1024,
as that is now the minimum size for a virtual Ironic node.

This change also updates the configurations to more closely match
the ones being used for the virtual ironic Devstack job and
explicitly sets file logging to make debugging easier.

Change-Id: Ifbe0af9759483ccd80e74b24d45eaa4726c4b101