Fixed a problem in iSCSI multipath

Multipathing for attach volume and detach volume operations
doesn't work properly if there are different targets
associated with different portals for a mulitpath device.

Change-Id: Iab316526cf64de60325d90043f73fa3e83fafb4e
Closes-Bug: #1266051
Adds host_ip to hypervisor show API

After no-compute-fanout-to-scheduler, host_ip was stored in the table
of compute_nodes. Host ip address should be considered as the hypervisor
attribute similar to the hypervisor_type, hypervisor_version etc, and
now those attributes such as hypervisor_type, hypervisor_version etc
are all listed as the hypervisor attribute when calling "nova
hypervisor-show host", so we can also set "host_ip" as a new attribute
output for this command.

DocImpact
1) Only administrators can view hypervisor detail in nova.
2) It can help improve debug capabilities for nova. For example, if
admin using SimpleCIDRAffinityFilter, then after VM is deployed, admin
can check if the VM was deployed successfully to the desired host by
checking ip address of the host via "nova hypervisor-show host".
3) Add host_ip to the output for "nova hypervisor-show"

Implement bp hypervisor-show-ip
Change-Id: I006a504d030be1f47beb68a844647026a6daf0ce
Removes XML namespace from V3 API test_servers

This patch removes XML namespace from v3 test_servers.py

Partially implements blueprint remove-v3-xml-api

Change-Id: I3fae9c6a08df4a711250bd52e7a3f97b623f76f3
Fixed check in image cache unit test

Before the fix assert checked nothing bacause .sort() sorts
provided list and has no return. Comparison of two None objects
is always true.

Change-Id: I3d453a29b5913cd24ce8d9e4a2324c7ad8d138b7
Fix the indents of v3 API sample docs

There are some indent typos in v3 API sample docs.
Most API samples' indents are 4 spaces, but some samples' indents
are 2 spaces. This patch fixes them.

These typos have been found during the work for auto-generating API
API sample docs from API validation schemas. The auto-generator'll
output API sample docs with json.dumps() method and that would make
the difference between current docs which are fixed with this patch
because the generator would make API samples consistent.
This patch's purpose is also for preparing the generator.

Change-Id: Ieb6e587fcf4c01c128199950db93e1087bc43f41
Fix copyright messages after admin actions split for V3 API

Adds copyright messages that were accidentally not duplicated
in the new files during the code separation.

Partially implements blueprint v3-api-admin-actions-split

Change-Id: Icc3be739f86be740ae06aecba9e5166cc49ef1e2
Fix assertEqual parameter order post V3 API admin-actions-split

Post admin-actions-split cleanup to fix the order of parameters
in assertEqual tests for the testcases split out during the
bp v3-api-admin-actions-split.

Was originally part of https://review.openstack.org/#/c/73724 but
was split out into a separate patch at the request of a reviewer.

Partially implements blueprint v3-api-admin-actions-split

Change-Id: I28332d595c073e518e1bcd4a3f945492904df5d3
VMware: optimize instance reference access

Fix bug causing nova-compute CPU to spike to 100%.

When there are hundreds of VMs running each time a VM is referenced
all of the VMs in the system will be read by nova-compute and then
filtered according to the UUID.

This is addressed by using an API (FindAllByUuid) which reads only
the specific VM. When a VM is created the config spec will be updated
with the UUID of the VM - that is, the field 'instanceUuid' will be
set. The search is later done on this field.

If the search fails then the old code will be invoked - this ensures
backward compatibility with running VM's. Thus all VM's created
without the 'instanceUuid' set will not be affected.

In addition to optimizing the search we also cache the VM reference.
This ensures that additional calls for the specific VM do not need
to query the backend for the reference.

Change-Id: I00d6c29f46b06d082cf3af0369a69147a3376341
Closes-bug: #1258179
Fixed spelling errors in nova

Change-Id: I2d9fc7278c96bcd9f7d50a1af6db6df56df28111
Remove __del__ usage in vmwareapi driver

The vmwareapi driver uses __del__ in an inappropriate way, which
causes spurious errors to be displayed at inconvenient times. The
python docs clearly detail the caveats of using __del__ (and even
provide a big red warning). This removes the offending code, which
can't work reliably anyway.

