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
Only validate credentials on create based on resources

This change relaxes the validation which checked for credentials
on stack create and update.

As implemented, having any of the following resources
in the template will result in credentials being mandatory
on create and update:
* AWS::AutoScaling::ScalingPolicy
* OS::Heat::HARestarter
* AWS::CloudFormation::WaitConditionHandle

For all other templates, credentials are not needed.

When trusts are merged, this logic could also be used to decide
whether a trust token needs to be created at all.

Fixes bug: #1217617

Change-Id: I3e4b8698d3712053dc3c0851433ef0cbbadbdfed
Set a small max_template_size for test_long_yaml

Currently this test takes 22 seconds to run. As the intent
of the test seems to be to assert that limits are enforced,
this change reduces the default limit to speed test execution time.

Change-Id: Ie12c53b832c993711c2187004d015b65045da901
Fixes-Bug: #1221478
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
Make the new template validation usable from tests

This is so we can assert that new TemplateResources expose the
api that we are expecting.

Partial-Bug: #1215797
Change-Id: I6273f6e046bb7bd5e075e9190d8011af976573b8
Make global TemplateResources usable in the tests

At the moment we need the templates installed into /etc/heat/templates
and this is not very nice for the tests. So this patch
replaces "/etc/heat/templates" with the project's own template
path so we can at least test the api of the template resources.

Partial-Bug: #1215797
Change-Id: Ie4924b0358b97af8feaad93ed9187976b8932e3d
Move dbinstance into a TemplateResource

The old dbinstance will soon be overtaken by the trove resource.
- The only reason for keeping this around is for people that don't
  have trove installed and want to use the AWS resource.
- Seperating it out into a TemplateResource really makes it easier
  for deployers and users to customise it.
- The old dbinstance did nothing "special" in python, and was really
  one of the first "TemplateResources" as it attempted to convert properties
  into parameters. Since this in now done a lot better in the TemplateResource
  lets just make use of that.

This will make it easier to migrate to other distros and versions.

Partial-Bug: #1215797
Change-Id: If72e1f40f67dc831551e0db8df8caaa002aaaeda
Change the dbinstance to F19

The current template is based on F17 which is eol.

Closes-Bug #1215797
Change-Id: I888fba67dc8412c8b57243d76b45494a6beb91c4
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
Merge "Only validate credentials on create based on resources"
Merge "Set a small max_template_size for test_long_yaml"
Enclose command args in with_venv.sh

It will support argument with blanks.

Change-Id: Ic3a00bdafc11459e9726eb99c7bc637d385e859a
Closes-Bug: #1220937
Make some heat resolve functions workable in hot

Make resolve functions Ref, Fn::GetAtt, Fn::Replace workable in hot.

Fixes bug #1221017

Change-Id: I9b7ca58720b3c7d157c79c3756510ebc62d81ee5
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
Add HOT functions to dependency checks

Fixes bug 1223035

Change-Id: I7859a59490151885d4efe9bd36c612474d45b5f5
Merge "Make some heat resolve functions workable in hot"
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 "Enclose command args in with_venv.sh"