Example #1
0
 def __aki_display(aki, disp, pg):
     """Display AMI info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-14s %-10s %-5s",
                 aki.id, aki.architecture, aki.virtualization_type)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s:", aki.id)
         pg.prt("%15s : %-12s", "State", aki.state)
         pg.prt("%15s : %s", "Location", aki.location)
         pg.prt("%15s : %s", "Public", aki.is_public)
         pg.prt("%15s : %s", "Owner", aki.owner_id)
         if aki.description:
             pg.prt("%15s : %s", "Description", aki.description)
         pg.prt("%15s : %s %s %s", "Hardware",
                                     aki.architecture,
                                     aki.virtualization_type,
                                     aki.hypervisor,
                                     )
         if disp.display_tags:
             common.display_tags(aki.tags, pg)
     else:
         pg.prt("%s", aki.id)
         if disp.display_tags:
             common.display_tags(aki.tags)
Example #2
0
 def __nacl_display(network_acl, disp, pg):
     """Display nacl info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-20s", network_acl.id)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", network_acl.id)
         pg.prt("%15s : %s", "VPC", network_acl.vpc_id)
         pg.prt("%15s : %s", "Default", network_acl.default)
         for entry in network_acl.network_acl_entries:
             rule = "Rule %s" % entry.rule_number
             if entry.protocol == -1:
                 proto_spec = "ALL"
             else:
                 proto_spec = "%s:%s-%s" % (entry.protocol,
                             entry.port_range.from_port,
                             entry.port_range.to_port)
             if entry.egress:
                 direction = "egress"
             else:
                 direction = "ingress"
             pg.prt("%15s: %-8s %-10s %-20s %s ",
                         rule, direction, entry.rule_action,
                         proto_spec, entry.cidr_block)
         for assoc in network_acl.associations:
             pg.prt("%15s: %s", "Subnet", assoc.subnet_id)
         if disp.display_tags:
             common.display_tags(network_acl.tags, pg)
     else:
         pg.prt("%s", network_acl.id)
         if disp.display_tags:
             common.display_tags(network_acl.tags, pg)
