Add vendor_passthru method to RPC API

Method vendor_passthru allows Ironic API
service validate and to pass vendor-specific
info to a node driver.

Partially implements blueprint pxe-mount-and-dd

Change-Id: I2c60d84e9d983a301c9169f3a1e9a34e93d2b050
Update error return code to match new Pecan release

Change-Id: I2606ff31165e8a83d872a0b64e071fc92ed63db5
Merge "Add vendor_passthru method to RPC API"
Doc string and minor clean up for 41976

Just a doc string and minor clean up for vender_passthru

Change-Id: I6c7620d11c37385150b279ce94b1816f7ef0b99d
Add API uuid <-> id mapping

On the API side, when creating a new node or port, translate 'chassis_id'
and 'node_id' from uuid to id, internally id will be always used to do
database operations. The opposite will happen when returning data back
to the user the internal id will be translated to an uuid.

Change-Id: I84782268c4317b4eec53fdcdfc6cb2b901b22780
Upgrade tox to 1.6

tox 1.6 was released, which means that we can now take advantage of the
feature we added to it - which is using setup.py develop to install the
code into the virtualenv. The logic was taken from run_tests.sh - so the
performance issues around using tox vs. using install_venv should now be
gone.

Change-Id: Ib011a9add595696f5db5fe596db9d3d60f46d038
Fixes-Bug: #1233213
Update from global requirements

Also, more importantly, get rid of d2to1 references.

Change-Id: I3c51eaf807b8642d9326d110813f62a9b4898d5b
Replace Cheetah with Jinja2

Other projects are already using Jinja2.

Partial port of nova commit fa0d61084e50c264f3231f997e4243b8037919f8

Change-Id: Id87c8dff3c60ef7155c1cd940ada8316678711d6
Closes-Bug: Bug #1233251
Merge "Add API uuid <-> id mapping"
Merge "Replace Cheetah with Jinja2"
Merge "Upgrade tox to 1.6"
Check for required fields on ports

Currently the API on ports does not check for any required fields,
this patch add such verifications + tests.

Change-Id: I4a2003c3a5ab0a0b31742fcac119fbe20929f636
Partial-Bug: #1223847
Add tests for api/utils.py

Currently the functions on api/utils.py is not being directly/well tested,
this patch add tests for those functions. This patch also replaces the
current regex to test the patches with a DRYer one.

Change-Id: Ibda84bd759e2a96c76d06465c6d0740d4ddea263
Mount iSCSI target and 'dd' in PXE driver

This patch does integration deploy-helper functions
into PXE driver.

Partially implements blueprint pxe-mount-and-dd

Change-Id: I9df927dd3910e0bb88e9c028b674314650b98774
Merge "Check for required fields on ports"
Merge "Add tests for api/utils.py"
Merge "Mount iSCSI target and 'dd' in PXE driver"
Rename start_power_state_change to change_node_power_state

Change the name of this RPC method to be a more accurate description
of its function: it is an asynchronous "cast" which changes the power state
of the specified node.

Change-Id: I2c45470ef27e0e74a28ff44428a70fbfac3ee978
Fix parameter name in wsexpose

We must use 'status_code' (which is present
in current wsme code) instead of 'status'
in wsmeext.pecan.wsexpose.

Change-Id: I885749c87736ebf347e3175b5a3f49169a5e6041
Replaces mox with mock for ipmitool driver unit tests

OpenStack is moving unit tests from mox to mock for python3 compatibility.
This replaces mox with mock for ipmitool driver unit tests.

Fixes bug: #1229396

Change-Id: Ifbb9121fad78674002653502dd6f6c7f2bee3f5e