sync periodic_task fix from incubator

Set the value of time the periodic task was last run to a multiple of the
spacing value rather than the actual last time run. This ensures tasks runs
regularly but avoids synchronizing that interval with other nodes.

This patch also removes the coalescing of tasks which are _nearby_ (0.2
seconds away).

4dbd3aa Make periodic tasks run on regular spacing interval
21249f1 Fix parenthesis typo misunderstanding in periodic_task

Change-Id: I8873545578f104fd204fbc25493350128b2bc8d4
Bump min required version for dnsmasq to 2.63

This patch bumps the min version requirement from 2.59 to 2.63
for dnsmasq which is needed to use multiple tags for dual stack IPv4/6.

DocImpact

Change-Id: Ib71b8a3a866f5781b57d1589741bcaae594b76db
Closes-bug: 1233339
NSX: remove unnecessary checks on network delete

Since commit b50e66f router interfaces are not deleted
automatically when the network hosting them is deleted.

The NSX plugin still has additional logic to ensure all the
corresponding backend resources have been deleted as well.
Such logic is now obsolete and can be removed. Moreover it
also wasteful as it perform queries for retrieving NSX
resource identifiers.

This patch also amends a few related log statement to make
them clearer.

Change-Id: If3d8d98096a8363b216707f2558e37c80f58e515
Closes-Bug: #1339401
Move _convert_to_nsx_transport_zones into nsx_utils

This routine does not need to be in the plugin class. This patch
transforms it into an utility method and adds unit tests to
increase coverage.

Change-Id: Ieacc36e729c4db90efd33944f7cf05dcb30e1de9
Closes-Bug: 1340210
Split up metering test case into plugin + test case

Currently the metering test case includes setUp code as well
as the tests themselves. Splitting up the test case class
into two allows other test cases to inherit the metering
plugin class without inherting (And implicitly re-running)
the tests themselves.

Closes-Bug: #1336198
Change-Id: I4427fcd17cc3d28189f9f74df487084cf35c1634
Clear entries in Cisco N1KV specific tables on rollback

During rollback operations, resources are cleaned up from neutron
database but leaves a few stale entries in the n1kv specific tables.
This change addresses the proper clean up of tables. i.e. VLAN/VXLAN
allocation tables, profile binding and vm network table.

Change-Id: I7a09d34f3a9dee0a43b76c5d781ee9eb9938953a
Closes-bug: #1336596
Missing max_routes in neutron.conf

We have the define of "max_routes" in neutron/db/extraroute_db.py
but we do not have them in neutron.conf.

Change-Id: I4a9586023b7d09a64296b44f4d9285f30be1fd63
Closes-Bug: #1341378
NSX: Optionally not enforce nat rule match length check

This patch adds the 'raise_on_len_mismatch' parameter to the
'delete_nat_rules_by_match' function. The plugin then leverages
this parameter for ensuring NAT rules deletion operations
are completed successfully even when duplicate rules are found
or no corresponding rules are found at all.

With this change, the 'remove_router_interface' operation will
correctly complete even in cases when NAT rules in Neutron and
the NSX backend are out of sync.

This patch also changes a check in delete_nat_rules_by_match in
order to make it less expensive.

Closes-Bug: 1328181

Change-Id: I856d67ef5ff6264374cb8f2569668da4c205ad9f
Cisco: Fix test cases which make incorrect create requests

Some test cases in the test_n1kv_plugin module are sending more than
one dictionary while creating the network profile resources. This
patch corrects these erroneous test cases while preserving the test
cases intended behavior.

Change-Id: I99de0b708218cf5217ecf47c74a30f75d0733e25
Closes-bug: #1347963
Use method's logger in log decorator

Previously decorators shared logger. This patch makes LOG object in
closure for every decorated method in order to use correct logging
level.

Closes-Bug: #1340778
Change-Id: If907acbab34f8bf23e1277e66c3ddd839f668764
update vsm credential correctly

