Allow to tear-down a node waiting to be deployed

Introducing a new state, WAITDEPLOYING, those nodes which have failed
to POST and trigger the vendor_passthru._continue_deploy() can be
tear-down.

Closes-Bug: #1270986
Change-Id: Ib98f1ba6a29de46df9ce54941d0558df4f241f40
Add common.service config options to sample

openstack/common/config/generator.py looks for a variable that is a list
of config options. The code in common.service was written with the list
passed as an argument to cfg.CONF.register_opts(), instead of being
assigned to a variable first, so the generator didn't detect it.

In common.service, the list of config options is now assigned to a variable.
The ironic.conf.sample file generated by tools/config/generate_sample.sh
now includes the two config options: periodic_interval and host.

Change-Id: I2f42e7f407ffc157d225652045c1bf53f65405b3
Closes-Bug: #1280064
Add wsme custom BooleanType type

This type can be used in the wsexpose decorator to validate boolean
types when the request comes in.

Change-Id: I9492e4c4c8c33335ff79129c58f05b15172b0aee
Use the custom wsme BooleanType on the nodes api

Instead of using a wtypes.text on the boolean types in the api and then
having to convert it, this patch uses the custom wsme BooleanType to
make the validation for it.

Change-Id: I0165c31034185beb80e50d499cb0dc67b15e45dd
Add JSONEncodedType with enforced type checking

Add abstract base class for JSONEncoded properties which: 1. Does type
checking to make sure we're serializing what we really expect
2. Ensures that default value of the field matches default value of
that type, so we have consistent interface. This patch creates two child
classes JSONEncodedDict and JSONEncodedList and updates SA models
correspondingly.

Change-Id: I528ac64e998e9a874feb16709d7617feb4b09c8a
Closes-Bug: #1270146
Move ipmitool _set_boot_device to VendorPassthru

_set_boot_device must be exposed via vendor_passthru, allowing
operators to manually change it, and force to boot from net when
performing a pxe deploy.
Until now, it was just a private method of the power driver.

Partial-Bug: #1264596
Change-Id: I174f0a058bfe6276b7a42291661f3fd00de9a7ca
Merge "Add wsme custom BooleanType type"
Merge "Use the custom wsme BooleanType on the nodes api"
API validates driver name for both POST and PATCH

Change the RPCAPI get_topic_for method to raise a
NoValidHost exception when the driver is not found in the hash ring.

This allows the API to validate the driver before passing it either
to the dbapi (in POST) or to the conductor (in PATCH). In this way,
the error returned to the user is the same, and the error handling
is very similar in the code, when either creating or updating a node
and supplying a non-existing driver.

Change-Id: I392269882d9a58e1c682631c094d1ed387e45aa5
Closes-bug: #1238167
Fix dev-quick-start.rst post landing for 9d81333fd0

Fixing:
* Add missing -r option to the pip install command
* Add a step to start rabbitmq-server on fedora/rhel after the
  installation
* Replace the systemctl command with service because RHEL <= 6 doesn't
  use systemd
* auth_strategy option can't be appended at the end of the file and
  should be edited under the [DEFAULT] section
* Remove the trailing space

Change-Id: Id9b8a3e2b8c0358ddfc6693fb0cda410a40a4186
Task object as paramater to validate() methods

Add the task object as parameter to the validate() methods of the
driver interfaces. Some driver validation might need access to the other
resources apart from the node, e.g PXE and the SSH driver need to check
if the node has a port associated with it, because they need a MACAddress
to work (generate the config files, etc...)

Related-Bug: #1272045
Change-Id: I5cb311f89ea62c3b860f361cdf60251dd35e0245
PXE and SSH validate() method to check for a port

The PXE and SSH server depends on a MACAddress to work, before the
validate() method of the PXE and SSH drivers didn't check whether the
node had a port associated with it or not making it possible to start
a provision/power state change without and address that would fail. So,
this patch is improving the validate() method of the PXE and SSH driver
to check for a port.

Closes-Bug: #1272045
Change-Id: I1e8deb91558478973b280ed25bf3b90da4e2b045
Merge "Allow to tear-down a node waiting to be deployed"
Correct assertEqual order from patch e69e41c99fb

This is a follow-on patch to correct the param order
in assertEqual statements in e69e41c99fb.

Change-Id: I4b910070403cd08a30cb31bd2665dc915625a773
Merge "Add common.service config options to sample"
Merge "API validates driver name for both POST and PATCH"
Merge "Task object as paramater to validate() methods"
Merge "PXE and SSH validate() method to check for a port"
Merge "Correct assertEqual order from patch e69e41c99fb"
Merge "Fix dev-quick-start.rst post landing for 9d81333fd0"