From e67e9c80bf8369314378268cb0b988be0c45c115 Mon Sep 17 00:00:00 2001 From: Angus Salkeld Date: Mon, 23 Apr 2012 12:04:46 +1000 Subject: [PATCH] Fix more pep8 errors. Signed-off-by: Angus Salkeld --- bin/heat | 70 +++++++++++++++++++++++++----------- bin/heat-engine | 3 +- heat/db/sqlalchemy/api.py | 3 +- heat/db/sqlalchemy/models.py | 1 - heat/engine/manager.py | 9 +++-- heat/engine/parser.py | 4 +-- 6 files changed, 61 insertions(+), 29 deletions(-) diff --git a/bin/heat b/bin/heat index 4e8244d7..dc79e587 100755 --- a/bin/heat +++ b/bin/heat @@ -61,6 +61,7 @@ from heat.common import exception SUCCESS = 0 FAILURE = 1 + def catch_error(action): """Decorator to provide sensible default error handling for actions.""" def wrap(func): @@ -89,6 +90,7 @@ def catch_error(action): return wrapper return wrap + @catch_error('validate') def template_validate(options, arguments): ''' @@ -114,6 +116,7 @@ def template_validate(options, arguments): result = client.validate_template(**parameters) print json.dumps(result, indent=2) + @catch_error('gettemplate') def get_template(options, arguments): ''' @@ -123,6 +126,7 @@ def get_template(options, arguments): ''' pass + @catch_error('create') def stack_create(options, arguments): ''' @@ -168,6 +172,7 @@ def stack_create(options, arguments): result = c.create_stack(**parameters) print json.dumps(result, indent=2) + @catch_error('update') def stack_update(options, arguments): ''' @@ -213,11 +218,12 @@ def stack_update(options, arguments): result = c.update_stack(**parameters) print json.dumps(result, indent=2) + @catch_error('delete') def stack_delete(options, arguments): ''' Delete an existing stack. This shuts down all VMs associated with - the stack and (perhaps wrongly) also removes all events associated + the stack and (perhaps wrongly) also removes all events associated with the given stack. Usage: heat delete @@ -234,6 +240,7 @@ def stack_delete(options, arguments): result = c.delete_stack(**parameters) print json.dumps(result, indent=2) + @catch_error('describe') def stack_describe(options, arguments): ''' @@ -253,6 +260,7 @@ def stack_describe(options, arguments): result = c.describe_stacks(**parameters) print json.dumps(result, indent=2) + @catch_error('events_list') def stack_events_list(options, arguments): ''' @@ -270,6 +278,7 @@ def stack_events_list(options, arguments): result = c.list_stack_events(**parameters) print json.dumps(result, indent=2) + @catch_error('list') def stack_list(options, arguments): ''' @@ -281,6 +290,7 @@ def stack_list(options, arguments): result = c.list_stacks() print json.dumps(result, indent=2) + @catch_error('jeos_create') def jeos_create(options, arguments): ''' @@ -309,13 +319,16 @@ def jeos_create(options, arguments): print ' Usage:' print ' heat jeos_create ' print ' instance type can be:' - print ' gold builds a base image where userdata is used to initialize the instance' - print ' cfntools builds a base image where AWS CloudFormation tools are present' + print ' gold builds a base image where userdata is used to' \ + ' initialize the instance' + print ' cfntools builds a base image where AWS CloudFormation' \ + ' tools are present' sys.exit(1) distro = arguments.pop(0) arch = arguments.pop(0) instance_type = arguments.pop(0) + images_dir = '/var/lib/libvirt/images' arches = ('x86_64', 'i386', 'amd64') arches_str = " | ".join(arches) @@ -337,9 +350,9 @@ def jeos_create(options, arguments): fedora_match = re.match('F(1[6-7])', distro) if fedora_match: version = fedora_match.group(1) - iso = '/var/lib/libvirt/images/Fedora-%s-%s-DVD.iso' % (version, arch) + iso = '%s/Fedora-%s-%s-DVD.iso' % (images_dir, version, arch) elif distro == 'U10': - iso = '/var/lib/libvirt/images/ubuntu-10.04.3-server-%s.iso' % arch + iso = '%s/ubuntu-10.04.3-server-%s.iso' % (images_dir, arch) else: logging.error('distro %s not supported' % distro) logging.error('try: F16, F17 or U10') @@ -361,14 +374,17 @@ def jeos_create(options, arguments): f = open('%s/%s' % (cfntools_path, cfnname), 'r') cfscript_e64 = base64.b64encode(f.read()) f.close() - tdl_xml.xpathEval("/template/files/file[@name='/opt/aws/bin/%s']" % cfnname)[0].setContent(cfscript_e64) + cfnpath = "/template/files/file[@name='/opt/aws/bin/%s']" % cfnname + tdl_xml.xpathEval(cfnpath)[0].setContent(cfscript_e64) # TODO(sdake) INSECURE tdl_xml.saveFormatFile('/tmp/tdl', format=1) tdl_path = '/tmp/tdl' - dsk_filename = '/var/lib/libvirt/images/%s-%s-%s-jeos.dsk' % (distro, arch, instance_type) - qcow2_filename = '/var/lib/libvirt/images/%s-%s-%s-jeos.qcow2' % (distro, arch, instance_type) + dsk_filename = '%s/%s-%s-%s-jeos.dsk' % (images_dir, distro, + arch, instance_type) + qcow2_filename = '%s/%s-%s-%s-jeos.qcow2' % (images_dir, distro, + arch, instance_type) image_name = '%s-%s-%s' % (distro, arch, instance_type) if not os.access(tdl_path, os.R_OK): @@ -394,12 +410,13 @@ def jeos_create(options, arguments): for image in images: if image['name'] == distro + '-' + arch + '-' + instance_type: image_registered = True - #logging.warning(' *** image already in glance: %s > %s' % (image['name'], image['id'])) runoz = None if os.access(qcow2_filename, os.R_OK): while runoz not in ('y', 'n'): - runoz = raw_input('An existing JEOS was found on disk. Do you want to build a fresh JEOS? (y/n) ').lower() + runoz = raw_input('An existing JEOS was found on disk.' \ + ' Do you want to build a fresh JEOS?' \ + ' (y/n) ').lower() if runoz == 'y': os.remove(qcow2_filename) os.remove(dsk_filename) @@ -408,14 +425,17 @@ def jeos_create(options, arguments): elif runoz == 'n': answer = None while answer not in ('y', 'n'): - answer = raw_input('Do you want to register your existing JEOS file with glance? (y/n) ').lower() + answer = raw_input('Do you want to register your existing' \ + ' JEOS file with glance? (y/n) ').lower() if answer == 'n': logging.info('No action taken') sys.exit(0) elif answer == 'y' and image_registered: answer = None while answer not in ('y', 'n'): - answer = raw_input('Do you want to delete the existing JEOS in glance? (y/n) ').lower() + answer = raw_input('Do you want to delete the ' \ + 'existing JEOS in glance?' \ + ' (y/n) ').lower() if answer == 'n': logging.info('No action taken') sys.exit(0) @@ -423,24 +443,29 @@ def jeos_create(options, arguments): client.delete_image(image['id']) if runoz == None or runoz == 'y': - logging.info('Creating JEOS image (%s) - this takes approximately 10 minutes.' % image_name) + logging.info('Creating JEOS image (%s) - '\ + 'this takes approximately 10 minutes.' % image_name) extra_opts = ' ' if options.debug: extra_opts = ' -d 3 ' - ozcmd="oz-install %s -t 50000 -u %s -x /dev/null" % (extra_opts, tdl_path) + ozcmd = "oz-install %s -t 50000 -u %s -x /dev/null" % (extra_opts, + tdl_path) logging.debug("Running : %s" % ozcmd) res = os.system(ozcmd) if res == 256: sys.exit(1) if not os.access(dsk_filename, os.R_OK): - logging.error('oz-install did not create the image, check your oz installation.') + logging.error('oz-install did not create the image,' \ + ' check your oz installation.') sys.exit(1) logging.info('Converting raw disk image to a qcow2 image.') - os.system("qemu-img convert -O qcow2 %s %s" % (dsk_filename, qcow2_filename)) + os.system("qemu-img convert -O qcow2 %s %s" % (dsk_filename, + qcow2_filename)) - logging.info('Registering JEOS image (%s) with OpenStack Glance.' % image_name) + logging.info('Registering JEOS image (%s) ' \ + 'with OpenStack Glance.' % image_name) image_meta = {'name': image_name, 'is_public': True, @@ -549,14 +574,15 @@ def create_options(parser): metavar="STRATEGY", default=None, help="Authentication strategy (keystone or noauth)") - parser.add_option('-u', '--template-url', metavar="template_url", default=None, - help="URL of template. Default: None") - parser.add_option('-t', '--template-file', metavar="template_file", default=None, - help="Path to the template. Default: None") + parser.add_option('-u', '--template-url', metavar="template_url", + default=None, help="URL of template. Default: None") + parser.add_option('-t', '--template-file', metavar="template_file", + default=None, help="Path to the template. Default: None") parser.add_option('-P', '--parameters', metavar="parameters", default=None, help="Parameter values used to create the stack.") + def credentials_from_env(): return dict(username=os.getenv('OS_USERNAME'), password=os.getenv('OS_PASSWORD'), @@ -564,6 +590,7 @@ def credentials_from_env(): auth_url=os.getenv('OS_AUTH_URL'), auth_strategy=os.getenv('OS_AUTH_STRATEGY')) + def parse_options(parser, cli_args): """ Returns the parsed CLI options, command to run and its arguments, merged @@ -657,6 +684,7 @@ def lookup_command(parser, command_name): return command + def main(): ''' ''' diff --git a/bin/heat-engine b/bin/heat-engine index b6e4cbf1..4136f4d7 100755 --- a/bin/heat-engine +++ b/bin/heat-engine @@ -48,6 +48,7 @@ logger = logging.getLogger('heat.engine') if __name__ == '__main__': + default_manager = 'heat.engine.manager.EngineManager' conf = config.HeatEngineConfigOpts() conf() config.FLAGS = conf @@ -59,7 +60,7 @@ if __name__ == '__main__': #utils.monkey_patch() server = service.Service.create(binary='heat-engine', topic='engine', - manager='heat.engine.manager.EngineManager', + manager=default_manager, config=conf) service.serve(server) service.wait() diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py index 14829c4b..1e8c10f0 100644 --- a/heat/db/sqlalchemy/api.py +++ b/heat/db/sqlalchemy/api.py @@ -19,6 +19,7 @@ from sqlalchemy.orm.session import Session from heat.db.sqlalchemy import models from heat.db.sqlalchemy.session import get_session + def model_query(context, *args, **kwargs): """ :param session: if present, the session to use @@ -162,7 +163,7 @@ def stack_delete(context, stack_name): rrt[r.parsed_template.raw_template.id] = \ r.parsed_template.raw_template session.delete(r) - + for pt in rpt.values(): session.delete(pt) diff --git a/heat/db/sqlalchemy/models.py b/heat/db/sqlalchemy/models.py index b85c3c9f..fce55751 100644 --- a/heat/db/sqlalchemy/models.py +++ b/heat/db/sqlalchemy/models.py @@ -149,7 +149,6 @@ class Event(BASE, HeatBase): resource_properties = Column(PickleType) - class Resource(BASE, HeatBase): """Represents a resource created by the heat engine.""" diff --git a/heat/engine/manager.py b/heat/engine/manager.py index e4472df9..13f8f08a 100644 --- a/heat/engine/manager.py +++ b/heat/engine/manager.py @@ -58,7 +58,8 @@ class EngineManager(manager.Manager): if stacks == None: return res for s in stacks: - ps = parser.Stack(s.name, s.raw_template.parsed_template.template, s.id, params) + ps = parser.Stack(s.name, s.raw_template.parsed_template.template, + s.id, params) mem = {} mem['stack_id'] = s.id mem['stack_name'] = s.name @@ -80,7 +81,8 @@ class EngineManager(manager.Manager): res = {'stacks': []} s = db_api.stack_get(None, stack_name) if s: - ps = parser.Stack(s.name, s.raw_template.parsed_template.template, s.id, params) + ps = parser.Stack(s.name, s.raw_template.parsed_template.template, + s.id, params) mem = {} mem['stack_id'] = s.id mem['stack_name'] = s.name @@ -170,7 +172,8 @@ class EngineManager(manager.Manager): logger.info('deleting stack %s' % stack_name) - ps = parser.Stack(st.name, st.raw_template.parsed_template.template, st.id, params) + ps = parser.Stack(st.name, st.raw_template.parsed_template.template, + st.id, params) ps.delete() return None diff --git a/heat/engine/parser.py b/heat/engine/parser.py index 63a0509b..1aa59f5a 100644 --- a/heat/engine/parser.py +++ b/heat/engine/parser.py @@ -142,8 +142,8 @@ class Stack(object): if pt: pt.template = self.t else: - logger.warn('Cant find parsed template to update %d' % self.parsed_template_id) - + logger.warn('Cant find parsed template to update %d' % \ + self.parsed_template_id) def create_blocking(self): ''' -- 2.45.2