Sync oslo.incubator modules

Update the oslo.incubator modules needed. Due to internal oslo
dependencies, strutils has been also imported.

Change-Id: I8cc1eb0003520a2d3b697c4d584c7c96aa5401d6
Add docstrings for agent.py

Does what it says.

Partial-Bug: 1367915

Change-Id: If2617f30c75c4a844c20a60afa41330daf84053a
Add support to build iso image

This script adds support to build iso image from the given
kernel and ramdisk

Change-Id: I15dd8b8663af15b4194299986792ad8e6487508b
Implements: blueprint ilo-virtualmedia-ipa
Preserve environment variables when doing sudo

This commit adds the '-E' option for all the sudo commands
in build script of agent which causes it to preserve environment
variables.

Change-Id: Ic3fbc4ee8189cc82ef99359bf61eef33dae40a5a
Closes-Bug: 1371418
Merge "Add docstrings for agent.py"
Merge "Preserve environment variables when doing sudo"
Merge "Add support to build iso image"
Add docstrings for api/ tree

Does what it says.

Partial-Bug 1367915

Change-Id: Id1a718d652f6d98e6acb1d667f42d9c3cc82aef5
Delete unused method get_agent_mac_address()

Does what it says.

Change-Id: I01e20e3a1e7317c17da6fc04ee0b0a672cf8247b
Merge "Add docstrings for api/ tree"
Merge "Delete unused method get_agent_mac_address()"
Use poll instead of threading.Event in heartbeat thread

poll() does not rely on absolute time.
This fixes an issue where the system clock may be changed, and
the heartbeat thread would stop heartbeating.

This also gives us flexibility to force a heartbeat in a later
change.

Change-Id: Ifde7b53f59788addc43a5dac95c7b6519d87e834
Closes-Bug: 1355375
Force heartbeat immediately after async command completes

This change passes the agent object into extensions, such that
they may call agent methods as needed. It also causes async
commands to force a heartbeat immediately after completing the
command. This allows Ironic to get a heartbeat and continue
work as quickly as possible, while also allowing deployers to
configure Ironic (agent) to heartbeat less often.

Change-Id: Ib3c3a43dfd0ed4ed51b7d52ac099f01181ca822f
Write image directly to disk

Write image directly to disk by telling qemu-img that the output
file is the disk. Still uses O_DIRECT directly within qemu-img.

This avoids the need to have a huge amount of system memory to be
able to deploy an image that contains a huge disk.

The only feature left behind by that commit is the 64K block size.

Change-Id: If60bcd82581b2ea76c4acbc3eaa3f317d2ee6590
Improve docstrings for cmd/agent.py

Added missing docstrings and improved existing docstrings for every
method in cmd/agent.py

Change-Id: Ib8dbbf70bca139a43d75d59fb09dce899466e888
Partial-bug: 1367915
Updated from global requirements

Change-Id: Ie026a6037e02c0ddfb5c4ccb7dbf183b030d626c
Fix requests version for build scripts

Global requirements specifies a different version of requests
than we do in these build scripts. Fix this temporarily; in the
future the build scripts should use the requirements.txt file
at the root.

Change-Id: I3f03f8a5a34a2a23ff4f76de7a73289cf4d769ff
Cleanup coreos-oem-inject.py

The current script used to inject the IPA container into CoreOS is
not pep8 compliant, has requirements that are not in
global-requirements, and never has tests run. Now requirement on
plumbum is removed, script is pep8 compliant, flake8 runs against the
script when tests are run.

Closes-bug: #1337551

Change-Id: I14d3e46e60c4e072f34f80dc50d7214079953f49
Use requirements.txt from the root for image build

This ensures that the requirements.txt used for building images
is kept in sync with global requirements.txt.

Change-Id: Id474a8de4798ed4fbc56e7133073d8a674ec4f84
Merge "Updated from global requirements"