devops_armory/cloud/gcp/gke/node/
get.rs1use awc::{
2 Client, Connector,
3};
4
5use openssl::ssl::{
6 SslConnector,
7 SslMethod,
8 SslVerifyMode
9};
10
11use super::models::NodeList;
12
13pub async fn get_node_info(
16 token: String,
17 gke_cluster_endpoint: String,
18 gke_cluster_node: String
19) -> Result<(), std::io::Error> {
20
21 let mut builder = SslConnector::builder(SslMethod::tls()).unwrap();
22 builder.set_verify(SslVerifyMode::NONE);
23 let myconnector = builder.build();
24 let client = Client::builder()
25 .connector(Connector::new().openssl(myconnector))
26 .finish();
27
28 let get_nodes_request = client
29 .get(format!("https://{gke_cluster_endpoint}:443/api/v1/nodes/{gke_cluster_node}"))
30 .bearer_auth(format!("{token}"))
31 .send()
32 .await
33 .expect("Request get nodes failed");
34
35 let mut req = get_nodes_request;
36
37 let req_status = req.status().as_u16();
38
39 let response = req.json::<NodeList>().await.unwrap_or_default();
40
41 match req_status {
42 200 => {
43 println!("Request has been successfull: Status: {:?}, {:?}", req_status, response);
44 },
45 201 => {
46 println!("Successfully created ingress: {:?}", response);
47 }
48 400 => {
49 println!("Bad Request. Check URL parameters or body: {:?}", response);
50 },
51 403 => {
52 println!("You don't have access to perform such request: {:?}", response);
53 }
54 404 => {
55 println!("Requested resource does not exists: {:?}", response);
56 },
57 409 => {
58 println!("Requested resource already exists! {:?}", response)
59 }
60 _ => {
61 println!("Request status mismatch. Check response: {:?}", response);
62 }
63 }
64
65 Ok(())
66
67}