def _to_node()

in libcloud/compute/drivers/vultr.py [0:0]


    def _to_node(self, data):
        if "status" in data:
            state = self.NODE_STATE_MAP.get(data["status"], NodeState.UNKNOWN)
            if state == NodeState.RUNNING and data["power_status"] != "running":
                state = NodeState.STOPPED
        else:
            state = NodeState.UNKNOWN

        if "main_ip" in data and data["main_ip"] is not None:
            public_ips = [data["main_ip"]]
        else:
            public_ips = []
        # simple check that we have ip address in value
        if len(data["internal_ip"]) > 0:
            private_ips = [data["internal_ip"]]
        else:
            private_ips = []
        created_at = parse_date(data["date_created"])

        # response ordering
        extra_keys = [
            "location",  # Location name
            "default_password",
            "pending_charges",
            "cost_per_month",
            "current_bandwidth_gb",
            "allowed_bandwidth_gb",
            "netmask_v4",
            "gateway_v4",
            "power_status",
            "server_state",
            "v6_networks",
            # TODO: Does we really need kvm_url?
            "kvm_url",
            "auto_backups",
            "tag",
            # "OSID",  # Operating system to use. See v1/os/list.
            "APPID",
            "FIREWALLGROUPID",
        ]
        extra = self._helper.handle_extra(extra_keys, data)

        resolve_data = VULTR_COMPUTE_INSTANCE_IMAGES.get(data["OSID"])
        if resolve_data:
            image = self._to_image(resolve_data)
        else:
            image = None

        resolve_data = VULTR_COMPUTE_INSTANCE_SIZES.get(data["VPSPLANID"])
        if resolve_data:
            size = self._to_size(resolve_data)
        else:
            size = None

        # resolve_data = VULTR_COMPUTE_INSTANCE_LOCATIONS.get(data['DCID'])
        # if resolve_data:
        #     location = self._to_location(resolve_data)
        # extra['location'] = location

        node = Node(
            id=data["SUBID"],
            name=data["label"],
            state=state,
            public_ips=public_ips,
            private_ips=private_ips,
            image=image,
            size=size,
            extra=extra,
            created_at=created_at,
            driver=self,
        )

        return node