Remove py33 from tox.ini until eventlet is ported

There is no point in trying to run the py33 unit tests until eventlet is
ported to Python 3. Meanwhile the expected failure means we get a bunch
of garbage and extra lag time when trying to run 'tox' before sending to
gerrit for review/CI checks.

Change-Id: I343e24e77e097a2249a7ace1903faeaed71d7393
Add DB API to get the count of stacks per tenant

This method will be used to limit the number of stacks any one tenant
can create.

Change-Id: Ic990bf84fc1aa5592504f7c423fbce953615a4a1
Only send traceback to users when in debug mode

API services currently send the traceback to clients. While the client
hides it from user view, it is still present in the response, exposing
the service to details of the engine that administrators likely would
not like to have exposed.

Fixes bug #1210623

Change-Id: I554ba24b7ac9166e28a8a0a10f566ed9cfa03014
Pass debug mode to eventlet.wsgi.server

Previously if any exceptions accidentally made their way to
eventlet.wsgi.server's response handler it would print their traceback.
We only want to show users tracebacks in debug mode. In production we
want them suppressed.

Fixes bug #1222008
Change-Id: Ieb11f75ebffc67bd584432cfd8eeaac010fce7ca
Use physical_resource_name as Ref for Instance/AS Group

This allows to distinguish groups by stack when using resource
OS::Metering::Alarm with the rule:
matching_metadata: {
    'metadata.user_metadata.groupname': { 'Ref': 'WebServerASGroup'}}

And add test for AutoScalingGroup Tags

fixe bug #1215840

Change-Id: If3de5c4abddcfb49f711db223a0c1a8c70f3c15a
Impose a size limit on JSON request body

The size limit on JSON request body is to ensure the server not being
overwhelmed by extremly large JSON request body.

Fixes bug #1215501

Change-Id: Ia58f6690e994d34212953c44821f7a4cc4c435fe
Add security_groups for create_port()

Currently if defined SecurityGroups and SubnetId properties for
instance in heat template, the SecurityGroups were not associated
to the port created within the previous SubnetId, in another word,
the instance are not allocated to the specified security groups
defined in heat template.

    * Modifies function _build_nics() in instance.py, adding an item
'security_groups' in the post body of create_port sending by neutronclient.
    * Adds a new function _get_security_groups_id() to map security_groups
names to ids.
    * Adds corresponding unit tests.

Fixes bug #1221564

Change-Id: Ica2df7c6f96bc982a5bd5ece3611949ae905e5c8
Merge "Impose a size limit on JSON request body"
Merge "Use physical_resource_name as Ref for Instance/AS Group"
Document volume properties

This adds documentation to the volume and volument attachment
properties.

Closes-Bug: #1224158
Change-Id: I22b4c8cb301b5de63418fd029ddf7f31087dfb8b
Migrate remaining TEXT columns to LONGTEXT

To avoid cases where mysql silently truncates json data
when it is > 2^16 bytes, migrate all remaining TEXT columns
to LONGTEXT, in a similar way to the fix for bug #1210799

Combined with the fix for bug #1215501 which limits the request
body size, we should never truncate, even if mysql is configured
such that it can happen

Fixes bug #1223029

Change-Id: Ib536cfa8e2952a5e047cd8573288cdd9fee0622c
Merge "Remove py33 from tox.ini until eventlet is ported"
Add error handling to property value resolution

Fixes bug 1224746

Change-Id: I990de0159e0fb49e52afdaab546f8d74372422bf
Add methods to help calculate a stack's resources

In order to limit a stack's size in future changes, we need to know
how many resources are already in the stack. We also need to be able
to find the root stack object of a nested stack.

Change-Id: Ib848bcd2e10d02dffc30dce45a2675a9f718fa7d
Related-Bug: #1215100
Use strings for block device mapping info

Nova client receives colon separated strings for block device mapping info
instead of a list.

Fixes bug #1221693

Change-Id: I321001d406f620d5f8a21e0f28cf706579ad64ad
Validate OS::Nova::Server block_device_mapping property

Make sure either volume_id or snapshot_id exists but not both. Also this patch
ensures that a bootable volume is specified when image is not given.

Fixes bug #1215267

Change-Id: Ia51f6c7aec9c0b257318992ee58febc392ea3d84
Merge "Migrate remaining TEXT columns to LONGTEXT"
Use the generic RequestLimitExceeded exception when possible

Rather than having lots of specific exceptions that all pertain to request
limitation, we can just use the RequestLimitExceeded exception when applicable,
which can also simplify the handling of exception mapping in fault.py.

Change-Id: I61b1e59912087fad286e74c22af15ffe6382bb65
Merge "Add error handling to property value resolution"
Merge "Document volume properties"