Allow Ironic URL from config file

Currently when using username/password auth from configs with
ironic client, it's not possible to specify the ironic URL in
a config file. This commit makes that possible.

Change-Id: Ib99c48c2f80abaf42b08f36af942535d7c9ac5d1
Move the 'instance_info' fields to GenericDriverFields

The instance_info parameters are common across all drivers and not
just for PXE drivers.

This patch corrects an issue in nova/virt/ironic/patcher.py by moving
the generation of the instance_info patch to the common base class.
It also adds notes stating the intent to remove the PXE-specific
patching in Kilo.

Closes-Bug: #1353631
Change-Id: I80d2208d41d21821f0da662637418ecd76b5db2b
Merge "Move the 'instance_info' fields to GenericDriverFields"
backport reviewer comments on nova.virt.ironic.patcher

Backport comments on the Nova driver review in
https://review.openstack.org/#/c/111423/
to Ironic's tree.

Change-Id: If5939e3dcc3686046e0fc7989114d25270f034e8
Add posix_ipc to requirements

Change-Id: Ia564f7d7653c1abcb732b8261ee9ec99323d0f43
Closes-Bug: 1354078
Imported Translations from Transifex

Change-Id: I9bdf526891a67287792e392a2491dbd004d7fb04
Add iPXE support for Ironic

As the size of our deploy ramdisk would continue to increase (Ironic
Python Agent) we need a more reliable way to transfer such data via
the network without relying on TFTP. The problem with TFTP is that it's
unreliable and any transmission error will result consequently in boot
problems. This patch adds support for iPXE so that we have the ability
to transfer data through HTTP which is a reliable protocol.

New configuration options added to the 'pxe' group:

- ipxe_enabled: Whether iPXE is enabled or not
- ipxe_boot_script: The path to the main iPXE script file
- http_url: The HTTP server URL
- http_root: The HTTP root path

Two functions from pxe.py were renamed because they are not related only
to tftp anymore:

- _get_tftp_image_info renamed to _get_image_info

- _cache_tftp_images renamed to _cache_ramdisk_kernel (because that's
what this function is about, it fetchs the kernels and ramdisks associated
with the image, not the image itself)

Implements: blueprint ipxe-boot
Change-Id: I8dc7640a19374a9c4d687877ea6c0ff1ebc13979
Add create() and destroy() to Chassis object

What it says. Also make the code and tests use them vs direct calls
to dbapi.

Partial-Bug: 1314732
Change-Id: Iabd62baba09e2f8ea94ed3aab417b6a63ea14ec4
Use timeutils from one place

Usage of timeutils from different places (from oslo.db and from ironic)
can produce errors (for example, during porting oslo.db to using
oslo.utils, see https://review.openstack.org/#/c/111701/ )

So we need to remove all imports 'oslo.db.openstack.common.timeutils' and
don't use `oslo.db.sqlalchemy.models.TimestampMixin`, until ironic and
oslo.db will use timeutils from one place(from oslo.utils).

Related-Bug: #1354443

Change-Id: I53f519570df3351b6acf019d89f67b43d8b637da
Merge "Add iPXE support for Ironic"
Merge "Add posix_ipc to requirements"
Correct `op.drop_constraint` parameters

`drop_constraint` method require `type_` parameter, when called with
MySQL.

> type_ – optional, required on MySQL. can be "foreignkey", "primary",
"unique", or "check".

Change-Id: I069a74ea60ba678fb128f27858db169f4dac89a6
Closes-Bug: #1354463
Merge "Use timeutils from one place"
Merge "Correct `op.drop_constraint` parameters"
Merge "Imported Translations from Transifex"
Add create() and destroy() to Port object

What it says. Also make the code and tests use them vs direct calls
to dbapi.

Partial-Bug: 1314732
Change-Id: Ic85b63a02722dd9657d1f2d2f1ad86fd8b78a061
Remove direct calls to dbapi's get_node_by_instance

Small patch to patch remove the direct calls to dbapi's
get_node_by_instance. It's replaced by Node.get_by_instance_uuid().

Partial-Bug: #1314732
Change-Id: Idfcab25edbc950ce8093b4e0987be5a885828530
Reduce running time of test_different_sizes

Unit test test_different_sizes from RealFilePartitioningTestCase tests
26 variants of partitions sizes and applies each of them to a file,
therefore running time of this test more than 30s. This patch reduce
variants to some "typical", running time now about 5s.

Change-Id: I072666009f4ecca51e84a6dc71257d725aaf2f42
Add method for deallocating networks on reschedule

Per nova baremetal commit d3854f2c05502c7407d716da7d1bd7f1ca3e0a15
we should now return True from the deallocate_networks_on_reschedule
Nova compute Ironic driver.

Change-Id: I54a3252ab15e2d8b596ccc90eb4755405021f1da
Merge "Reduce running time of test_different_sizes"