def reformat_node(item=None, full=False): """ Reformat the returned data from joyent, determine public/private IPs and strip out fields if necessary to provide either full or brief content. :param item: node dictionary :param full: full or brief output :return: dict """ desired_keys = ["id", "name", "state", "public_ips", "private_ips", "size", "image", "location"] item["private_ips"] = [] item["public_ips"] = [] if "ips" in item: for ip in item["ips"]: if is_public_ip(ip): item["public_ips"].append(ip) else: item["private_ips"].append(ip) # add any undefined desired keys for key in desired_keys: if not key in item.keys(): item[key] = None # remove all the extra key value pairs to provide a brief listing if not full: for key in item.keys(): if not key in desired_keys: del item[key] if "state" in item.keys(): item["state"] = joyent_node_state(item["state"]) return item
def reformat_node(item=None, full=False): ''' Reformat the returned data from joyent, determine public/private IPs and strip out fields if necessary to provide either full or brief content. :param item: node dictionary :param full: full or brief output :return: dict ''' desired_keys = [ 'id', 'name', 'state', 'public_ips', 'private_ips', 'size', 'image', 'location' ] item['private_ips'] = [] item['public_ips'] = [] if 'ips' in item: for ip in item['ips']: if is_public_ip(ip): item['public_ips'].append(ip) else: item['private_ips'].append(ip) # add any undefined desired keys for key in desired_keys: if key not in item: item[key] = None # remove all the extra key value pairs to provide a brief listing to_del = [] if not full: for key in six.iterkeys(item): # iterate over a copy of the keys if key not in desired_keys: to_del.append(key) for key in to_del: del item[key] if 'state' in item: item['state'] = joyent_node_state(item['state']) return item