Example #3
0
 def __eni_display(eni, disp, pg):
     """Display eni info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-14s %-8s %-14s %-18s %-10s", eni.id, eni.status, eni.vpc_id, eni.subnet_id, eni.availability_zone)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", eni.id)
         pg.prt("%15s : %s", "Status", eni.status)
         if eni.description:
             pg.prt("%15s : %s", "Description", eni.description)
         pg.prt("%15s : %s", "MAC", eni.mac_address)
         pg.prt("%15s : %s", "Zone", eni.availability_zone)
         pg.prt("%15s : %s", "VPC", eni.vpc_id)
         pg.prt("%15s : %s", "Subnet", eni.subnet_id)
         pg.prt("%15s : %s", "Req-managed", eni.requester_managed)
         if eni.private_ip_address:
             pg.prt("%15s : %s", "Primary-IP", eni.private_ip_address)
         if eni.private_ip_addresses:
             pg.prt("%15s : %s", "Private-IPs", ", ".join([x.private_ip_address for x in eni.private_ip_addresses]))
         if eni.groups:
             pg.prt("%15s : %s", "Groups", " ".join([group.id for group in eni.groups]))
         pg.prt("%15s : %s", "SRC/DST-check", eni.source_dest_check)
         if eni.attachment:
             att = eni.attachment
             pg.prt("%15s : %s", "Instance", optional(att.instance_id))
             pg.prt("%15s : %s", "Device-index", att.device_index)
             pg.prt("%15s : %s", "Attach-time", amazon2localtime(att.attach_time))
             pg.prt("%15s : %s", "DoT", att.delete_on_termination)
         if disp.display_tags:
             common.display_tags(eni.tags, pg)
     else:
         pg.prt("%s", eni.id)
         if disp.display_tags:
             common.display_tags(eni.tags, pg)
Example #4
0
 def __sg_display(self, sg, disp, pg):
     """Display all security group info
     """
     if disp.display == DisplayOptions.LONG:
         access_map = sg_access_map(sg.rules)
         out_str = "%-12s %-20s" % (sg.id, sg.name)
         for target in access_map:
             out_str += " %s:%s:%s" % (target[0], _make_port_spec(target),
                                     ",".join(list(access_map[target])))
         pg.prt("%s", out_str)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", sg.id)
         pg.prt("%15s : %s", "Name", sg.name)
         pg.prt("%15s : %s", "Description", sg.description)
         pg.prt("%15s : %s", "Owner", sg.owner_id)
         access_map = sg_access_map(sg.rules)
         for target in access_map:
             pg.prt("%15s : %-22s from %s",
                                     "In-rule",
                                     _PortSpec.make_str(target),
                                     ",".join(list(access_map[target])))
         if disp.display_tags:
             common.display_tags(sg.tags, pg)
     else:
         pg.prt("%s", sg.id)
         if disp.display_tags:
             common.display_tags(sg.tags, pg)
Example #5
0
 def __vol_display(self, vol, disp, pg, region):
     """Display volume info
     """
     self.cache_insert(region, [vol.id])
     if disp.display_size:
         pg.prt("%-14s %4s", vol.id, vol.size)
     else:
         if disp.display == DisplayOptions.LONG:
             snapshot_id = vol.snapshot_id.strip()
             if not snapshot_id:
                 snapshot_id = '-'
             pg.wrt("%-14s %-10s %-12s %4s %-14s",
                     vol.id, vol.status, vol.zone, vol.size, snapshot_id)
             if vol.snapshot_id:
                 self.cache_insert(region, [vol.snapshot_id])
             if vol.attach_data and vol.attach_data.instance_id:
                 attach_str = "%s:%s" % (vol.attach_data.instance_id,
                                             vol.attach_data.device)
             else:
                 attach_str = "-"
             pg.wrt(" %-22s", attach_str)
             if disp.display_name:
                 vol_name = vol.tags.get("Name")
                 if vol_name:
                     pg.wrt(" %s", vol_name)
             pg.wrt("\n")
         elif disp.display == DisplayOptions.EXTENDED:
             pg.prt("%s", vol.id)
             pg.prt("%15s : %s", "Status", vol.status)
             pg.prt("%15s : %s", "Size", vol.size)
             pg.prt("%15s : %s", "Creation-time",
                                     amazon2localtime(vol.create_time))
             if vol.snapshot_id:
                 pg.prt("%15s : %s", "Snapshot", vol.snapshot_id)
                 self.cache_insert(region, [vol.snapshot_id])
             pg.prt("%15s : %s", "Zone", vol.zone)
             pg.prt("%15s : %s", "Type", vol.type)
             if vol.iops:
                 pg.prt("%15s : %s", "IOPS", vol.iops)
             if vol.attach_data:
                 atd = vol.attach_data
                 if atd.instance_id:
                     pg.prt("%15s : %s", "Instance-id", atd.instance_id)
                 if atd.device:
                     pg.prt("%15s : %s", "Device", atd.device)
                 if atd.status:
                     pg.prt("%15s : %s", "Attach-status", atd.status)
                 if atd.attach_time:
                     pg.prt("%15s : %s", "Attach-time",
                                     amazon2localtime(atd.attach_time))
             if disp.display_tags:
                 common.display_tags(vol.tags, pg)
         else:
             pg.prt("%s", vol.id)
             if disp.display_tags:
                 common.display_tags(vol.tags, pg)
Example #6
0
 def __vpc_display(vpc, disp, pg):
     """Display VPC info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-14s %-10s %-20s", vpc.id, vpc.state, vpc.cidr_block)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", vpc.id)
         pg.prt("%15s : %s", "State", vpc.state)
         pg.prt("%15s : %s", "CIDR-block", vpc.cidr_block)
         pg.prt("%15s : %s", "DCHP-options", vpc.dhcp_options_id)
         if disp.display_tags:
             common.display_tags(vpc.tags, pg)
     else:
         pg.prt("%s", vpc.id)
         if disp.display_tags:
             common.display_tags(vpc.tags, pg)
