Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(rust): improvements to portals commands arguments #8618

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ async fn start_node(ctx: Context, project_information_path: &str, token: OneTime
// 4. create a tcp outlet with the above policy
tcp.create_outlet(
"outlet",
HostnamePort::new("127.0.0.1", 5000),
HostnamePort::new("127.0.0.1", 5000)?,
TcpOutletOptions::new()
.with_incoming_access_control_impl(incoming_access_control)
.with_outgoing_access_control_impl(outgoing_access_control),
Expand Down
2 changes: 1 addition & 1 deletion implementations/rust/ockam/ockam/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ pub use relay_service::{RelayService, RelayServiceOptions};
/// Transport
pub mod transport {
pub use ockam_transport_core::{
parse_socket_addr, HostnamePort, StaticHostnamePort, Transport,
parse_socket_addr, HostnamePort, SchemeHostnamePort, StaticHostnamePort, Transport,
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ impl KafkaInletController {
}

let inlet_bind_address =
HostnamePort::new(inner.bind_hostname.clone(), inner.current_port);
HostnamePort::new(inner.bind_hostname.clone(), inner.current_port)?;

let node_manager = self.node_manager.upgrade().ok_or_else(|| {
Error::new(Origin::Node, Kind::Internal, "node manager was shut down")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ async fn producer__flow_with_mock_kafka__content_encryption_and_decryption(
.tcp
.create_outlet(
"kafka_consumer_outlet",
HostnamePort::new("127.0.0.1", consumer_mock_kafka.port),
HostnamePort::new("127.0.0.1", consumer_mock_kafka.port)?,
TcpOutletOptions::new(),
)
.await?;
Expand All @@ -179,7 +179,7 @@ async fn producer__flow_with_mock_kafka__content_encryption_and_decryption(
.tcp
.create_outlet(
"kafka_producer_outlet",
HostnamePort::new("127.0.0.1", producer_mock_kafka.port),
HostnamePort::new("127.0.0.1", producer_mock_kafka.port)?,
TcpOutletOptions::new(),
)
.await?;
Expand Down Expand Up @@ -216,7 +216,7 @@ async fn producer__flow_with_mock_kafka__content_encryption_and_decryption(
.tcp
.create_outlet(
"kafka_consumer_outlet",
HostnamePort::new("127.0.0.1", consumer_mock_kafka.port),
HostnamePort::new("127.0.0.1", consumer_mock_kafka.port)?,
TcpOutletOptions::new(),
)
.await?;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,10 @@ mod tests {
}

fn outlet_info(worker_addr: Address) -> OutletInfo {
OutletInfo::new(HostnamePort::new("127.0.0.1", 0), Some(&worker_addr), true)
OutletInfo::new(
HostnamePort::new("127.0.0.1", 0).unwrap(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could make a function HostnamePort::localhost(u16) that is guaranteed to succeed, instead of unwrapping here.

Some(&worker_addr),
true,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,7 @@ impl NodeManager {

// the port could be zero, to simplify the following code we
// resolve the address to a full socket address
let socket_addr =
ockam_node::compat::asynchronous::resolve_peer(listen_addr.to_string()).await?;
let socket_addr = ockam_node::compat::asynchronous::resolve_peer(&listen_addr).await?;
let listen_addr = if listen_addr.port() == 0 {
get_free_address_for(&socket_addr.ip().to_string())
.map_err(|err| ockam_core::Error::new(Origin::Transport, Kind::Invalid, err))?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ impl RendezvousHealthcheck {
udp_socket_address: SocketAddr,
) -> Result<Self> {
let peer = if udp_socket_address.ip().is_unspecified() {
HostnamePort::new("localhost", udp_socket_address.port()).to_string()
HostnamePort::new("localhost", udp_socket_address.port())?.to_string()
} else {
udp_socket_address.to_string()
};
Expand Down
2 changes: 1 addition & 1 deletion implementations/rust/ockam/ockam_api/tests/latency.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ pub fn measure_buffer_latency_two_nodes_portal() {
.node_manager
.create_inlet(
&first_node.context,
HostnamePort::new("127.0.0.1", 0),
HostnamePort::new("127.0.0.1", 0)?,
route![],
route![],
second_node_listen_address
Expand Down
10 changes: 5 additions & 5 deletions implementations/rust/ockam/ockam_api/tests/portals.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ async fn inlet_outlet_local_successful(context: &mut Context) -> ockam::Result<(
.node_manager
.create_inlet(
context,
HostnamePort::new("127.0.0.1", 0),
HostnamePort::new("127.0.0.1", 0)?,
route![],
route![],
MultiAddr::from_str("/secure/api/service/outlet")?,
Expand Down Expand Up @@ -122,7 +122,7 @@ fn portal_node_goes_down_reconnect() {
.node_manager
.create_inlet(
&first_node.context,
HostnamePort::new("127.0.0.1", 0),
HostnamePort::new("127.0.0.1", 0)?,
route![],
route![],
second_node_listen_address
Expand Down Expand Up @@ -280,7 +280,7 @@ fn portal_low_bandwidth_connection_keep_working_for_60s() {
.node_manager
.create_inlet(
&first_node.context,
HostnamePort::new("127.0.0.1", 0),
HostnamePort::new("127.0.0.1", 0)?,
route![],
route![],
InternetAddress::from(passthrough_server_handle.chosen_addr)
Expand Down Expand Up @@ -394,7 +394,7 @@ fn portal_heavy_load_exchanged() {
.node_manager
.create_inlet(
&first_node.context,
HostnamePort::new("127.0.0.1", 0),
HostnamePort::new("127.0.0.1", 0)?,
route![],
route![],
second_node_listen_address
Expand Down Expand Up @@ -547,7 +547,7 @@ fn test_portal_payload_transfer(outgoing_disruption: Disruption, incoming_disrup
.node_manager
.create_inlet(
&first_node.context,
HostnamePort::new("127.0.0.1", 0),
HostnamePort::new("127.0.0.1", 0)?,
route![],
route![],
InternetAddress::from(passthrough_server_handle.chosen_addr)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use ockam::transport::HostnamePort;
use ockam::Address;
use ockam_api::address::extract_address_value;
use ockam_api::nodes::models::portal::OutletAccessControl;
use std::str::FromStr;
use std::sync::Arc;
use tracing::{debug, info};

Expand All @@ -21,9 +22,12 @@ impl AppState {
} else {
format!("{DEFAULT_HOST}:{to}")
};
let socket_addr = resolve_peer(addr).await.into_diagnostic().wrap_err(
"Invalid address. The expected formats are 'host:port', 'ip:port' or 'port'",
)?;
let socket_addr = resolve_peer(&HostnamePort::from_str(&addr)?)
.await
.into_diagnostic()
.wrap_err(
"Invalid address. The expected formats are 'host:port', 'ip:port' or 'port'",
)?;
let worker_addr: Address = extract_address_value(&from)
.wrap_err("Invalid service address")?
.into();
Expand Down
Loading
Loading