Today if we modify the n1kv VSM credential in the cisco_plugins.ini, the
older VSM ip address remains in the db, and all requests are sent to
the older VSM. This patch deletes all n1kv VSM credentials on neutron
start up before adding the newer VSM credentials. Hence making sure
that there is only one n1kv VSM IP address and credential in the db.

Change-Id: I772a86bf896a1d3d9c69c545ce6918b0fe3a2e48
Closes-Bug: #1341014
NSX: Remove unneed call to _ensure_default_security_group

This patch removes an unneeded call to _ensure_default_security_group
which does not need to be called in create_security_group_rule_bulk()
as one would need to call get_security_groups() to look up the uuid
of the default security group which be would created it for us, BOOM!

Change-Id: I628a94c7ea9553dcefa68fa956f25244f0abbb18
Closes-bug: 1340536
Support Quota extension in MidoNet plugin

Implements: blueprint midonet-support-quotas-ext

Change-Id: I848e36273b655355e5a833c48d7be417df95c7f4
Log methods using rpc communcation

In Icehouse was used rpc library from oslo-incubator. Because the code
wasn't mature enough it was running in DEBUG mode. After migrating to
oslo.messaging we don't need to have debug level in oslo.messaging but
it's good to have communication logged.

Closes-Bug: #1340696
Change-Id: I4f68545053912f96affc1bbcd64fcd7efe8d18c0
VMWare: don't notify on disassociate_floatingips()

L3 agent notifications don't make sense for NSX VMWare plugin since
there is no L3 agent in such setup, so disabling them here.

Updated a unit test to check that notification is indeed not requested.

Change-Id: I9c7c32d02d466098d22df8f10448361c3d99174c
Related-Bug: 1330955
VPNaaS: Separate validation for Cisco impl

Moving validation logic from Cisco service driver, into a
validation subclass, so that it'll be applied during the
persistence phase (so validation failures can block the
persistence, instead of setting to error state).

This is part of the effort to separate out L3 validation
and builds upon the reference implementation changes being
reviewed in 102351.

Note: One unit test is commented out, due to a bug in
oslo.messaging 1.3.0. It will be uncommented later, once
1.4.0.0.a3 or newer is available for use.

Change-Id: I6040e6d8ab32b707bcf67a0882507b7ee2d4bebe
Partial-Implementation: blueprint l3-svcs-vendor-validation
Return a tuple of None's instead of one None

The expected return value of _commit_port_binding is something that
can be unpacked into two values. This changes the condition where a
concurrent delete was detected to return a 2-tuple of None's
instead of a bare None to prevent an iterable error.

Closes-Bug: #1342880
Change-Id: I9d3a51eab33819ffda6a65a00c3b5d1006a3577e
Make readme reference git.openstack.org not github

Point to our offical mirror instead of github.

Change-Id: I43c3d5ce4f92f35ed4fe5bddce5a5d19016ab988
Fixed audit notifications for dhcp-agent-network

dhcp-agent-network-add and dhcp-agent-network-remove do not
generate audit notifications which are used for security
compliance.
CRUD operations of core network resources are handled by
neutron/api/v2/base.py. In base.py, each of create(), update(),
delete() methods makes calls to oslo.messaging.Notifier.info()
to generate these notifications.
In the proposed fix, it is fixed in a similar fashion in
extensions/dhcpagentscheduler.py inside create() and delete()
methods by introducing info() method calls inside them.

Change-Id: Ia23b981b2fbe739d22ebaa7bb0975fb9e39f881b
Closes-Bug: 1317008
Initialize RpcProxy objects correctly

RpcProxy class is used as base in classes with multiple inheritance
(ex. MeteringAgent). To initialize objects of such classes correctly
every constructor should call its base constructor via super().__init__()

Closes bug 1332788

Change-Id: I00ef804b6ee6c73dec3e177202bb85311e3e2b10