=== modified file 'bin/euca-describe-images' --- bin/euca-describe-images 2010-03-18 21:42:01 +0000 +++ bin/euca-describe-images 2010-03-24 22:50:25 +0000 @@ -62,14 +62,8 @@ print Util().version() sys.exit() -def display_images(images, image_ids): - check_image_ids = False - if(len(image_ids) > 0): - check_image_ids = True +def display_images(images): for image in images: - if check_image_ids: - if not image.id in image_ids: - continue image_string = '%s\t%s\t%s\t%s' % (image.id, image.location, image.ownerId, image.state) if image.is_public: image_string += '\tpublic' @@ -89,38 +83,31 @@ try: euca = Euca2ool('ao:x:', compat=True) except Exception, e: - print e + print e usage() - show_all = False - executable_by = ['self'] - owners = ['self'] - defaults = True + all_ids = False + owners = [ ] + executable_by = [ ] + image_ids = [ ] for name, value in euca.opts: if name in ('-h', '--help'): usage(0) - elif name == '-x': - if defaults: - executable_by = [] - defaults = False - owners = [] - executable_by.append(value) - elif name == '-o': - if defaults: - executable_by = [] - defaults = False - owners.append(value) + elif name == '-x': + executable_by.append(value) + elif name == '-o': + owners.append(value) elif name == '-a': - executable_by = ['self', 'all'] - owners = [] - elif name == '--version': - version() + all_ids = True + elif name == '--version': + version() + sys.exit(0) image_ids = euca.process_args() - if defaults and len(image_ids) > 0: - executable_by = ['self', 'all'] - owners = [] + + if all_ids and ( len(owners) or len(executable_by) or len(image_ids) ): + euca.display_error_and_exit("-a cannot be combined with owner, launch, or image list") try: euca_conn = euca.make_connection() @@ -128,12 +115,32 @@ print e.message sys.exit(1) - try: - images = euca_conn.get_all_images(image_ids=image_ids, owners=owners, executable_by=executable_by) - except Exception, ex: - euca.display_error_and_exit('%s' % ex) - - display_images(images, image_ids) + if len(owners) == 0 and len(executable_by) == 0 and \ + len(image_ids) == 0 and not all_ids: + try: + owned = euca_conn.get_all_images(image_ids = None, + owners = ("self", ), executable_by = None ) + launchable = euca_conn.get_all_images(image_ids = None, + owners = None, executable_by = ("self")) + + mylist = [ ] + images = [ ] + for image in owned: + mylist.append(image.id) + images.append(image) + for image in launchable: + if image.id not in mylist: + images.append(image) + except Exception, ex: + euca.display_error_and_exit('%s' % ex) + else: + try: + images = euca_conn.get_all_images(image_ids=image_ids, owners=owners, executable_by=executable_by) + except Exception, ex: + euca.display_error_and_exit('%s' % ex) + + display_images(images) + if __name__ == "__main__": main()