From 50457f42b0b3f460d67f19c85b3a67fe9e7a394c Mon Sep 17 00:00:00 2001 From: Jake Fullerton Date: Wed, 11 Oct 2023 16:35:49 -0400 Subject: [PATCH] make rust build --- rs/Cargo.toml | 1 + rs/src/management/http_client.rs | 25 +++++++++++++++++++++++-- rs/src/management/id_generation.rs | 24 ------------------------ 3 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 rs/src/management/id_generation.rs diff --git a/rs/Cargo.toml b/rs/Cargo.toml index f06ec6d4..69eb0d81 100644 --- a/rs/Cargo.toml +++ b/rs/Cargo.toml @@ -19,6 +19,7 @@ tokio-tungstenite = { version = "0.20", optional = true, features = ["native-tls futures = { version = "0.3", optional = true } tungstenite = { version = "0.20", optional = true, features = ["native-tls"] } uuid = { version = "1.4", features = ["v4"], optional = true } +rand = "0.8.5" russh = { version = "0.37.1", default-features = false, features = ["openssl", "flate2"], optional = true } russh-keys = { version = "0.37.1", default-features = false, features = ["openssl"], optional = true } hyper = "0.14" diff --git a/rs/src/management/http_client.rs b/rs/src/management/http_client.rs index eac0b872..8c8f1f8c 100644 --- a/rs/src/management/http_client.rs +++ b/rs/src/management/http_client.rs @@ -10,6 +10,9 @@ use reqwest::{ use serde::{de::DeserializeOwned, Serialize}; use url::Url; +extern crate rand; +use rand::Rng; + use crate::contracts::{ env_production, Tunnel, TunnelConnectionMode, TunnelEndpoint, TunnelPort, TunnelRelayTunnelEndpoint, TunnelServiceProperties, NamedRateStatus, TunnelPortListResponse, TunnelListByRegionResponse, @@ -87,12 +90,12 @@ impl TunnelManagementClient { /// Creates a new tunnel. pub async fn create_tunnel( &self, - tunnel: &Tunnel, + mut tunnel: Tunnel, options: &TunnelRequestOptions, ) -> HttpResult { if tunnel.tunnel_id.is_none() || tunnel.tunnel_id.as_ref().unwrap().is_empty() { - tunnel.tunnel_id = Some(super::IdGeneration::generate_tunnel_id()); + tunnel.tunnel_id = Some(TunnelManagementClient::generate_tunnel_id()); } let url = self.build_uri(tunnel.cluster_id.as_deref(), TUNNELS_API_PATH); let mut request = self.make_tunnel_request(Method::PUT, url, options).await?; @@ -448,6 +451,24 @@ impl TunnelManagementClient { Ok(request) } + + fn generate_tunnel_id() -> String { + const NOUNS: [&'static str; 16] = [ "pond", "hill", "mountain", "field", "fog", "ant", "dog", "cat", "shoe", "plane", "chair", "book", "ocean", "lake", "river" , "horse"]; + const ADJECTIVES: [&'static str; 20] = ["fun", "happy", "interesting", "neat", "peaceful", "puzzled", "kind", "joyful", "new", "giant", "sneaky", "quick", "majestic", "jolly" , "fancy", "tidy", "swift", "silent", "amusing", "spiffy"]; + const TUNNEL_ID_CHARS: &'static str = "bcdfghjklmnpqrstvwxz0123456789"; + + let mut rng = rand::thread_rng(); + let mut tunnel_id = String::new(); + tunnel_id.push_str(ADJECTIVES[rng.gen_range(0..ADJECTIVES.len())]); + tunnel_id.push('-'); + tunnel_id.push_str(NOUNS[rng.gen_range(0..NOUNS.len())]); + tunnel_id.push('-'); + + for _ in 0..7 { + tunnel_id.push(TUNNEL_ID_CHARS.chars().nth(rng.gen_range(0..TUNNEL_ID_CHARS.len())).unwrap()); + } + tunnel_id + } } fn json_body(request: &mut Request, body: T) diff --git a/rs/src/management/id_generation.rs b/rs/src/management/id_generation.rs deleted file mode 100644 index ba574e68..00000000 --- a/rs/src/management/id_generation.rs +++ /dev/null @@ -1,24 +0,0 @@ -extern crate rand; -use rand::Rng; - -pub struct IdGeneration; - -impl IdGeneration { - const NOUNS: [&'static str; 21] = ["pond", "hill", "mountain", "field", "fog", "ant", "dog", "cat", "rabbit", "shoe", "campsite", "plane", "cake", "sofa", "chair", "library", "book", "ocean", "lake", "river", "horse"]; - const ADJECTIVES: [&'static str; 24] = ["fun", "happy", "interesting", "neat", "peaceful", "puzzeled", "thoughtful", "kind", "joyful", "overjoyed", "new", "giant", "sneaky", "quick", "majestic", "gleaming", "jolly", "fancy", "tidy", "marvelous", "glamorous", "swift", "silent", "amusing", "spiffy"]; - const TUNNEL_ID_CHARS: &'static str = "bcdfghjklmnpqrstvwxz0123456789"; - - pub fn generate_tunnel_id() -> String { - let mut rng = rand::thread_rng(); - let mut tunnel_id = String::new(); - tunnel_id.push_str(Self::ADJECTIVES[rng.gen_range(0, Self::ADJECTIVES.len())]); - tunnel_id.push('-'); - tunnel_id.push_str(Self::NOUNS[rng.gen_range(0, Self::NOUNS.len())]); - tunnel_id.push('-'); - - for _ in 0..7 { - tunnel_id.push(Self::TUNNEL_ID_CHARS.chars().nth(rng.gen_range(0, Self::TUNNEL_ID_CHARS.len())).unwrap()); - } - tunnel_id - } -} \ No newline at end of file