session_persistence: invalid str2dict value: u''

Can't receive empty session_persistence dict to update the vip.
It would raise the following error:

$ neutron lb-vip-update vip --session_persistence type=dict ""
usage: neutron [--session_persistence SESSION_PERSISTENCE]
neutron: error: argument --session_persistence: invalid str2dict value: u''

Change-Id: Ice43bbe19138be6af85b47c2090359d22c70b29f
Closes-Bug: #1262582
Suppress stdout/stderr in test_shell

test_shell is refactored to check stderr in addition to stdout
and suppress stdout/stderr. In addition, test_auth tries API call
to keystone, so related methods are mocked out now to avoid it.

Change-Id: Id43ad905c5c13da9015d035267eaa86429e60ff3
Closes-Bug: #1161849
Rearrange neutronclient exceptions for more easy use

- Map exceptions from neutron server into corresponding client
  exceptions automatically (without exception mapping dict).
  An exception from Neutron server 'SomeException' will be
  mapped to an exception 'SomeExceptionClient' ('Client' suffix)
  if it is defined.

- If no corresponding exception is defined in client side,
  an exception per response code will be used. Previously
  NeutronClientException was used for all cases and a user
  of client library cannot know exception type without
  checking exception.status_code. It allows client lib users
  (such as Horizon) to handle exceptions more easily.

- All exceptions from client libarry inherit NeutronClientException
  and all CLI related exceptions inherits NeutronCLIError now.

- Remove unused exceptions (including Quantum v1 related)
- MalformedRequestBody is renamed to MalformedResponseBody
  because it is raised in deserializer and deserializer is
  used to parse not request but response.

Closes-Bug: #1296148
Change-Id: I99b9560b3afaf5884fd00353323267da450338fa
Return response status reason on error

Upon server error, return the status reason if the body is empty, to
help debug server issues.

Change-Id: I29aef075081965bb8ecacf45a166ca9dbd4cbb8d
Closes-Bug: #1287110
Updated from global requirements

Change-Id: I35dcfdd24067e6bd37f970d8ab73d416fbe55f96
Merge "Rearrange neutronclient exceptions for more easy use"
Merge "Updated from global requirements"
Merge "Return response status reason on error"
Merge "Suppress stdout/stderr in test_shell"
Merge "session_persistence: invalid str2dict value: u''"
Support packet_filter extension in NEC plugin

blueprint nec-packet-filter-cli

Also adds common validators.

Change-Id: Ia431c2268e9a654e10dc9cf740288fb746825d13
Use requests module for HTTP/HTTPS

This change introduces the use of requests in lieu of httplib2
to ensure proper handling of SSL termination.

Implements: blueprint tls-verify

Change-Id: If182f2addf26421873b8c3d2b60f8cba9b7a9450
Allow user ID for authentication

In Keystone V3 user names are no longer necessarily unique
across domains.

A user can still authenticate a user in the non default
domain via the V2 API providng they use IDs instead of names.

Tenant_ID is already supported, this change adds support
for user ID

Closes-Bug: #1299807

Change-Id: I22fdd9a6749f7dfbdd2dc8313fddc81e5ea0b753
Updated from global requirements

Change-Id: Ic71ae06e070f186ede1bdecd685498fb5a5c3103
Merge "Use requests module for HTTP/HTTPS"
Merge "Allow user ID for authentication"
Remove httplib2 requirement

There are no imports from httplib2 and everything seems to be converted
over to using the requests library now, so remove the extraneous
dependency.

Change-Id: I6a2a9543ea8f5da29494e1dba7659ec02a43deea
Updated from global requirements

Change-Id: Ie4d964feb6111f173338e510ed83d7f1d79f7dbb
Merge "Remove httplib2 requirement"