Import Ironic Driver & supporting files - part 3

Import the Ironic virt driver and supporting files (driver part 1 -
infrastructure, list functions, power functions), as
well as relevant unit tests, as of commit
da967d77894be6f23d81fb5cc948f9d13898ba84

This is the dicing up of review/103167 into smaller chunks
ready for review.

Also added in the new power_off function signature as per
https://review.openstack.org/#/c/116093

Change-Id: I7cb9066564f939ec5d873d86915ad17d03983dc5
Co-authored-by: Adam Gandelman <adamg@ubuntu.com>
Co-authored-by: Andrey Kurilin <akurilin@mirantis.com>
Co-authored-by: ChangBo Guo(gcb) <eric.guo@easystack.cn>
Co-authored-by: Chris Behrens <cbehrens@codestud.com>
Co-authored-by: Chris Krelle <nobodycam@gmail.com>
Co-authored-by: David Shrewsbury <shrewsbury.dave@gmail.com>
Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>
Co-authored-by: Dmitry Tantsur <dtantsur@redhat.com>
Co-authored-by: Jim Rollenhagen <jim@jimrollenhagen.com>
Co-authored-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Co-authored-by: Matthew Gilliard <matthew.gilliard@hp.com>
Co-authored-by: Mikhail Durnosvistov <mdurnosvistov@mirantis.com>
Co-authored-by: Pablo Fernando Cargnelutti <pablo.fernando.cargnelutti@intel.com>
Co-authored-by: Robert Collins <rbtcollins@hp.com>
Co-authored-by: ryo.kurahashi <kurahashi-rxa@necst.nec.co.jp>
Import Ironic Driver & supporting files - part 4

Import the Ironic virt driver and supporting files (driver part 2 -
validation, spawn, destroy, further getters), as well as relevant
unit tests, as of commit da967d77894be6f23d81fb5cc948f9d13898ba84

This is the dicing up of review/103167 into smaller chunks
ready for review.

Incorporating the bug fix https://review.openstack.org/#/c/118189

Change-Id: If1d966c937c56a8dbf27588b94462c0a71759cca
Co-authored-by: Adam Gandelman <adamg@ubuntu.com>
Co-authored-by: Andrey Kurilin <akurilin@mirantis.com>
Co-authored-by: ChangBo Guo(gcb) <eric.guo@easystack.cn>
Co-authored-by: Chris Behrens <cbehrens@codestud.com>
Co-authored-by: Chris Krelle <nobodycam@gmail.com>
Co-authored-by: David Shrewsbury <shrewsbury.dave@gmail.com>
Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>
Co-authored-by: Dmitry Tantsur <dtantsur@redhat.com>
Co-authored-by: Jim Rollenhagen <jim@jimrollenhagen.com>
Co-authored-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Co-authored-by: Matthew Gilliard <matthew.gilliard@hp.com>
Co-authored-by: Mikhail Durnosvistov <mdurnosvistov@mirantis.com>
Co-authored-by: Pablo Fernando Cargnelutti <pablo.fernando.cargnelutti@intel.com>
Co-authored-by: Robert Collins <rbtcollins@hp.com>
Co-authored-by: ryo.kurahashi <kurahashi-rxa@necst.nec.co.jp>
Import Ironic Driver & supporting files - part 5

Import the Ironic virt driver and supporting files (driver part 3 -
remaining functionality), as well as relevant
unit tests, as of commit da967d77894be6f23d81fb5cc948f9d13898ba84

This is the dicing up of review/103167 into smaller chunks
ready for review.

Change-Id: I3d1ac1c5c7bc6f94eb77769097ec5e93cdd7468b
Co-authored-by: Adam Gandelman <adamg@ubuntu.com>
Co-authored-by: Andrey Kurilin <akurilin@mirantis.com>
Co-authored-by: ChangBo Guo(gcb) <eric.guo@easystack.cn>
Co-authored-by: Chris Behrens <cbehrens@codestud.com>
Co-authored-by: Chris Krelle <nobodycam@gmail.com>
Co-authored-by: David Shrewsbury <shrewsbury.dave@gmail.com>
Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>
Co-authored-by: Dmitry Tantsur <dtantsur@redhat.com>
Co-authored-by: Jim Rollenhagen <jim@jimrollenhagen.com>
Co-authored-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Co-authored-by: Matthew Gilliard <matthew.gilliard@hp.com>
Co-authored-by: Mikhail Durnosvistov <mdurnosvistov@mirantis.com>
Co-authored-by: Pablo Fernando Cargnelutti <pablo.fernando.cargnelutti@intel.com>
Co-authored-by: Robert Collins <rbtcollins@hp.com>
Co-authored-by: ryo.kurahashi <kurahashi-rxa@necst.nec.co.jp>
Improve Ironic driver performance: patch 6

As part of some large scale operational testing, some needed
performance improvements in the ironic driver have been
identified.  These changes have been reviewed and have been
merged into the ironic tree previously (reviews 108545 & 113036)

Change-Id: I635b974353a9dee542739857aa9778bf1e78cca8
Co-authored-by: Jim Rollenhagen <jim@jimrollenhagen.com>
Co-authored-by: Chris Behrens <cbehrens@codestud.com>
Ironic driver backports: patch 7

The patch to remove the dependency on python-ironicclient was
misplaced in the split of 103167 into the series of smaller
patches that we're now reviewing.  This patch reinstates this
change so ironicclient is loaded dynamically, and does not
become a requirement for Nova when not using Ironic.

Change-Id: I70a2fa8fc45e18524ea4d777d72da24d5d329c25
Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com>
Don't elevate context when rescheduling

The rescheduled launch should be executed with the same context
as the original request, so make sure that we aren't passing an
elevated context to reschedule.

Change-Id: Ic528f10067fa2977cc375c41b9c65d3517524ff8
Resolves-bug: 1366181
Merge "Support image property for config drive"
Merge "Add API schema for v2.1 "update a server" API"
Merge "Add API schema for v2.1 "rebuild a server" API"
Merge "virt: add method get_serial_console to driver"
Merge "Add API schema for v2.1/v3 server_metadata API"
Merge "Convert rescue v3 plugin to v2.1 API"
Merge "VMware: image user functions for spawn()"
Merge "VMware: spawn refactor enlist image"
Merge "VMware: remove unused _get_vmdk_path from vmops"
Merge "Use NetworkRequest objects through to nova-network"
Adds ephemeral storage encryption for LVM back-end images

This patch adds ephemeral storage encryption for LVM back-end instances.
Encryption is implemented by passing all data written to and read from
the logical volumes through a dm-crypt layer. Most instance operations
such as pause/continue, suspend/resume, reboot, etc. are supported.
Snapshots are also supported but are not encrypted at present. VM rescue
and migration are not supported at present.

The proposed code provides data-at-rest security for all ephemeral
storage disks, preventing access to data while an instance is
shut down, or in case the compute host is shut down while an instance is
running.

Options controlling the encryption state, cipher and key size are
specified in the "ephemeral_storage_encryption" options group. The boolean
"enabled" option turns encryption on and off and the "cipher" and "key_size"
options specify the cipher and key size, respectively.

Note: depends on cryptsetup being installed.

Implements: blueprint lvm-ephemeral-storage-encryption
Change-Id: I871af4018f99ddfcc8408708bdaaf480088ac477
DocImpact
SecurityImpact
Merge "Allow _poll_bandwidth_usage task to hit slave"
Merge "libvirt: persist lxc attached volumes across reboots and power down"
Merge "Port v2 image_metadata extension to work in v2.1(v3) framework"