Add two undeclared dependencies to the Dockerfile

While auditing our dependencies in antipiation of DIB elements being
created, I found these dependencies not being explicitly installed by
docker. We should explicitly install them even if we expect them to
exist in the base image.

Change-Id: I38ec7167ae24b9abbda08cbbbdd55205612b7288
Add support for psutil v1 as well as v2

Openstack global requirements updated to specify version 1 only, and we
only supported version 2.

Change-Id: Iee97e4b14cae00238028ef936d2f96fbc8e2604c
Merge "Add support for psutil v1 as well as v2"
Bump CoreOS to latest stable

Two reasons:

1) Use a build that is marked stable
2) Fixes an issue where boot hangs for minutes on updating CA
   things, which enables much faster deploy times.

Change-Id: Ic7fca96f0dfe87065e2df5feaf2c29efc662a0e1
Merge "Bump CoreOS to latest stable"
Bump IPA container to use Trusty

Bump IPA container to use trusty. This gives us a newer version of pip
which is required to install newer requirements that are packaged as
wheels.

Only other change to dockerfile is to ensure python 3 is
removed, in order to avoid raising the size of the container. After this
patch, the agent image goes up in size 3M, which is managable.

Change-Id: I11f39fadb87d42dd15885e6afc63df2c927ce771
Updated from global requirements

Change-Id: I4c28ee1bcbafba1cb2bab00463fe4354cd6ec25f
Prevent python 2.7 from being purged in container

Python 2.7 is being removed, somehow, despite python3 being specified.
This should fix the issue and make the container usable again.

Change-Id: Ida8aa7e527f8230cc893adf9192003340fc0dbf5
Merge "Updated from global requirements"
Clean up image build script

This change allows the image build script to support the existing
jobs that build images for distribution, as well as future jobs that
build the image within devstack for testing.

Change-Id: I6cae0ce336fde872678fafe6ba2b31af465944a1
Add vmedia boot support in IPA

This commit adds support for booting IPA from virtual
media cdrom.  When IPA is booted over virtual media cdrom,
the parameters to the IPA are passed in a text file within
the virtual media floppy.

Change-Id: Ia04585416aada85022af73fb2b945bd3895606f0
Closes-Bug: #1358723
Merge "Add vmedia boot support in IPA"
Fix incorrect documentation

Two changes, first is that we now upload individual files instead of a
tarball of both. The other is a catch from Jim to properly use building.

Change-Id: Icfaccb190d066feee5f30aed83c1b830fbe9cd89
Co-Authored-By: Jim Rollenhagen <jim@jimrollenhagen.com>
Fix minor documentation issues

I updated the URL to point to the correct path to the uploaded IPA
ramdisk, as well as adding a note about running IPA inside Virtual
Media.

Change-Id: Ib4f3da5ea9fd0172e9d4ff018fd5a2890ddb978b
Add missing "/files" to IPA image URLs

Corrects a 404 error when visiting these URLs.

Change-Id: I701186c0845f86ac0326efa148c3846ad0440786
Fix exception that is not properly raised

This commit fixes an exception that was not properly raised, and
also makes the exception more relevant.

This also fixes an outstanding bug where, if the agent
was not associated with a node, get_node_uuid() would fail in an
unexpected manner.

Change-Id: Ifca474a73dd50b5fd2242e5b7e938a5db04f27a8
Use LLDP to get switch port mapping

Provides a function to listen for LLDP packets on the network.
Listens on one or all of the network interfaces, and then parses the found
packets.

Change-Id: I1545a41f46cd0916aab9c43ce036865454fa66e0
Co-Authored-By: Josh Gachnang <josh@pcsforeducation.com>
(cherry picked from commit c036c64b08b5c0ec6fe13e0919b9145598bfe72e)
Adding support for decommissioning

The pluggable hardware manager should be able be used for decommissioning,
such as erasing disks, updating firmwares, changing BIOS settings, and
anything else specific hardware needs. This works with the agent driver
to store state in Ironic and request out of band reboots (which may be
required to make BIOS/firmware updates work).

Change-Id: Ia42a8e75d2b8887b2351de97c2137fe21a7f4041
(cherry picked from commit 7a185716b70350ff4e70d3bf6bffed950c85fc59)
Add versioning to Agent decommission

As the agent will likely be rebooting while decommissioning (to apply BIOS/
firmware upgrades), it is possible the version of the agent will change
between boots. Including a version string in the Hardware Manager allows
the Hardware Manager builder to bump versions for any breaking changes.
I recommend that the entire decommission process be restarted if there
is a version mismatch, but that will be up to individual drivers to
implement.

This change also adds a new return value for Agent REST commands called
'DECOM_VERSION_MISMATCH' that will signal no command was run, and
Ironic should update its stored value. A 'hardware_manager_version'
will be returned with AsyncCommandResult, and should be set in the
Ironic driver_info field and sent with any decommission command.

Change-Id: I2ae0e93573e0348f023aa124a07bb16921b5c53e
(cherry picked from commit 90a206c318894e4868455aea2489631651e25a00)
Add verification support to the agent

Allows Ironic to verify a node's hardware matches what an operator
entered when creating the node/port objects. This is useful for ensuring
node.properties is correct when switching workloads. For example, Ironic
can ensure that the amount of memory didn't change (possibly due to a
failed stick of RAM) since the last verification. Ironic could then
put the node in maintenance until an admin either changes node.properties
or replaces the defective part, and then sets the node's maintenance flag
to false. It can also be used to ensure the ports are plugged in correctly
(in a custom hardware manager), to avoid needless Neutron errors.

Change-Id: I1cd8f6476a9d2643a8e27745eb96e804564001ee
(cherry picked from commit 09620d32fa7652c51d6aa6f00497f9ba753779f2)