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,
)