def execute(self, args): vsi = SoftLayer.VSManager(self.client) vs_id = helpers.resolve_id(vsi.resolve_ids, args.get('<identifier>'), 'VS') if args['--all']: additional_disks = True else: additional_disks = False capture = vsi.capture(vs_id, args.get('--name'), additional_disks, args.get('--note')) table = formatting.KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' table.add_row(['vs_id', capture['guestId']]) table.add_row(['date', capture['createDate'][:10]]) table.add_row(['time', capture['createDate'][11:19]]) table.add_row(['transaction', formatting.transaction_status(capture)]) table.add_row(['transaction_id', capture['id']]) table.add_row(['all_disks', additional_disks]) return table
def test_transaction_status_missing(self): b = formatting.blank() result = formatting.transaction_status({ 'transactionStatus': {} }) self.assertIsInstance(result, formatting.FormattedItem) self.assertEqual(result.original, b.original)
def test_transaction_status(self): result = formatting.transaction_status( {'transactionStatus': { 'name': 'a', 'friendlyName': 'b' }}) self.assertEqual(result.original, 'a') self.assertEqual(result.formatted, 'b') self.assertIsInstance(result, formatting.FormattedItem)
def cli(env, identifier): """Get details for an image.""" image_mgr = SoftLayer.ImageManager(env.client) image_id = helpers.resolve_id(image_mgr.resolve_ids, identifier, 'image') image = image_mgr.get_image(image_id, mask=image_mod.DETAIL_MASK) disk_space = 0 datacenters = [] for child in image.get('children'): disk_space = int(child.get('blockDevicesDiskSpaceTotal', 0)) if child.get('datacenter'): datacenters.append(utils.lookup(child, 'datacenter', 'name')) table = formatting.KeyValueTable(['name', 'value']) table.align['name'] = 'r' table.align['value'] = 'l' table.add_row(['id', image['id']]) table.add_row([ 'global_identifier', image.get('globalIdentifier', formatting.blank()) ]) table.add_row(['name', image['name'].strip()]) table.add_row([ 'status', formatting.FormattedItem( utils.lookup(image, 'status', 'keyname'), utils.lookup(image, 'status', 'name'), ) ]) table.add_row([ 'active_transaction', formatting.transaction_status(image.get('transaction')), ]) table.add_row(['account', image.get('accountId', formatting.blank())]) table.add_row([ 'visibility', image_mod.PUBLIC_TYPE if image['publicFlag'] else image_mod.PRIVATE_TYPE ]) table.add_row([ 'type', formatting.FormattedItem( utils.lookup(image, 'imageType', 'keyName'), utils.lookup(image, 'imageType', 'name'), ) ]) table.add_row(['flex', image.get('flexImageFlag')]) table.add_row(['note', image.get('note')]) table.add_row(['created', image.get('createDate')]) table.add_row(['disk_space', formatting.b_to_gb(disk_space)]) table.add_row([ 'datacenters', formatting.listing(sorted(datacenters), separator=',') ]) env.fout(table)
def test_transaction_status(self): result = formatting.transaction_status({ 'transactionStatus': { 'name': 'a', 'friendlyName': 'b' } }) self.assertEqual(result.original, 'a') self.assertEqual(result.formatted, 'b') self.assertIsInstance(result, formatting.FormattedItem)
def _get_datacenter_table(children_images): """Returns image details as datacenter, size, and transaction within a formatting table. :param children_images: A list of images. """ table_datacenter = formatting.Table(['DC', 'size', 'transaction']) for child in children_images: table_datacenter.add_row([ utils.lookup(child, 'datacenter', 'name'), formatting.b_to_gb(child.get('blockDevicesDiskSpaceTotal', 0)), formatting.transaction_status(child.get('transaction')) ]) return table_datacenter
def cli(env, identifier): """Get details for an image.""" image_mgr = SoftLayer.ImageManager(env.client) image_id = helpers.resolve_id(image_mgr.resolve_ids, identifier, 'image') image = image_mgr.get_image(image_id, mask=image_mod.DETAIL_MASK) disk_space = 0 datacenters = [] for child in image.get('children'): disk_space = int(child.get('blockDevicesDiskSpaceTotal', 0)) if child.get('datacenter'): datacenters.append(utils.lookup(child, 'datacenter', 'name')) table = formatting.KeyValueTable(['name', 'value']) table.align['name'] = 'r' table.align['value'] = 'l' table.add_row(['id', image['id']]) table.add_row(['global_identifier', image.get('globalIdentifier', formatting.blank())]) table.add_row(['name', image['name'].strip()]) table.add_row(['status', formatting.FormattedItem( utils.lookup(image, 'status', 'keyname'), utils.lookup(image, 'status', 'name'), )]) table.add_row([ 'active_transaction', formatting.transaction_status(image.get('transaction')), ]) table.add_row(['account', image.get('accountId', formatting.blank())]) table.add_row(['visibility', image_mod.PUBLIC_TYPE if image['publicFlag'] else image_mod.PRIVATE_TYPE]) table.add_row(['type', formatting.FormattedItem( utils.lookup(image, 'imageType', 'keyName'), utils.lookup(image, 'imageType', 'name'), )]) table.add_row(['flex', image.get('flexImageFlag')]) table.add_row(['note', image.get('note')]) table.add_row(['created', image.get('createDate')]) table.add_row(['disk_space', formatting.b_to_gb(disk_space)]) table.add_row(['datacenters', formatting.listing(sorted(datacenters), separator=',')]) env.fout(table)
def cli(env, identifier, name, all, note): """Capture one or all disks from a virtual server to a SoftLayer image.""" vsi = SoftLayer.VSManager(env.client) vs_id = helpers.resolve_id(vsi.resolve_ids, identifier, "VS") capture = vsi.capture(vs_id, name, all, note) table = formatting.KeyValueTable(["Name", "Value"]) table.align["Name"] = "r" table.align["Value"] = "l" table.add_row(["vs_id", capture["guestId"]]) table.add_row(["date", capture["createDate"][:10]]) table.add_row(["time", capture["createDate"][11:19]]) table.add_row(["transaction", formatting.transaction_status(capture)]) table.add_row(["transaction_id", capture["id"]]) table.add_row(["all_disks", all]) return table
def cli(env, identifier, name, all, note): """Capture one or all disks from a virtual server to a SoftLayer image.""" vsi = SoftLayer.VSManager(env.client) vs_id = helpers.resolve_id(vsi.resolve_ids, identifier, 'VS') capture = vsi.capture(vs_id, name, all, note) table = formatting.KeyValueTable(['name', 'value']) table.align['name'] = 'r' table.align['value'] = 'l' table.add_row(['vs_id', capture['guestId']]) table.add_row(['date', capture['createDate'][:10]]) table.add_row(['time', capture['createDate'][11:19]]) table.add_row(['transaction', formatting.transaction_status(capture)]) table.add_row(['transaction_id', capture['id']]) table.add_row(['all_disks', all]) env.fout(table)
def cli(env, identifier, name, all, note): """Capture one or all disks from a virtual server to a SoftLayer image.""" vsi = SoftLayer.VSManager(env.client) vs_id = helpers.resolve_id(vsi.resolve_ids, identifier, 'VS') capture = vsi.capture(vs_id, name, all, note) table = formatting.KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' table.add_row(['vs_id', capture['guestId']]) table.add_row(['date', capture['createDate'][:10]]) table.add_row(['time', capture['createDate'][11:19]]) table.add_row(['transaction', formatting.transaction_status(capture)]) table.add_row(['transaction_id', capture['id']]) table.add_row(['all_disks', all]) return table
def test_transaction_status(self): result = formatting.transaction_status({"transactionStatus": {"name": "a", "friendlyName": "b"}}) self.assertEqual(result.original, "a") self.assertEqual(result.formatted, "b") self.assertIsInstance(result, formatting.FormattedItem)