Closes-bug: 1262288
Change-Id: I50acb4f1e85650f4c6dffe1a1d25842601be96bf
Make floating_ips module use FloatingIP for associations

This makes the network.floating_ips module use the FloatingIP
object for association operations instead of direct database
access.

Related to blueprint nova-network-objects

Change-Id: I71db51e2ad3a79665140ef21b5960c1ff9ff3a05
Sync log.py from oslo

This change syncs log.py from oslo-incubator with commit
79e8a9a08daf563aa8a8d9280c9a6a27dcafc8f2

To honor RFC5424 add use_syslog_rfc_format config option
(default False, would be deprecated in J after existing
syslog format deprecation) which adds APP-NAME to syslog message
before MSG part to reflect application or service name.
Usable only with use_syslog, otherwise ignored.

During J, the default logging format for syslog should be changed
to always provide APP-NAME, thus use_syslog_rfc_format could be
deprecated in J as well.

Since the rootwrap code was graduating to a separate library,
so the rootwrap related change should just go into oslo.rootwrap
and when oslo.rootwrap is released, nova will pull in the library.

Change-Id: I6018c7322314a4b57052be1ec0fc5fa437069f44
Closes-bug: 904307
Fix option indenting in compute manager

This patch fixes some indenting problems in the compute/manager.py
config option blocks.

Change-Id: I1f68e1393f1a171a7909a206f570b4eebcd4d2d9
adjust version definition for v3 to be only json

the version definition for the v3 API still publicized xml as
a supported mime type. We should not do that.

Part of bp remove-v3-xml-api

Change-Id: Iba87b7ee05f0a89a3f7051d4fea8a91635d7778d
Mark XML as deprecated in the v2 API

Log a warning the first time a server gets encoded as XML.
I didn't see an immediately obvious place to put this warning,
but anyone actually using XML will hit this code path, so it
seems fine to me.

Implements blueprint deprecate-xml-in-v2-api

DocImpact

Change-Id: I4acc15ce5f487738bb34a95c2261a5d05d827d8d
Partially revert "XenAPI: Monitor the GC when coalescing"

This partially reverts commit 270d4f1d6b100c802a65b31d35e406528aa7fd27.

The plugin has been left so the plugin version is not made incompatible
by removing a call, but the call to it from vm_utils has been removed.

I expect this call will be re-introduced in future when we have identified
the cause of the race condition and the appropriate usage.

The original fix was made to fix bug 1258169 where the number of attempts
made were not sufficient, so this revert does not reduce the number of
attempts.

Change-Id: I473b81b9970990b877d1886bb28a96888cc05f98
Closes-bug: 1282822
Periodic task poll_bandwidth_usage can use slave

Host instance lists will be retrieved from a slave
if the deployment has one configured. If no slave
 is configured behavoir remains the same.

There is still some more slaveification that can be
done with the bw_usage_cache queries. I've made notes
and also made a few changes to the db_api so that these
can be used when we get the necesssary bw_usage_cache
object created.

Change-Id: I4286f545573bf81cb036c29d48afa39a14cfad61
Partially-implments: bp-periodic-tasks-to-slave
Fix instance_get_all_by_host to actually use slave

This was not fully plumbed out in the original commit,
thus any calls to this method were not actually making
it to a slave.

Original commit: 62e9829c19e099e3a10b2b54954163b5e780363b

Change-Id: If5b807ff9b6801e6038501220e7b6a42bb6132dd
Add a new compute API method for deleting retired services

Services and related compute nodes cannot currently be deleted
from the command-line.  If a node is retired, the service list
will continue to show the retired services.

A delete service REST method has been added to the compute
APIs to support the command-line removal of retired services.

Blueprint: remove-nova-compute
Change-Id: I655a7f818bb59c8971feb5841feeefafc3a4580a
Flags: DocImpact
stop throwing deprecation warnings on init

We are directly subclassing object, which takes no args on __init__,
and indeed need not have __init__.  If we decide to, for some reason, add a
parent class to this method we might want to add this back, but we won't so we
don't need to care about that.

Change-Id: If58885515b9ae5c682d743dba8e4dfe6c9a5d1d9