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
Document 'POST /v1/.../vendor_passthru'

http://docs.openstack.org/developer/ironic/webapi/v1.html does
not contain anything about how to use vendor passthru endpoints.
This adds 'POST /v1/nodes/(node_uuid)/vendor_passthru' and
'POST /v1/drivers/(driver_name)/vendor_passthru' to that
html page.

Change-Id: I6191be759f168c58e80d946530af7a0c4267501c
Closes-Bug: #1331415
Update docstring for api...node.validate

Add the param to the docstring for api.controllers.v1.node.validate.
With this change, the generated webapi page [1] will include this
information. Without it, it shows:
    Validate the driver interfaces. :type node_uuid: uuid

[1] http://docs.openstack.org/developer/ironic/webapi/v1.html

Change-Id: Ia33755b7ef1473aa0d04b22c76f20b7f1a99cd6b
REST API 'limit' parameter to only accept positive values

The REST API 'limit' parameter was accepting 0 as a valid value, but 0
is not a positive value.

Closes-Bug: #1340280
Change-Id: Ib816c6003da6dee740addb25eb5d4bffe2497967
Update webapi doc with link and console

http://docs.openstack.org/developer/ironic/webapi/v1.html is updated
as follows:
- changes the path descriptor of NodeStates to use '(node_uuid)' instead
  of '<uuid>' to be consistent with other paths
- adds [GET/PUT] /v1/nodes/(node_uuid)/states/console to show how to
  access the node's console
- fixes the "Links" section so that Link information is shown

Change-Id: I9d4a32550b81bb5ccf2fa23d8b591d8a945c04cc
Add more INFO logging to ironic/common/service.py

Change-Id: I60b0a33ce98f8b614a00af0c8cc5f27043bf022a
Partial-Bug: #1273856
Merge "Update docstring for api...node.validate"
Merge "REST API 'limit' parameter to only accept positive values"
Merge "Updates Ironic Guide with deployment information"
Merge "Document 'POST /v1/.../vendor_passthru'"
Merge "Update webapi doc with link and console"
Merge "Add more INFO logging to ironic/common/service.py"
Make ComputeCapabilitiesFilter work with Ironic

It is not currently possible to selectively associate a Nova flavor
with certain nodes in Ironic, beyond variances in the cpu/ram/disk.

The ComputeCapabilitiesFilter exists in Nova for just this purpose,
but the nova.virt.ironic driver is not propagating the correct
data up to the scheduler.

This patch parses the node.properties['capabilities'] as a series of
comma-separated k:v pairs and passes them up to Nova so that it can
be matched against flavor.extra_specs['capabilities'] by the
scheduler filter.

Co-Author: Matthew Gilliard <matthew.gilliard@hp.com>
DocImpact: adds the ability to specify multiple capabilities
           to a node for scheduling purposes
Closes-bug: 1339816
Change-Id: Ide39f4a2796b169025bf0083e021166ae35f30f8
Merge "Prevent updating UUID of Node, Port and Chassis on DB API level"
Fix wrong test fixture for Node.properties

Currently db.utils.get_test_node() generate Node.properties with
wrong keys. This patch fixes it.

Change-Id: I17ea664528c121d643a55df6266ee2bb1027b171
Set a more generous default image cache size

Master images of non-trivial filesystems will run 3+G (even though
the qcow2 might be < 1G) so we need to make it big enough to be useful
:). Ideally we'd autotune this based on free space or something, but
for now, this is large enough to cache e.g. TripleO cluster workloads
but small enough to fit in test VMs. This patch sets the default cache
to 20G.

Change-Id: I11ca629589e8a90f727abcc5b1c7e72dbd9e4b0f
Merge "Set a more generous default image cache size"
Merge "Make ComputeCapabilitiesFilter work with Ironic"
Merge "Fix wrong test fixture for Node.properties"