Remove "--disabled" for firewall create rule

Allow "--enabled True/False" and remove "--disabled" for consistency across
all commands. Even in other neutron commands, we are using only --enabled
option but not --disabled. firewall-rule-show displays only "enabled" attribute
and there is no "disabled" attribute.

Change-Id: Ie591d827660466a774e431dcb40e04e09773e5f7
Closes-bug: 1327056
Fix listing security group rules

It was failing when there are too many security groups, since we're
hitting a RequestURITooLong exception.

Co-Authored-By: Vincent Untz <vuntz@suse.com>
Co-Authored-By: Ilya Shakhat <ishakhat@mirantis.com>
Change-Id: If94b6a2ed6878efad1224e056ecf43e65e85e821
Closes-Bug: 1271462
Updated from global requirements

Change-Id: I1d4cf640d826e4d18025738511f94b789bb1b62a
Add keystone v3 auth support

This change enables the neutron client to use the keystone v3 API (in
addition to v2).  This allows user domains and tenant/project domains to
be specified.  This is necessary because keystone v2 API is deprecated
as of Icehouse.

The keystone session object (and auth plugin) can now be specified
and are required to use the keystone v3 API.  The existing HTTPClient
is retained for backward compatibility.  See changes in shell.py for
an example of how to construct the session and auth plugin.

Implements: blueprint keystone-api-v3-support

Change-Id: I9d0395d405b9fbe4db08ad3727f9413be7b82811
Provide support for nested objects

With the introduction of the LBaaS v2 API, all objects are capable
of normal CRUD operations. Until now these objects were mostly top-level
constructs, and in then instances where they weren't, they were
manipulated by way of 'actions.'

LBaaS v2, as designed, nests members under pools, and supports all
normal CRUD operations. This means that in order to take action against
a member we need to provide a pool uuid as well as the member uuid. The
python-neutronclient currently does not support this, so this change
makes to possible to do so.

This change adds the capability but does not affect other top-level
object implemenations.

Change-Id: I38c3b78dc077f1f78ebc7e703fe7277a02f53f7a
Partially-implements: blueprint lbaas-api-and-objmodel-improvement
Merge "Updated from global requirements"
Fix unit tests to succeed on any PYTHONHASHSEED

Many tests rely on order of parameters in URL query, but
queries are constructed from dicts and order of parameters
is non-deterministic. The issue doesn't occur if PYTHONHASHSEED
stays constant, but breaks if random. The fix is needed for
tox>1.7 and Py3.

Closes-Bug: 1348818

Change-Id: I01145df689e90ccd6100fa82092ba3ed222af8fc
Merge "Provide support for nested objects"
Avoid modifying default function arguments

Modifying passed arguments inadvertently is an easy pitfall in python.
Even more serious is modifying the default value to a function, since
that modification will be preserved across future function calls.

The typical defense against the latter is to avoid using mutable default
values.

This change replaces several def foo(bar=[]) with bar=() or similar, and
then fixes a few cases that were exposed where the argument was indeed
permanently modified.

Change-Id: I3d04dcb39e3816942f8e80ce499c47d774a773c6
Merge "Fix unit tests to succeed on any PYTHONHASHSEED"
Remove incorrect super() call

extension.ShowExt.get_parser called super() with the *parent* class,
skipping the parent's own get_parser.  This is quite surprising without
any additional comments to explain the situation.

The only difference between the two get_parsers is the string that
appears in the usage help text (EXT_ALIAS vs EXTENSION).  Rather than
improve the above super() call, this change removes the specialised
ShowExt.get_parser() implementation entirely since it appears the
generic version is sufficient.

Change-Id: I76b901d6a27fbe6f103baf2f03ea17912123a46b
Merge "Remove "--disabled" for firewall create rule"
Print exception when verbose is over DEBUG_LEVEL

Change-Id: I8a2010332be0acfe6762bf3190248fe17f42cadb
Closes-bug: #1353496
neutronclient shows low-level logs in console screen

Neutron command lines always display some useless information. This
should be avoided. This commit modifies the default level of console
stream to WARNING.

Closes-bug: #1356735

Change-Id: I997dad9ce3fc3eb795e4e44b27d211fa619c1907
Fix typo in cli help

The help message for neutron floatingip-disassociate should say
the argument is the ID of the floating IP to disassociate

Change-Id: I4564d546ca269ab05199a51ffd11678237a4d56f
Merge "Remove incorrect super() call"
Merge "Fix typo in cli help"
Merge "Fix listing security group rules"
Rename --timeout param to --http-timeout

The --timeout parameter was already used by the
load balancer subcommand so adding it as a top-level
parameter broke the load balancer commands. This
patch renames the new --timeout top-level command
to --http-timeout so it doesn't conflict with the
existing load balancer commands.

DocImpact

Closes-Bug: #1353536
Change-Id: I3d1dd9537e546191c5905e0aa5415de5308d9c7e
Repeat add-tenant and remove-tenant option in cli

For cisco-network-profile-create and cisco-network-profile-update cli,
add repeatable add-tenant and remove-tenant options so that user can
add and remove multiple tenants in a single cli request.

This fix includes changes in neutron, python-neutronclient and horizon.
All the changes should be merged at the same time

Implements: blueprint cisco-network-profile-multi-tenants-support
Change-Id: Ia902426b10d22a757ebbf62249dc28e9909dbff0