1"""List images.""" 2# :license: MIT, see LICENSE for more details. 3 4import click 5 6import SoftLayer 7from SoftLayer.CLI import environment 8from SoftLayer.CLI import formatting 9from SoftLayer.CLI import image as image_mod 10from SoftLayer import utils 11 12 13@click.command() 14@click.option('--name', default=None, help='Filter on image name') 15@click.option('--public/--private', is_flag=True, default=None, 16 help='Display only public or private images') 17@environment.pass_env 18def cli(env, name, public): 19 """List images.""" 20 21 image_mgr = SoftLayer.ImageManager(env.client) 22 23 images = [] 24 if public in [False, None]: 25 for image in image_mgr.list_private_images(name=name, mask=image_mod.MASK): 26 images.append(image) 27 28 if public in [True, None]: 29 for image in image_mgr.list_public_images(name=name, mask=image_mod.MASK): 30 images.append(image) 31 32 table = formatting.Table(['id', 'name', 'type', 'visibility', 'account']) 33 34 images = [image for image in images if not image['parentId']] 35 for image in images: 36 37 visibility = (image_mod.PUBLIC_TYPE if image['publicFlag'] else image_mod.PRIVATE_TYPE) 38 table.add_row([ 39 image.get('id', formatting.blank()), 40 formatting.FormattedItem(image['name'], click.wrap_text(image['name'], width=50)), 41 formatting.FormattedItem( 42 utils.lookup(image, 'imageType', 'keyName'), 43 utils.lookup(image, 'imageType', 'name')), 44 visibility, 45 image.get('accountId', formatting.blank()), 46 ]) 47 48 env.fout(table) 49