aboutsummaryrefslogtreecommitdiff
path: root/src/garage/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/garage/main.rs')
-rw-r--r--src/garage/main.rs25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/garage/main.rs b/src/garage/main.rs
index 7f7196d9..2a939730 100644
--- a/src/garage/main.rs
+++ b/src/garage/main.rs
@@ -9,6 +9,7 @@ mod cli;
mod repair;
mod server;
+use std::net::SocketAddr;
use std::path::PathBuf;
use structopt::StructOpt;
@@ -46,6 +47,9 @@ struct Opt {
#[tokio::main]
async fn main() {
+ if std::env::var("RUST_LOG").is_err() {
+ std::env::set_var("RUST_LOG", "garage=info")
+ }
pretty_env_logger::init();
sodiumoxide::init().expect("Unable to init sodiumoxide");
@@ -99,12 +103,23 @@ async fn cli_command(opt: Opt) -> Result<(), Error> {
let (id, addr) = if let Some(h) = opt.rpc_host {
let (id, addrs) = parse_and_resolve_peer_addr(&h).ok_or_else(|| format!("Invalid RPC remote node identifier: {}. Expected format is <pubkey>@<IP or hostname>:<port>.", h))?;
(id, addrs[0])
- } else if let Some(a) = config.as_ref().map(|c| c.rpc_public_addr).flatten() {
- let node_id = garage_rpc::system::read_node_id(&config.unwrap().metadata_dir)
- .err_context(READ_KEY_ERROR)?;
- (node_id, a)
} else {
- return Err(Error::Message("No RPC host provided".into()));
+ let node_id = garage_rpc::system::read_node_id(&config.as_ref().unwrap().metadata_dir)
+ .err_context(READ_KEY_ERROR)?;
+ if let Some(a) = config.as_ref().map(|c| c.rpc_public_addr).flatten() {
+ (node_id, a)
+ } else {
+ let default_addr = SocketAddr::new(
+ "127.0.0.1".parse().unwrap(),
+ config.as_ref().unwrap().rpc_bind_addr.port(),
+ );
+ warn!(
+ "Trying to contact Garage node at default address {}",
+ default_addr
+ );
+ warn!("If this doesn't work, consider adding rpc_public_addr in your config file or specifying the -h command line parameter.");
+ (node_id, default_addr)
+ }
};
// Connect to target host