def _to_node()

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


    def _to_node(self, data: Dict[str, Any]) -> Node:
        id_ = data["id"]
        name = data["label"]
        public_ips = data["main_ip"].split() + data["v6_main_ip"].split()
        size = data["plan"]
        image = str(data["os_id"])
        created_at = data["date_created"]
        is_bare_metal = self._is_bare_metal(size)
        extra = {
            "location": data["region"],
            "ram": data["ram"],
            "disk": data["disk"],
            "netmask_v4": data["netmask_v4"],
            "gateway_v4": data["gateway_v4"],
            "v6_network": data["v6_network"],
            "v6_network_size": data["v6_network_size"],
            "app_id": data["app_id"],
            "image_id": data["image_id"],
            "features": data["features"],
            "tag": data["tag"],
            "os": data["os"],
            "is_bare_metal": is_bare_metal,
        }
        if is_bare_metal:
            state = self._get_node_state(data["status"])
            extra["cpu_count"] = data["cpu_count"]
            extra["mac_address"] = data["mac_address"]
            private_ips = None
        else:
            state = self._get_node_state(data["status"], power_state=data["power_status"])
            extra["vcpu_count"] = data["vcpu_count"]
            extra["allowed_bandwidth"] = data["allowed_bandwidth"]
            extra["power_status"] = data["power_status"]
            extra["server_status"] = data["server_status"]
            extra["firewall_group_id"] = data["firewall_group_id"]
            private_ips = data["internal_ip"].split()

        return Node(
            id=id_,
            name=name,
            state=state,
            public_ips=public_ips,
            private_ips=private_ips,
            driver=self,
            size=size,
            image=image,
            extra=extra,
            created_at=created_at,
        )