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
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
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
Avoid RequestURITooLong exception in metadata agent

Length of API port query is proportional to number of networks
and may exceed URI limit. The solution is to query ports by
given ip address only and then filter them by network_id.

Closes bug 1348097

Change-Id: I2a87d6b215df380b24dd5ebb24947e8729f3f6fb
Encapsulate some port properties in the PortContext

Bindings to host or status may need further encapsulation
to avoid exposing mechanism drivers to underlying DB model
details. This was particularly true in the case of the
l2pop mech driver.

As a result, some docstrings were reworded, and the newly
introduced properties used directly in the mech drivers.

Partially-implements: blueprint neutron-ovs-dvr
Supports blueprint: ml2-hierarchical-port-binding

Change-Id: If2a373ef04d19b164585fb4bde4fe6e0cfaf43be
Add definition for new VIF type

The type VIF_TYPE_DVS is added. This indicates that the port
will be added to a VMware distributed virtual switch.

This is for blueprint vsphere-neutron.

Change-Id: I1b5df837734af9a3f7d48b60de120592b11e392e
Merge "Encapsulate some port properties in the PortContext"
Merge "VPNaaS: Separate validation for Cisco impl"
Set python hash seed to 0 in tox.ini

New tox (>=1.7.0) sets a random python hash seed by default. This is
generally good for testing because it will help keep projects working
regardless of the hash seed, but neutron unittests don't currently pass
with a random hash seed so set it to the python default seed.

This change will allow us to use new tox again and remove the
restriction on tox<=1.6.1 to run unittests.

Note this change will need to be backported to the stable branches to
keep unittests there working with new tox as well.

Change-Id: If151efeb8caae3111515191e238d6e6ae491cd44
Merge "Set python hash seed to 0 in tox.ini"
Merge "Add definition for new VIF type"
Merge "Avoid RequestURITooLong exception in metadata agent"
Merge "Cisco: Fix test cases which make incorrect create requests"
Remove redundant code in tests/unit/test_l3_agent

Change-Id: I87d09507cb9e9e37179d6d2035b211aa99f37260
Make test_l3_agent._prepare_router_data a module function

Remove an unneeded class variable, allowing _prepare_router_data
to be changed to a module level function. This allows the function
to be reused by other tests cases.

Change-Id: Ia4de3c535c703fbb2528e6cc9594bcd34f50aca1
Merge "Fixed audit notifications for dhcp-agent-network"
Set promote_secondaries when creating namespaces

there is a sysconf entry which controls how deletion of the primary ip
is performed (/proc/sys/net/ipv4/conf/all/promote_secondaries). when set
instead of deleting the secondary addresses, one of them will be
promoted to primary ip.

Without it, when init_l3 called on a port, it may unexpectedly delete
some useful ips.

Change-Id: I0b1b3bd6ade21129532c842daa31059ea164719e
Closes-bug: 1343320
Merge "Remove redundant code in tests/unit/test_l3_agent"
Merge "Make test_l3_agent._prepare_router_data a module function"
Merge "Set promote_secondaries when creating namespaces"