Example #7
0
 def __ami_display(self, ami, disp, pg, region):
     """Display AMI info
     """
     if disp.display == DisplayOptions.LONG:
         if disp.display_name:
             last_field = ami.name
         else:
             last_field = ''
         pg.prt("%-14s %-10s %-14s %-5s %s",
                 ami.id, ami.architecture, ami.kernel_id,
                 ami.virtualization_type,
                 last_field)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", ami.id)
         pg.prt("%15s : %-12s", "State", ami.state)
         pg.prt("%15s : %s", "Location", ami.location)
         pg.prt("%15s : %s", "Name", ami.name)
         pg.prt("%15s : %s", "Public", ami.is_public)
         pg.prt("%15s : %s", "Owner", ami.owner_id)
         pg.prt("%15s : %s", "Description", ami.description)
         pg.prt("%15s : %s %s %s", "Hardware",
                                     ami.architecture,
                                     ami.virtualization_type,
                                     ami.hypervisor,
                                     )
         pg.prt("%15s : %s %s %s", "Software",
                                     ami.platform,
                                     ami.kernel_id,
                                     ami.ramdisk_id)
         pg.prt("%15s : %-12s %s", "Root",
                                     ami.root_device_name,
                                     ami.root_device_type)
         bdev_list = ami.block_device_mapping.keys()
         bdev_list.sort()
         for bdev in bdev_list:
             bdev_info = ami.block_device_mapping[bdev]
             pg.prt("%15s : %-12s %12s dot=%s",
                     "Device", bdev,
                     bdev_info.snapshot_id if bdev_info.snapshot_id else
                             bdev_info.ephemeral_name,
                     bdev_info.delete_on_termination)
         if disp.display_tags:
             common.display_tags(ami.tags, pg)
     else:
         pg.prt("%s", ami.id)
         if disp.display_tags:
             common.display_tags(ami.tags)
Example #8
0
 def __igw_display(igw, disp, pg):
     """Display internet gateway info
     """
     if disp.display == DisplayOptions.LONG:
         attachment_list = ["%s:%s" % (attachment.vpc_id, attachment.state)
                             for attachment in igw.attachments]
         disp_list = ["%-24s" % (a,) for a in attachment_list]
         pg.prt("%-14s %s", igw.id, " ".join(disp_list))
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", igw.id)
         for attachment in igw.attachments:
             pg.prt("%15s : %s", attachment.vpc_id, attachment.state)
         if disp.display_tags:
             common.display_tags(igw.tags, pg)
     else:
         pg.prt("%s", igw.id)
         if disp.display_tags:
             common.display_tags(igw.tags, pg)
Example #9
0
 def __dhcp_display(dhcp_opt, disp, pg):
     """Display dhcp info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-20s", dhcp_opt.id)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", dhcp_opt.id)
         for option_name in dhcp_opt.options:
             option_value = dhcp_opt.options[option_name]
             if isinstance(option_value, list):
                 disp_str = ", ".join(option_value)
             else:
                 disp_str = option_value
             pg.prt("%25s : %s", option_name, disp_str)
         if disp.display_tags:
             common.display_tags(dhcp_opt.tags, pg)
     else:
         pg.prt("%s", dhcp_opt.id)
         if disp.display_tags:
             common.display_tags(dhcp_opt.tags, pg)
 def __subnet_display(subnet, disp, pg):
     """Display subnet info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-20s %-8s %-18s %-4s %-12s",
                 subnet.id, subnet.state, subnet.cidr_block,
                 subnet.available_ip_address_count,
                 subnet.availability_zone)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", subnet.id)
         pg.prt("%15s : %s", "State", subnet.state)
         pg.prt("%15s : %s", "CIDR-block", subnet.cidr_block)
         pg.prt("%15s : %s", "Avail-IP", subnet.available_ip_address_count)
         pg.prt("%15s : %s", "Zone", subnet.availability_zone)
         pg.prt("%15s : %s", "VPC", subnet.vpc_id)
         if disp.display_tags:
             common.display_tags(subnet.tags, pg)
     else:
         pg.prt("%s", subnet.id)
         if disp.display_tags:
             common.display_tags(subnet.tags, pg)
