def execute(self, args): mgr = SshKeyManager(self.client) key_id = resolve_id(mgr.resolve_ids, args.get('<identifier>'), 'SshKey') key = mgr.get_key(key_id) if args.get('--file'): with open(expanduser(args['--file']), 'w') as pub_file: pub_file.write(key['key']) table = KeyValueTable(['Name', 'Value']) table.add_row(['id', key['id']]) table.add_row(['label', key['label']]) table.add_row(['notes', key.get('notes', '-')]) return table
def execute(self, args): mgr = SshKeyManager(self.client) key_id = resolve_id(mgr.resolve_ids, args.get("<identifier>"), "SshKey") key = mgr.get_key(key_id) if args.get("--file"): f = open(expanduser(args["--file"]), "w") f.write(key["key"]) f.close() t = KeyValueTable(["Name", "Value"]) t.add_row(["id", key["id"]]) t.add_row(["label", key["label"]]) t.add_row(["notes", key.get("notes", "-")]) return t
def execute(client, args): mgr = SshKeyManager(client) key_id = resolve_id(mgr.resolve_ids, args.get('<identifier>'), 'SshKey') key = mgr.get_key(key_id) if args.get('--file'): f = open(expanduser(args['--file']), 'w') f.write(key['key']) f.close() t = KeyValueTable(['Name', 'Value']) t.add_row(['id', key['id']]) t.add_row(['label', key['label']]) t.add_row(['notes', key.get('notes', '-')]) return t
def execute(self, args): mgr = HardwareManager(self.client) table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' chassis_id = args.get('<chassis_id>') ds_options = mgr.get_dedicated_server_create_options(chassis_id) show_all = True for opt_name in self.options: if args.get("--" + opt_name): show_all = False break if args['--all']: show_all = True if args['--datacenter'] or show_all: results = self.get_create_options(ds_options, 'datacenter')[0] table.add_row([results[0], listing(sorted(results[1]))]) if args['--cpu'] or show_all: results = self.get_create_options(ds_options, 'cpu') cpu_table = Table(['id', 'description']) for result in sorted(results): cpu_table.add_row([result[1], result[0]]) table.add_row(['cpu', cpu_table]) if args['--memory'] or show_all: results = self.get_create_options(ds_options, 'memory')[0] table.add_row([results[0], listing( item[0] for item in sorted(results[1]))]) if args['--os'] or show_all: results = self.get_create_options(ds_options, 'os') for result in results: table.add_row([ result[0], listing( [item[0] for item in sorted(result[1])], separator=linesep )]) if args['--disk'] or show_all: results = self.get_create_options(ds_options, 'disk')[0] table.add_row([ results[0], listing( [item[0] for item in sorted(results[1])], separator=linesep )]) if args['--nic'] or show_all: results = self.get_create_options(ds_options, 'nic') for result in results: table.add_row([result[0], listing( item[0] for item in sorted(result[1],))]) if args['--controller'] or show_all: results = self.get_create_options(ds_options, 'disk_controller')[0] table.add_row([results[0], listing( item[0] for item in sorted(results[1],))]) return table
def execute(self, args): hardware = HardwareManager(self.client) table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' hardware_id = resolve_id( hardware.resolve_ids, args.get('<identifier>'), 'hardware') result = hardware.get_hardware(hardware_id) result = NestedDict(result) table.add_row(['id', result['id']]) table.add_row(['hostname', result['fullyQualifiedDomainName']]) table.add_row(['status', result['hardwareStatus']['status']]) table.add_row(['datacenter', result['datacenter']['name'] or blank()]) table.add_row(['cores', result['processorPhysicalCoreAmount']]) table.add_row(['memory', gb(result['memoryCapacity'])]) table.add_row(['public_ip', result['primaryIpAddress'] or blank()]) table.add_row( ['private_ip', result['primaryBackendIpAddress'] or blank()]) table.add_row(['ipmi_ip', result['networkManagementIpAddress'] or blank()]) table.add_row([ 'os', FormattedItem( result['operatingSystem']['softwareLicense'] ['softwareDescription']['referenceCode'] or blank(), result['operatingSystem']['softwareLicense'] ['softwareDescription']['name'] or blank() )]) table.add_row(['created', result['provisionDate'] or blank()]) vlan_table = Table(['type', 'number', 'id']) for vlan in result['networkVlans']: vlan_table.add_row([ vlan['networkSpace'], vlan['vlanNumber'], vlan['id']]) table.add_row(['vlans', vlan_table]) if result.get('notes'): table.add_row(['notes', result['notes']]) if args.get('--price'): table.add_row(['price rate', result['billingItem']['recurringFee']]) if args.get('--passwords'): user_strs = [] for item in result['operatingSystem']['passwords']: user_strs.append( "%s %s" % (item['username'], item['password'])) table.add_row(['users', listing(user_strs)]) tag_row = [] for tag in result['tagReferences']: tag_row.append(tag['tag']['name']) if tag_row: table.add_row(['tags', listing(tag_row, separator=',')]) if not result['privateNetworkOnlyFlag']: ptr_domains = self.client['Hardware_Server']\ .getReverseDomainRecords(id=hardware_id) for ptr_domain in ptr_domains: for ptr in ptr_domain['resourceRecords']: table.add_row(['ptr', ptr['data']]) return table
def execute(self, args): cci = CCIManager(self.client) cci_id = resolve_id(cci.resolve_ids, args.get('<identifier>'), 'CCI') if args['--all']: additional_disks = True else: additional_disks = False capture = cci.capture(cci_id, args.get('--name'), additional_disks, args.get('--note')) table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' table.add_row(['cci_id', capture['guestId']]) table.add_row(['date', capture['createDate'][:10]]) table.add_row(['time', capture['createDate'][11:19]]) table.add_row(['transaction', transaction_status(capture)]) table.add_row(['transaction_id', capture['id']]) table.add_row(['all_disks', additional_disks]) return table
def execute(self, args): cci = CCIManager(self.client) result = cci.get_create_options() show_all = True for opt_name in self.options: if args.get("--" + opt_name): show_all = False break if args['--all']: show_all = True table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' if args['--datacenter'] or show_all: datacenters = [dc['template']['datacenter']['name'] for dc in result['datacenters']] table.add_row(['datacenter', listing(datacenters, separator=',')]) if args['--cpu'] or show_all: standard_cpu = [x for x in result['processors'] if not x['template'].get( 'dedicatedAccountHostOnlyFlag', False)] ded_cpu = [x for x in result['processors'] if x['template'].get('dedicatedAccountHostOnlyFlag', False)] def add_cpus_row(cpu_options, name): """ Add CPU rows to the table """ cpus = [] for cpu_option in cpu_options: cpus.append(str(cpu_option['template']['startCpus'])) table.add_row(['cpus (%s)' % name, listing(cpus, separator=',')]) add_cpus_row(ded_cpu, 'private') add_cpus_row(standard_cpu, 'standard') if args['--memory'] or show_all: memory = [ str(m['template']['maxMemory']) for m in result['memory']] table.add_row(['memory', listing(memory, separator=',')]) if args['--os'] or show_all: op_sys = [ o['template']['operatingSystemReferenceCode'] for o in result['operatingSystems']] op_sys = sorted(op_sys) os_summary = set() for operating_system in op_sys: os_summary.add(operating_system[0:operating_system.find('_')]) for summary in sorted(os_summary): table.add_row([ 'os (%s)' % summary, linesep.join(sorted([x for x in op_sys if x[0:len(summary)] == summary])) ]) if args['--disk'] or show_all: local_disks = [x for x in result['blockDevices'] if x['template'].get('localDiskFlag', False)] san_disks = [x for x in result['blockDevices'] if not x['template'].get('localDiskFlag', False)] def add_block_rows(disks, name): """ Add block rows to the table """ simple = {} for disk in disks: block = disk['template']['blockDevices'][0] bid = block['device'] if bid not in simple: simple[bid] = [] simple[bid].append(str(block['diskImage']['capacity'])) for label in sorted(simple.keys()): table.add_row(['%s disk(%s)' % (name, label), listing(simple[label], separator=',')]) add_block_rows(local_disks, 'local') add_block_rows(san_disks, 'san') if args['--nic'] or show_all: speeds = [] for comp in result['networkComponents']: speed = comp['template']['networkComponents'][0]['maxSpeed'] speeds.append(str(speed)) speeds = sorted(speeds) table.add_row(['nic', listing(speeds, separator=',')]) return table
def execute(self, args): cci = CCIManager(self.client) table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' cci_id = resolve_id(cci.resolve_ids, args.get('<identifier>'), 'CCI') result = cci.get_instance(cci_id) result = NestedDict(result) table.add_row(['id', result['id']]) table.add_row(['hostname', result['fullyQualifiedDomainName']]) table.add_row(['status', FormattedItem( result['status']['keyName'] or blank(), result['status']['name'] or blank() )]) table.add_row(['active_transaction', active_txn(result)]) table.add_row(['state', FormattedItem( lookup(result, 'powerState', 'keyName'), lookup(result, 'powerState', 'name'), )]) table.add_row(['datacenter', result['datacenter']['name'] or blank()]) operating_system = lookup(result, 'operatingSystem', 'softwareLicense', 'softwareDescription') or {} table.add_row([ 'os', FormattedItem( operating_system.get('version') or blank(), operating_system.get('name') or blank() )]) table.add_row(['os_version', operating_system.get('version') or blank()]) table.add_row(['cores', result['maxCpu']]) table.add_row(['memory', mb_to_gb(result['maxMemory'])]) table.add_row(['public_ip', result['primaryIpAddress'] or blank()]) table.add_row(['private_ip', result['primaryBackendIpAddress'] or blank()]) table.add_row(['private_only', result['privateNetworkOnlyFlag']]) table.add_row(['private_cpu', result['dedicatedAccountHostOnlyFlag']]) table.add_row(['created', result['createDate']]) table.add_row(['modified', result['modifyDate']]) vlan_table = Table(['type', 'number', 'id']) for vlan in result['networkVlans']: vlan_table.add_row([ vlan['networkSpace'], vlan['vlanNumber'], vlan['id']]) table.add_row(['vlans', vlan_table]) if result.get('notes'): table.add_row(['notes', result['notes']]) if args.get('--price'): table.add_row(['price rate', result['billingItem']['recurringFee']]) if args.get('--passwords'): pass_table = Table(['username', 'password']) for item in result['operatingSystem']['passwords']: pass_table.add_row([item['username'], item['password']]) table.add_row(['users', pass_table]) tag_row = [] for tag in result['tagReferences']: tag_row.append(tag['tag']['name']) if tag_row: table.add_row(['tags', listing(tag_row, separator=',')]) if not result['privateNetworkOnlyFlag']: ptr_domains = self.client['Virtual_Guest'].\ getReverseDomainRecords(id=cci_id) for ptr_domain in ptr_domains: for ptr in ptr_domain['resourceRecords']: table.add_row(['ptr', ptr['data']]) return table
def execute(self, args): mgr = HardwareManager(self.client) table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' chassis_id = args.get('<chassis_id>') found = False for chassis in mgr.get_available_dedicated_server_packages(): if chassis_id == str(chassis[0]): found = True break if not found: raise CLIAbort('Invalid chassis specified.') ds_options = mgr.get_dedicated_server_create_options(chassis_id) show_all = True for opt_name in self.options: if args.get("--" + opt_name): show_all = False break if args['--all']: show_all = True # Determine if this is a "Bare Metal Instance" or regular server bmc = False if chassis_id == str(mgr.get_bare_metal_package_id()): bmc = True if args['--datacenter'] or show_all: results = self.get_create_options(ds_options, 'datacenter')[0] table.add_row([results[0], listing(sorted(results[1]))]) if (args['--cpu'] or show_all) and not bmc: results = self.get_create_options(ds_options, 'cpu') cpu_table = Table(['ID', 'Description']) cpu_table.align['ID'] = 'r' cpu_table.align['Description'] = 'l' for result in sorted(results, key=lambda x: x[1]): cpu_table.add_row([result[1], result[0]]) table.add_row(['cpu', cpu_table]) if (args['--memory'] or show_all) and not bmc: results = self.get_create_options(ds_options, 'memory')[0] table.add_row([results[0], listing( item[0] for item in sorted(results[1]))]) if bmc and (show_all or args['--memory'] or args['--cpu']): results = self.get_create_options(ds_options, 'server_core') memory_cpu_table = Table(['memory', 'cpu']) for result in results: memory_cpu_table.add_row([ result[0], listing( [item[0] for item in sorted( result[1], key=lambda x: int(x[0]) )])]) table.add_row(['memory/cpu', memory_cpu_table]) if args['--os'] or show_all: results = self.get_create_options(ds_options, 'os') for result in results: table.add_row([ result[0], listing( [item[0] for item in sorted(result[1])], separator=linesep )]) if args['--disk'] or show_all: results = self.get_create_options(ds_options, 'disk')[0] table.add_row([ results[0], listing( [item[0] for item in sorted(results[1])], separator=linesep )]) if args['--nic'] or show_all: results = self.get_create_options(ds_options, 'nic') for result in results: table.add_row([result[0], listing( item[0] for item in sorted(result[1],))]) if (args['--controller'] or show_all) and not bmc: results = self.get_create_options(ds_options, 'disk_controller')[0] table.add_row([results[0], listing( item[0] for item in sorted(results[1],))]) return table
def execute(self, args): iscsi_mgr = ISCSIManager(self.client) table = KeyValueTable(['Name', 'Value']) table.align['Name'] = 'r' table.align['Value'] = 'l' iscsi_id = resolve_id( iscsi_mgr.resolve_ids, args.get('<identifier>'), 'iSCSI') result = iscsi_mgr.get_iscsi(iscsi_id) result = NestedDict(result) table.add_row(['id', result['id']]) table.add_row(['serviceResourceName', result['serviceResourceName']]) table.add_row(['createDate', result['createDate']]) table.add_row(['nasType', result['nasType']]) table.add_row(['capacityGb', result['capacityGb']]) if result['snapshotCapacityGb']: table.add_row(['snapshotCapacityGb', result['snapshotCapacityGb']]) table.add_row(['mountableFlag', result['mountableFlag']]) table.add_row( ['serviceResourceBackendIpAddress', result['serviceResourceBackendIpAddress']]) table.add_row(['price', result['billingItem']['recurringFee']]) table.add_row(['BillingItemId', result['billingItem']['id']]) if result.get('notes'): table.add_row(['notes', result['notes']]) if args.get('--password'): pass_table = Table(['username', 'password']) pass_table.add_row([result['username'], result['password']]) table.add_row(['users', pass_table]) return table
def execute(self, args): cci = CCIManager(self.client) result = cci.get_create_options() show_all = True for opt_name in self.options: if args.get("--" + opt_name): show_all = False break if args['--all']: show_all = True t = KeyValueTable(['Name', 'Value']) t.align['Name'] = 'r' t.align['Value'] = 'l' if args['--datacenter'] or show_all: datacenters = [dc['template']['datacenter']['name'] for dc in result['datacenters']] t.add_row(['datacenter', listing(datacenters, separator=',')]) if args['--cpu'] or show_all: standard_cpu = filter( lambda x: not x['template'].get( 'dedicatedAccountHostOnlyFlag', False), result['processors']) ded_cpu = filter( lambda x: x['template'].get( 'dedicatedAccountHostOnlyFlag', False), result['processors']) def cpus_row(c, name): cpus = [] for x in c: cpus.append(str(x['template']['startCpus'])) t.add_row(['cpus (%s)' % name, listing(cpus, separator=',')]) cpus_row(ded_cpu, 'private') cpus_row(standard_cpu, 'standard') if args['--memory'] or show_all: memory = [ str(m['template']['maxMemory']) for m in result['memory']] t.add_row(['memory', listing(memory, separator=',')]) if args['--os'] or show_all: op_sys = [ o['template']['operatingSystemReferenceCode'] for o in result['operatingSystems']] op_sys = sorted(op_sys) os_summary = set() for o in op_sys: os_summary.add(o[0:o.find('_')]) for summary in sorted(os_summary): t.add_row([ 'os (%s)' % summary, linesep.join(sorted(filter( lambda x: x[0:len(summary)] == summary, op_sys)) ) ]) if args['--disk'] or show_all: local_disks = filter( lambda x: x['template'].get('localDiskFlag', False), result['blockDevices']) san_disks = filter( lambda x: not x['template'].get('localDiskFlag', False), result['blockDevices']) def block_rows(blocks, name): simple = {} for block in blocks: b = block['template']['blockDevices'][0] bid = b['device'] size = b['diskImage']['capacity'] if bid not in simple: simple[bid] = [] simple[bid].append(str(size)) for b in sorted(simple.keys()): t.add_row([ '%s disk(%s)' % (name, b), listing(simple[b], separator=',')] ) block_rows(local_disks, 'local') block_rows(san_disks, 'san') if args['--nic'] or show_all: speeds = [] for x in result['networkComponents']: speed = x['template']['networkComponents'][0]['maxSpeed'] speeds.append(str(speed)) speeds = sorted(speeds) t.add_row(['nic', listing(speeds, separator=',')]) return t