Renaming ironicclient exceptions in nova driver

Since ironicclient uses exceptions from common code(
0f6419015c5f03448689ffe7c75ff3bdb5f19c08), names of several exceptions
changed. New names should be used in nova driver.

Related to bp common-client-library-2

Change-Id: I717aec8667a68c173f571ecc7d992b9fca3896c3
Update dev quickstart guide for ephemeral testing

Devstack now supports the IRONIC_VM_EPHEMERAL_DISK variable
which allows the user to specify the size of the ephemeral
disk partition. This change documents how to use this variable
to boot an instance with ephemeral storage.

Change-Id: Idd3bf8c4c63d32a8ed2bacd37ba642eb70f709db
Using system call for downloading files

Using system call `sendfile` for downloading files using glance
image service. It's more efficient than passing the entire image
through Python `shutil`.

Change-Id: Ic36c593538fd97d3ac02d3ad77feebcfdb9f1868
Closes-Bug: #1199522
Fix wrong usage of mock methods

There is no assert_not_called() method in mock, as described here:
https://code.google.com/p/mock/issues/detail?id=159
Fix the call to use the mock.called attribute instead.
This patch also uses right method assert_called_once_with instead
of assertCalleOnceWith.

Change-Id: Idc0125db73cd11707ce885813174ec38535dc501
Merge "Update dev quickstart guide for ephemeral testing"
Merge "Fix wrong usage of mock methods"
Merge "Renaming ironicclient exceptions in nova driver"
Merge "Using system call for downloading files"
Remove all mostly untranslated PO files

We now only import PO files that are at least 75 % translated,
so we can delete now all other PO files. The patch only
removes the mostly untranslated files. Once a file becomes mostly
translated, the bot will import it again.

This removes all languages besides en_US and en_AU.

Change-Id: Ie5d98c0f56d3f79dee6453bacca7b76c110d249e
Closes-Bug: #1317794
Factoring out PXE and TFTP functions

Multiple drivers need to support neutron and Ironic's PXE and TFTP
server. Factoring them out into a common file will make that
transition possible. I've moved all the generic calls into neutron
and reconfigured the PXE driver to work with the new functions.

Change-Id: I181ffabe673636b628329592e623e6425da54d6d
(cherry picked from commit 8850dc6c540e1a6a5f58c9b3e6d1fccb7daa2506)
Adding a reference driver for the agent

This driver handles communication with the Ironic Python Agent's REST
API and controls the agent through the deploy and tear down process.
It utilizes the nodeless vendor driver passthru to communicate with
newly booted agents. Things not included yet are support for
Neutron, agent registration/discovery, and writing an image to the
drive before deploy is called.

The original source for this driver was on GitHub. For history,
check: https://github.com/rackerlabs/ironic-teeth-driver

Depends on:
https://review.openstack.org/#/c/81391/
https://review.openstack.org/#/c/81919/

Implements: blueprint agent-driver
Change-Id: Ic6ad8703304af3041c48e9ade32eccbffa78ec9c
(cherry picked from commit e91f63dcb9f8d466dc1aeea27372aec349fbfc5e)
Drivers determine acceptable power states

The list of acceptable power states for a Node to be in when Nova is
calling deploy, update, and destroy were set globally.
This patch allows the deploy drivers to determine
which states are acceptable for each. I added a new validate
method to the DeployInterface class that can be overriden if
a driver determines it needs different settings (such as the agent
driver). The current function provides sane defaults and the
same behavior as before for any driver not overriding the function.

Change-Id: Iefec4396c323d9746bb0ee84b015765a4adbb476
Closes-Bug: 1306202
(cherry picked from commit a144b4499aab09c8b56cd8d757513f84d594d8d6)
Adding swift temp url support

This patch will allow properly configured Glance servers to return a temporary
URL for an object hosted on Swift. It will require Glance to use Swift
as its backend. A temporary URL will let the agent download an image from
Glance without requiring an auth_token, which gives access more than just
Glance. The easiest way to use it is to enable direct_url in Glance, but
you can set the appropriate config options to avoid needing to enable it.

We/I need to add a note in the docs about Swift being a possible dependency
for Ironic deploys using IPA, along with how to set the Temp URL key.

Swift perfomance concerns will be addressed in this blueprint:
https://blueprints.launchpad.net/ironic/+spec/improve-swift-agent-downloads

SecurityImpact
DocImpact

Implements: blueprint swift-temp-urls
Change-Id: I10e4784eee63e8edc9ba30a9c5004a08aa3a6d8e
(cherry picked from commit 327d32726dbc1d9a1ee97315a66210f76c8123f8)