Fixes Hyper-V driver WMI issue on 2008 R2

Trying to assign properties on default Hyper-V resource setting data
WMI objects results in an exceptions before Hyper-V 2012.
Cloning the objects before assigning them solves the issue.

A similar approach was previous already implemented and has been
incorrectly removed during a refactoring.

Co-Authored-By: Robert Tingirica <rtingirica@cloudbasesolutions.com>
Change-Id: If119154f8b4756be9f98c8acd376003c52eff44f
Closes-Bug: #1356884
Add decorator expected_errors for security_group extension

This patch add decorator expected_errors for all the APIs of
security_group that required by v2.1 API.

Partially implements blueprint v2-on-v3-api

Change-Id: I6ccf9f3b7d7137948d16481d82d00220a27d8541
Fix the cell API with string rpc_port failed

When cell create/update accept rpc_port as string, it will
return 500. This patch add code to covert the string as integer.

Change-Id: I8ace46731ac02f810b978c54843b6e137c9882be
Closes-Bug: #1389933
Limit tcp/udp port to be empty string in json-schema

tcp/udp port can be string and integer. Currently the json-schema accept
string, but it didn't limit the length of string, so there can be pass
emtpy string as tcp/udp port. This patch add string length limit to it.

Change-Id: I6c338a2417ae5f8817b24823b3d745dc1e0fbd58
Add CHAP credentials support

Currently, the Hyper-V driver ignores the according CHAP
credentials when logging in iSCSI targets. For this reason,
attaching volumes fails when CHAP authentication is enforced.

This patch adds one way CHAP authentication support.

Change-Id: Id4d8800ae08dc24a01fc146f65c68b0b41d49e3d
Sync server_external_events v2 to v2.1 Part 1

This syncs commit I18062b81e50c722ec96b4296ac39384493683ae3 which
was made to the v2 version of os-server-external-events but not
the v2.1 version.

Partially implements blueprint v2-on-v3-api

Change-Id: If0657744fac021f635ce292142c82239751ae2f2
Sync server_external_events v2 to v2.1 Part 2

This syncs commit 5e4a5f0d8c62ca6e94ae6db16e9fbe0428805158 which
was made to the v2 version of os-server-external-events but not
the v2.1 version.

Partially implements blueprint v2-on-v3-api

Change-Id: I458b28b1f3cf161b6d40ce3fd8b3a9c5d090bde7
Cleanup v2.1 controller inheritance

For microversions support to work all the API controllers must
inherit from wsgi.Controller rather than object. Currently most
do inherit from wsgi.Controller but some don't. This patch
ensures that all do so.

Partially implements blueprint api-microversions

Change-Id: Ic7351298ae96aa7bb509eb3784e672d5feea262a
Merge "Fixes Hyper-V driver WMI issue on 2008 R2"
Merge "Add CHAP credentials support"
Merge "Sync server_external_events v2 to v2.1 Part 1"
Merge "Sync server_external_events v2 to v2.1 Part 2"
Merge "Add decorator expected_errors for security_group extension"
Merge "Fix the cell API with string rpc_port failed"
Merge "Limit tcp/udp port to be empty string in json-schema"
Merge "Cleanup v2.1 controller inheritance"