Example #11
0
 def __snap_display(self, snapshot, disp, pg, region):
     """Display snapshot info
     """
     self.cache_insert(region, [snapshot.id])
     if disp.display_size:
         pg.prt("%-14s %4s", snapshot.id, snapshot.volume_size)
     else:
         if disp.display == DisplayOptions.LONG:
             if disp.display_name:
                 last_field = snapshot.tags.get("Name", "-")
             else:
                 last_field = snapshot.description
             pg.prt("%-14s %-10s %6s %4s '%s'",
                 snapshot.id, snapshot.status,
                 amazon2localtime(snapshot.start_time),
                 snapshot.volume_size, last_field)
         elif disp.display == DisplayOptions.EXTENDED:
             pg.prt("%s", snapshot.id)
             pg.prt("%15s : %s", "Status", snapshot.status)
             pg.prt("%15s : %s", "Progress", snapshot.progress)
             pg.prt("%15s : %s", "Description", snapshot.description)
             pg.prt("%15s : %s", "Start-time", 
                                     amazon2localtime(snapshot.start_time))
             pg.prt("%15s : %s", "Size", snapshot.volume_size)
             pg.prt("%15s : %s", "Volume", snapshot.volume_id)
             self.cache_insert(region, [snapshot.volume_id])
             try:
                 snapshot_attr_list = snapshot.get_permissions()
                 for snapshot_attr in snapshot_attr_list:
                     pg.prt("%15s : %s",
                             snapshot_attr, 
                             ", ".join(snapshot_attr_list[snapshot_attr]))
             except Exception, ex:
                 pg.prt("No permissions for %s: %s", snapshot.id, ex)
             if disp.display_tags:
                 common.display_tags(snapshot.tags, pg)
         else:
Example #12
0
 def __rtb_display(rtb, disp, pg):
     """Display route-table info
     """
     if disp.display == DisplayOptions.LONG:
         pg.prt("%-14s %-10s", rtb.id, rtb.vpc_id)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", rtb.id)
         pg.prt("%15s : %s", "VPC", rtb.vpc_id)
         for route in rtb.routes:
             if route.gateway_id:
                 dest = route.gateway_id 
             else:
                 dest = route.instance_id 
             pg.prt("%15s : %-16s %-12s %s",
                     "Route",
                     route.destination_cidr_block,
                     dest,
                     route.state)
         if disp.display_tags:
             common.display_tags(rtb.tags, pg)
     else:
         pg.prt("%s", rtb.id)
         if disp.display_tags:
             common.display_tags(rtb.tags, pg)
