Add a tunable to control how many ARPs are sent.

This new flag, send_arp_for_ha_count, controls how many
ARPs are sent when binding a floating IP address to an
instance.  Also increased the default number to 3 from 1,
to make this more robust and guarantee other network
devices see them.

Fixes bug 1043796.

Change-Id: Ib9118fcc5334ef4a8c5d7a5e765364e26fea68da
Fix EC2 cinder volume creation as an admin user.

Updates the EC2 API _format_volume function so that it
only tries to add project_id and host to responses if those
keys are present.  This resolves a KeyError that would occur when
using Cinder because volumes from it don't contain this
information.

Fixes LP Bug #1046464.

Change-Id: I56b977cfd1ae482f2559a3f1fda8d1543d3ea227
Implement paginate query use marker in nova-api

1.add limit and marker param to db.instance_get_all_by_filters()
2.set the filter use marker
3.execute limit before sqlarchmy get_all()
4.add testcase 'test_db_api.test_instance_get_all_by_filters_paginate'
5.related testcase:
    test_get_servers_with_marker()
    test_get_servers_with_limit_and_marker()
  in nova/tests/api/openstack/compute/test_servers.py
    test_instance_get_all_by_filters_paginate()
  in nova/tests/test_db_api.py
6.add InvalidSortkey exception

Implement bp:efficient-limiting.

Change-Id: Iea3eeb7b51194b6017d624506aafc6469d7338e4
Fake requests in tests should be to v1

v2 does not exist, yet.

(cherry-picked from cinder commit ac1b465)

Change-Id: Id3a332c4d78c87882a7db1a8b98479a3881b0a5f
Use volume driver specific exceptions

Change generic use of exception.NovaException in the nova/volume directory
to specific exceptions. The exceptions used in this patch are:

 exception.VolumeBackendAPIException
 exception.InvalidInput
 exception.InvalidVolume
 exception.VolumeAtatched

Patch includes updates to the appropriate tests as well.

(cherry picked from cinder commit 3905a99)

Change-Id: I10407ff3f5babe64e88f445d3529269b7665ee16
Call driver for attach/detach_volume

The volume driver may want to know which guest is going to be
attached to a volume. The manager now calls down into the driver
on attach_volume and detach_volume.

Fixes bug 1038109.

(cherry picked from cinder commit 17538890)

Change-Id: I084c2d09a1871fa158312f9ba479abb474da1d28
Fix typo in tgtadm LOG.error() call

Fixes bug #1046875

Fix typo in LOG.error, it should be vol_id rather than volume_id.

(cherry picked from cinder commit d6a5d0f)

Change-Id: Id162c6f185a110b63e8f9f509f5cde75f3626cbf
Signed-off-by: Chuck Short <chuck.short@canonical.com>
Stop lock decorator from leaving tempdirs in tests

In some versions of python 2.7, we must use the nonlocal keyword to
give an inline function access to a variable in the enclosing scope.
This leads to a tempdir not beaing cleaned up because a boolean in
the synchronized decorator doesn't get set properly. Since we are
still supporting python 2.6, this patch removes the method call
completely so we don't have to worry about locality.

The patch also moves acquiring the lock  inside the try, except to
make sure the tempdir is still cleaned even if there is some issue
with getting the lock.

Fixes bug 1047530

Change-Id: Ie3da18262e67de076b1e474c24edd2e4e5208646
Merge "Fix EC2 cinder volume creation as an admin user."
Merge "Add a tunable to control how many ARPs are sent."
Merge "Implement paginate query use marker in nova-api"
Merge "Fake requests in tests should be to v1"
Refer to correct column names in migration 98

Database migration 98 was referring to local variables rather than
actual column names in update calls. This patch changes those
references to be the actual column names.

Fixes bug 1047633

Change-Id: I8ceead5be32f5f56b7d15c8bed23836b29fb382a
Merge "Use volume driver specific exceptions"
xenapi: Make dom0 serialization consistent.

The dom0 plugin code had been using `pickle` for serializing input and
`json` for serializing output which was needlessly inconsistent. This
patch makes the code use `pickle`--chosen for its better handling of
`datetime` objects--for both sending and receiving data.

This patch also refactors the code so that neither the caller nor the
callee need to explicitly worry about serialization: the caller just
passes in args and kwargs, and the callee's function signature just
accepts the args and kwargs as usual.

Bonus: Removes unecessary imports

Change-Id: I3abb42eeebd8d37d67e6c26fa7bcae66d876b3ee
Merge "Call driver for attach/detach_volume"
Merge "Stop lock decorator from leaving tempdirs in tests"
Merge "Refer to correct column names in migration 98"
Merge "xenapi: Make dom0 serialization consistent."
Execute attach_time query earlier in migration 98

MySQL was blowing up when sqlalchemy tried to execute the subqueries
in up/downgrade for migration 98. SQLite wasn't blowing up on this so
the tests were passing in Jenkins.

There are no test changes as it depends on the functional environment
in which you run the tests, not the tests themselves.

Fixes bug 1047665

Change-Id: I6eb3c8dd03495cdda2574efc9b5fc2b495fbcb37