populate dnsmasq lease db with valid leases

At start dnsmasq retrieves its lease db by calling the nova-dhcpbridge
script with the init action.

Previously we were returning all allocated IPs in the network and
calculating the lease exirpation time based upon instances.updated_at
or instances.created_at.

Now we are only returning entries for IPs that are allocated and leased.
Additionally we set the lease expiration time to be i
now + CONF.dhcp_lease_time

Change-Id: Ie3b4fafd38094dc01ceea592ab5229e581193512
Fixes: bug #1103260
Relax API restrictions around the use of reboot

Fixes bug 1101082 bug 982108

Reboots are the only sledge hammer users have available to resolve
issues with their instances without administrative intervention.
This patch modifies the API policy to allow reboot calls to be made
in many more power and task states.

Change-Id: Ia8702448f6b7b863da40e4d498f2e2ee0a12882e
Refactoring/cleanup of compute and db apis

Refactor db call usage and remove some unused code.

Change-Id: I49466f7ab54dd6dbf0fc78bab3d2df44392ba3ee
fix nova-baremetal-manage version printing

version.version_string_with_vcs is no longer present

Change-Id: Iaecf793b82c030f7095de7e42222e28869d1cf33
Add option to control where bridges forward

This adds a new config option to control where bridges can forward.
The default behavior is unchanged, but if you specify:

forward_bridge_interface=foo

Then only traffic on the same bridge or going to and from the foo
interface will be allowed. This is useful in vlan mode when a
deployer doesn't want traffic to be routed between vlans. Note
that forward_bridge_interface can be specified multiple times and
should be specified once for each interface that supports floating
ips. i.e.:

forward_bridge_interface=eth0.10
forward_bridge_interface=eth0.20

DocImpact

Change-Id: I82d6b288b60cd6deae64690b55546730b1c2da55
Remove deprecation notice in LibvirtBridgeDriver

After further discussions with Quantum team, it was agreed
not to deprecate the existing libvirt VIF drivers until the
Havana release, to allow more time for Quantum plugins to be
updated.

Blueprint: libvirt-vif-driver
Change-Id: I0226c4117630de489543d35662a8ee6b6c7729f9
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Extend extension_authorizer to enable cleaner code.

I have seen and used two different methods for authorizing multiple
methods in a class, and both use code duplication that won't be
necessary with this patch.

The first method involves creating multiple authorizers, which can get
out of hand quickly.  i.e.:

authorize_attach_index = extensions.extension_authorizer('compute',
                                                'volume_attachments:index')
authorize_attach_show = extensions.extension_authorizer('compute',
                                                'volume_attachments:show')

The second method involves creating an intermediate method in the
extension like:

def authorize(context, action_name):
    action = 'os-networksv2:%s' % action_name
    extensions.extension_authorizer('compute', action)(context)

but this ends up getting duplicated in each file.  This patch allows
extensions to use the authorizers they already have but gives them finer
control by passing something like "action='index'" to the authorizer.

Change-Id: I6371b2c631acc9345ee6ca4672afa1f49781f22b
Condense multiple authorizers into a single one.

Reduces code duplication by creating a single authorizer and passing in
the action that should be checked against policy.

Change-Id: I33cfee8695ddfbba39038fbc608c6c74d258745f
instance.update notifications don't always identify the service

instance_update in conductor/manager.py doesn't identify the service
when calling notifications.send_update(), resulting in mesages on the
notification queue having a service value of None.

This change makes sure that the correct service is identified even
when running conductor in local mode

Change-Id: I1b22c0b46040f51ba715a4d9fa19ef4c98359070
Quantum metadata handler now uses X-Forwarded-For

fixes bug 1097524

The guest IP address was not properly forwarded from the Quantum
metadata proxy.  This patch adds support in Nova for reading this
X-Forwarded-For header.  Previously, the internal proxy IP was
mistakenly used exposing internal infrastructure details.

Change-Id: I6d7d21e2aea4ca5debf1ca4ba6802012537f78a5
import tools/flakes from oslo

Change-Id: Id6d99fe1fd39e8c061f591e9a82058aea9664674
Postgres does not like empty strings for type inet

Check for empty string and explicitly set address to None

Fixes LP# 1112536

Change-Id: Ib6f1ca9ab4dd11a53e2ab8057664136166b4c616
Mark password config options with secret

Config object supports masking values when writing out if the secret
flag is set on the option definition.  This change flags all nova
options containing a password.

Change-Id: I538c93bac736c317822b5d78b53c4181b2009b49
Make system_metadata update in place

This makes the system_metadata updated in-place like regular
metadata during instance_update(). It also modifies that function
to avoid actually removing the item from the list, which will cause it
to be deleted from the database when the session ends. The soft_delete
is sufficient for our purposes.

Related to blueprint no-db-compute

Change-Id: I0da28ec485dc7850d246dab0a2bb95ae10c05c3e
Merge "Remove deprecation notice in LibvirtBridgeDriver"
Merge "Postgres does not like empty strings for type inet"
Merge "Quantum metadata handler now uses X-Forwarded-For"
Merge "Refactoring/cleanup of compute and db apis"
Merge "populate dnsmasq lease db with valid leases"
Merge "fix nova-baremetal-manage version printing"