def read()

in footmark/ecs/instance.py [0:0]


    def read(self):
        instance = {"gpu": {"amount": 0, "spec": ""}, "private_ip_address": self.private_ip_address}
        for name, value in list(self.__dict__.items()):
            if name in ["connection", "region_id", "region", "security_group_ids", "dedicated_host_attribute", "device_available",
                        "operation_locks", "recyclable", "sale_cycle", "serial_number", "stopped_mode",
                        "vlan_id", "spot_price_limit", "spot_strategy", "cluster_id", "instance_network_type", "start_time"]:
                continue

            if name == "instance_id":
                instance['id'] = value

            if name == "block_device_mappings":
                volumes = []
                for disk in value:
                    volumes.append({
                        "device_name": disk.device,
                        "attach_time": disk.attached_time,
                        "delete_on_termination": disk.delete_with_instance,
                        "status": disk.status,
                        "volume_id": disk.disk_id
                    })
                value = volumes

            if name == "security_groups":
                groups = []
                for sg in value:
                    groups.append({
                        "group_id": sg.security_group_id,
                        "group_name": sg.security_group_name
                    })
                value = groups

            # instance private ip contains private_ip_address and inner_ip_address(Classic)
            if name == "vpc_attributes":
                instance["vpc_id"] = value["vpc_id"]
                instance["vswitch_id"] = value["vswitch_id"]
                continue

            if name == "network_interfaces":
                value = value["network_interface"]

            if name == "eip_address":
                name = "eip"

            if name == "gpuamount":
                instance["gpu"]["amount"] = value
                continue

            if name == "gpuspec":
                instance["gpu"]["specification"] = value
                continue

            if name == "zone_id":
                name = "availability_zone"

            instance[name] = value
        return instance