validate and recommend the cidr

Bug #1195974

It is hard to validate the CIDR typed in by user,
the simple way is to recognize only one and recommend it
if user's input is not the one.

Change-Id: Ic8defe30a43a5ae69c3f737094f866b36bb68f59
Apply Oslo ModelBase to NeutronBase

Oslo.db has ModelBase which implements most of NeutronBase's code.
Therefore NeutronBase should inherit from ModelBase to keep things DRY.

Fixes bug #1171055

Change-Id: I1a08636a6aa225da8b5d43a0bbcb9b59c057df42
git remove old non-working packaging files

implements bug: 1198774

Change-Id: Iebd3eb22dd7e3b93131c298e01ac4bcf1fea004e
Improve lbaas haproxy plugin_driver test coverage

 - also removes unnecessary delete_health_monitor() from haproxy plugin_driver

Fixes bug 1191007

Change-Id: Ic9ec1f705a94a2e246d1a4985e72e9c58d48191d
Limit min<=max port check to TCP/UDP in secgroup rule

icmp_type and icmp_code are mapped to port_min_range and port_max_range
respectively. For ICMP there is no constraint between type and code.
Thus port range min<=max check should be enforced only for TCP and UDP.

Also makes sure that ICMP type/code are 0 to 255 (both inclusive).
Previously a value with 0 to 65535 were accepted for ICMP type/code.

Fixes bug 1197760
Fixes bug 1197769

Change-Id: I70aaf6e02fee461fa97dc254db906d9efa173669
Import Oslo's common rootwrap to Neutron

Use the common oslo-incubator rootwrap rather than maintain a
specific fork within Neutron.

- Migrated DnsmasqFilter use in dhcp.filters to the new EnvFilter
- Changed environment passing in ip_lib's netns.execute so that
  it can be properly matched using IpNetNsExecFilter + EnvFilter.
  It now calls "ip netns exec ns env A=B C=D command" instead of
  "A=B C=D ip netns exec ns command". Adjusted tests accordingly.

All the other changes are coming directly from the Oslo "rootwrap"
module sync.

Notes:
- Neutron locates its rootwrap.conf in etc/ rather than in etc/neutron
- Neutron maintains a specific bin/quantum-rootwrap-xen-dom0 which
  requires additional config in rootwrap.conf

Both behaviors were preserved in this commit, but this may need to be
addressed in the future to simplify future oslo-rootwrap updates.

Implements bp: quantum-common-rootwrap

Change-Id: I02879942a9d1169a71aa4d684c1b9ec109a6de32
Preserve packet:byte counts in iptables_manager.

Ported the nova iptables manager code to neutron, so that we
use iptables-save/restore with the -c flag to save/restore
the chains and rules with their packet:byte counts.  All other
changes were ported as well to keep the code as similar as
possible between the two, although they will be different as
I had to fix other bugs found during testing.

Updated tests accordingly to account for new calls and
input/output changes in formatting.

Changed iptables_firewall code to add iptables rules in the same
order that iptables-save will print them: source/dest, protocol,
sport, dport, target; else iptables_manager won't be able
to find them to preserve their [packet:byte] counts.
Tweaked other rules accordingly as necessary.

Fixed a bug introduced in an earlier version of this patch where
_modify_rules() sometimes wouldn't match an existing rule correctly
if not top=true.

Fixes bug 1125393

Change-Id: I858c552d8a7ae24f52f8e8daa05ac37026705773
Allow router route update in XML.

Fixes: bug 1198188

Router updates of routes in XML format fails.
This patch fixes that problem. It also executes
unit tests for XML-based requests to update
router routes.

Change-Id: Ie65e889a29a3ca9242593d51587de60c8d97e055
Register agent schedulers options in one place

Currently agent schedulers options are defined in neutron.scheduler and
every plugin that supports scheduling should register them individually.
It is reasonable to define and register options in one place - agentschedulers_db.

Fixes NeutronManagerTestCase when running separately by importing missing config option

Fixes bug 1198904

Change-Id: Ia9c1ad3fb4b71796401ef5507f741f3cc024a4da
Merge "validate and recommend the cidr"
Fix for Cisco plugin sample config.

This commit fixes the Cisco plugin's sample config included with Neutron to change all instances
of quantum within the config to neutron.

Change-Id: I80a8b69816ad964ee9761a214aaa5e81e596d501
Fixes: Bug #1199160
Ensure that the neutron server is properly monkey patched

The legacy 'quantum-server' script will apply the eventlet
monkey patch whereas the new 'neutron-server' entry point
does not.  This prevents the server from properly handling
the REST interface.

Fixes bug #1199383

Change-Id: I498d2b02e6018425fc4538eff6803df8971f8e82
Merge "Allow router route update in XML."
Imported Translations from Transifex

Change-Id: I6f29f21c031370a64c8ae75652936762170406f9
Merge "git remove old non-working packaging files"
Merge "Ensure that the neutron server is properly monkey patched"
Allow gateway address to be unset for an existing subnet

Validation of the gateway IP address was taken place even
if the gateway IP was set to None; this was causing an
AddrFormatError exception to be raised by method
'_validate_gw_out_of_pools'. With this change we skip
the validation in case the gateway is set to None.

Fixes bug #1178273

Change-Id: Ib84378a4fd2cefdbbcacce695abbfaf82c647dd3
Improve DHCP agent performance

Previously when starting the dhcp agent the sync_state() process would
be extremely expensive as it would query quantum server for each network.
In order to improve performance a get_active_networks_info() was added
so this information could be retrieved in one query rather than doing a
query for each active network.

The second part of this patch optimizes the logic to avoid calling
get_dhcp_port(). Previously, this method was called once for each network
which makes a call to get_subnets() and get_ports() unnecessarily as
the dhcp agent can determine itself if it needs to update a port or create a
port for dhcp.

This patch also threads the inital sync process and maintains backwards
compatibility with the previous rpc api.

There was also a trivial change to the nvp_plugin where filters are assumed to
be a dict.

implements blueprint improve-dhcp-agent-performance

Change-Id: I3b631057f595250dad76516faa9b421789f60953
Add cover/ to .gitignore

When we run "tox -e cover" to generate coverage report, testr will make
"cover" directory which contains the same html in "covhtml" made by
"./run_test.sh --coverage".  So, make git ignore this directory.

Change-Id: I829667a1ceb55418a5695545ad543a53f63821ba
port-update fails when using SELECT FOR UPDATE lock

In Postgresql, it will throw the bellow exception when
using SELECT FOR UPDATE lock combined with outer join.
"SELECT FOR UPDATE/SHARE cannot be applied to the
 nullable side of an outer join"

The reason can refer http://www.postgresql.org/ \
message-id/21634.1160151923@sss.pgh.pa.us

for this issue, I don't think outer join is necessary，
so I change it to use inner join.

Fixes bug #1191653

Change-Id: Ifc9ecad91324ce28399431ea77fe0865b6d8e523