Example #13
0
 def __inst_display(self, instance, disp, pg, region):
     """Display information about the specified instance.
     """
     res_id_list = [instance.id]
     if disp.display == DisplayOptions.LONG:
         if disp.display_name:
             last_field = instance.tags.get("Name", "-")
         else:
             last_field = amazon2localtime(instance.launch_time)
         pg.prt("%-12s %-10s %-12s %-10s %s",
                 instance.id, instance.state,
                 instance.placement,
                 instance.instance_type,
                 last_field)
     elif disp.display == DisplayOptions.EXTENDED:
         pg.prt("%s", instance.id)
         pg.prt("%15s : %-12s", "State", instance.state)
         pg.prt("%15s : %s", "Launch-time", 
                         amazon2localtime(instance.launch_time))
         pg.prt("%15s : %s", "Location", instance.placement)
         pg.prt("%15s : %s %s %s %s", "Hardware",
                                     instance.instance_type,
                                     instance.architecture,
                                     instance.virtualization_type,
                                     instance.hypervisor,
                                     )
         pg.prt("%15s : %s %s %s %s", "Software",
                                     instance.platform,
                                     instance.image_id,
                                     instance.kernel,
                                     instance.ramdisk)
         res_id_list.append(instance.image_id)
         if instance.kernel:
             res_id_list.append(instance.kernel)
         if instance.ramdisk:
             res_id_list.append(instance.ramdisk)
         pg.prt("%15s : %-12s %s", "Root",
                                     instance.root_device_name,
                                     instance.root_device_type)
         pg.prt("%15s : %s", "EBS-optimized",
                     "True" if instance.ebs_optimized else "False")
         if instance.vpc_id:
             pg.prt("%15s : %-14s %-16s", "VPC-info",
                                 instance.vpc_id, instance.subnet_id)
             res_id_list.extend([instance.vpc_id, instance.subnet_id])
         if instance.private_ip_address:
             pg.prt("%15s : %s %s", "IP",
                                     instance.ip_address,
                                     instance.private_ip_address)
         for netif in instance.interfaces:
             pg.prt("%15s : %-15s idx=%-2s %-16s SDC=%s",
                             "Interface",
                             netif.id,
                             netif.attachment.device_index,
                             netif.private_ip_address,
                             "on" if netif.source_dest_check else "off"
                             )
             res_id_list.append(netif.id)
         if instance.groups:
             group_id_list = [group.id for group in instance.groups]
             pg.prt("%15s : %s", "Groups", " ".join(group_id_list))
             res_id_list.extend(group_id_list)
         bdev_list = instance.block_device_mapping.keys()
         bdev_list.sort()
         for bdev in bdev_list:
             bdev_info = instance.block_device_mapping[bdev]
             pg.prt("%15s : %-12s %-12s %s dot=%s",
                     "Device", bdev,
                     bdev_info.volume_id,
                     bdev_info.status,
                     bdev_info.delete_on_termination)
             res_id_list.append(bdev_info.volume_id)
         if disp.display_tags:
             common.display_tags(instance.tags, pg)
     else:
         pg.prt("%s", instance.id)
         if disp.display_tags:
             common.display_tags(instance.tags, pg)
     self.cache_insert(region, res_id_list)
Example #14
0
                pg.prt("%15s : %s", "Volume", snapshot.volume_id)
                self.cache_insert(region, [snapshot.volume_id])
                try:
                    snapshot_attr_list = snapshot.get_permissions()
                    for snapshot_attr in snapshot_attr_list:
                        pg.prt("%15s : %s",
                                snapshot_attr, 
                                ", ".join(snapshot_attr_list[snapshot_attr]))
                except Exception, ex:
                    pg.prt("No permissions for %s: %s", snapshot.id, ex)
                if disp.display_tags:
                    common.display_tags(snapshot.tags, pg)
            else:
                pg.prt("%s", snapshot.id)
                if disp.display_tags:
                    common.display_tags(snapshot.tags, pg)

    def __snap_list_cmd(self, region, selector, disp):
        """Implements the list function of the snap command
        """
        if not selector.has_selection():
            return
        ec2_conn = self.get_ec2_conn(region)
        snapshot_list = ec2_conn.get_all_snapshots(
                                snapshot_ids=selector.resource_id_list,
                                owner='self',
                                filters=selector.get_filter_dict())
        snapshot_list = selector.filter_resources(snapshot_list)
        with CommandOutput(output_path=disp.get_output_file()) as pg:
            if disp.display_count:
                if disp.display_size: