1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use anyhow::{anyhow, Result};
use serde::{Deserialize, Serialize};
use serde_json::json;
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct LookupResponse {
pub ips: Vec<String>,
}
pub fn lookup_host(host: &str) -> Result<LookupResponse> {
let req = json!(host);
let msg = serde_json::to_vec(&req)
.map_err(|e| anyhow!("error serializing the validation request: {}", e))?;
let response_raw = wapc_guest::host_call("kubewarden", "net", "v1/dns_lookup_host", &msg)
.map_err(|e| anyhow!("error invoking wapc net.dns_lookup_host : {:?}", e))?;
let response: LookupResponse = serde_json::from_slice(&response_raw)?;
Ok(response)
}