From 62e7882e9e61df2017549e6edbe7b1b5a3238ca3 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Mon, 7 May 2012 18:58:36 +1000 Subject: [PATCH] More peppy fixes... Signed-off-by: Angus Salkeld --- heat/cfntools/cfn_helper.py | 4 +++- heat/common/config.py | 1 + heat/db/sqlalchemy/session.py | 5 +++-- heat/engine/instance.py | 3 ++- heat/engine/parser.py | 5 +++-- heat/metadata/api/v1/metadata.py | 19 +++++++++++++------ 6 files changed, 25 insertions(+), 12 deletions(-) diff --git a/heat/cfntools/cfn_helper.py b/heat/cfntools/cfn_helper.py index b35287ade..4ff7745cd 100644 --- a/heat/cfntools/cfn_helper.py +++ b/heat/cfntools/cfn_helper.py @@ -44,6 +44,7 @@ import sys from urllib2 import urlopen from urlparse import urlparse, urlunparse + def to_boolean(b): val = b.lower().strip() if isinstance(b, basestring) else b return val in [True, 'true', 'yes', '1', 1] @@ -732,9 +733,11 @@ class ServicesHandler(object): else: self._monitor_services(handler, service_entries) + class MetadataServerConnectionError(Exception): pass + class Metadata(object): _metadata = None _init_key = "AWS::CloudFormation::Init" @@ -753,7 +756,6 @@ class Metadata(object): self._is_local_metadata = True self._metadata = None - def metadata_server_url(self): """ Return the url to the metadata server. diff --git a/heat/common/config.py b/heat/common/config.py index 0902a6768..dd8a74b53 100644 --- a/heat/common/config.py +++ b/heat/common/config.py @@ -139,6 +139,7 @@ class HeatConfigOpts(cfg.CommonConfigOpts): **kwargs) self.register_cli_opts(rpc_opts) + class HeatMetadataConfigOpts(cfg.CommonConfigOpts): def __init__(self, default_config_files=None, **kwargs): config_files = cfg.find_config_files(project='heat', diff --git a/heat/db/sqlalchemy/session.py b/heat/db/sqlalchemy/session.py index b90cf0b74..70988f6bf 100644 --- a/heat/db/sqlalchemy/session.py +++ b/heat/db/sqlalchemy/session.py @@ -110,9 +110,10 @@ def get_engine(): def get_maker(engine, autocommit=True, expire_on_commit=False): """Return a SQLAlchemy sessionmaker using the given engine.""" - return sqlalchemy.orm.scoped_session(sqlalchemy.orm.sessionmaker(bind=engine, + ses = sqlalchemy.orm.sessionmaker(bind=engine, autocommit=autocommit, - expire_on_commit=expire_on_commit)) + expire_on_commit=expire_on_commit) + return sqlalchemy.orm.scoped_session(ses) def _get_sql_connection(): diff --git a/heat/engine/instance.py b/heat/engine/instance.py index 9a39c32d7..2199744af 100644 --- a/heat/engine/instance.py +++ b/heat/engine/instance.py @@ -116,7 +116,8 @@ class Instance(Resource): mime_blob.attach(msg) msg = MIMEText(userdata, _subtype='x-shellscript') - msg.add_header('Content-Disposition', 'attachment', filename='startup') + msg.add_header('Content-Disposition', 'attachment', + filename='startup') mime_blob.attach(msg) self.mime_string = mime_blob.as_string() diff --git a/heat/engine/parser.py b/heat/engine/parser.py index fa0e558b0..da53f0979 100644 --- a/heat/engine/parser.py +++ b/heat/engine/parser.py @@ -119,9 +119,10 @@ class Stack(object): try: res = self.resources[r].validate() if res: + err_str = 'Malformed Query Response [%s]' % (res) response = {'ValidateTemplateResult': { - 'Description': 'Malformed Query Response [%s]' % res, - 'Parameters': []}} + 'Description': err_str, + 'Parameters': []}} return response except Exception as ex: logger.exception('validate') diff --git a/heat/metadata/api/v1/metadata.py b/heat/metadata/api/v1/metadata.py index b0fe3edc7..9df424e90 100644 --- a/heat/metadata/api/v1/metadata.py +++ b/heat/metadata/api/v1/metadata.py @@ -30,11 +30,13 @@ def json_response(http_status, data): response.content_type = 'application/json' return response + def json_error(http_status, message): """Create a JSON error response.""" body = {'error': message} return json_response(http_status, body) + class MetadataController: def __init__(self, options): self.options = options @@ -59,7 +61,8 @@ class MetadataController: if resources: return resources else: - return json_error(404, 'The stack "%s" does not exist.' % stack_name) + return json_error(404, + 'The stack "%s" does not exist.' % stack_name) def get_resource(self, req, stack_name, resource_id): con = context.get_admin_context() @@ -69,9 +72,11 @@ class MetadataController: 'resource_id': resource_id}}) if error: if error == 'stack': - return json_error(404, 'The stack "%s" does not exist.' % stack_name) + return json_error(404, + 'The stack "%s" does not exist.' % stack_name) else: - return json_error(404, 'The resource "%s" does not exist.' % resource_id) + return json_error(404, + 'The resource "%s" does not exist.' % resource_id) return metadata def update_metadata(self, req, body, stack_name, resource_id): @@ -83,14 +88,17 @@ class MetadataController: 'metadata': body}}) if error: if error == 'stack': - return json_error(404, 'The stack "%s" does not exist.' % stack_name) + return json_error(404, + 'The stack "%s" does not exist.' % stack_name) else: - return json_error(404, 'The resource "%s" does not exist.' % resource_id) + return json_error(404, + 'The resource "%s" does not exist.' % resource_id) return json_response(201, { 'resource': resource_id, 'metadata': body, }) + def create_resource(options): """ Stacks resource factory method. @@ -98,4 +106,3 @@ def create_resource(options): deserializer = wsgi.JSONRequestDeserializer() serializer = wsgi.JSONResponseSerializer() return wsgi.Resource(MetadataController(options), deserializer, serializer) -