Skip to content

Commit

Permalink
Set local network as the default for container commands. (#1852)
Browse files Browse the repository at this point in the history
  • Loading branch information
fnando authored Jan 29, 2025
1 parent ec6d03a commit d428f58
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 24 deletions.
32 changes: 21 additions & 11 deletions FULL_HELP_DOCS.md
Original file line number Diff line number Diff line change
Expand Up @@ -1223,11 +1223,11 @@ By default, when starting a testnet container, without any optional arguments, i

`docker run --rm -p 8000:8000 --name stellar stellar/quickstart:testing --testnet --enable rpc,horizon`

**Usage:** `stellar network start [OPTIONS] <NETWORK>`
**Usage:** `stellar network start [OPTIONS] [NETWORK]`

###### **Arguments:**

* `<NETWORK>` — Network to start
* `<NETWORK>` — Network to start. Default is `local`

Possible values: `local`, `testnet`, `futurenet`, `pubnet`

Expand All @@ -1251,12 +1251,14 @@ By default, when starting a testnet container, without any optional arguments, i

Stop a network started with `network start`. For example, if you ran `stellar network start local`, you can use `stellar network stop local` to stop it.

**Usage:** `stellar network stop [OPTIONS] <NAME>`
**Usage:** `stellar network stop [OPTIONS] [NAME]`

###### **Arguments:**

* `<NAME>` — Container to stop

Default value: `local`

###### **Options:**

* `-d`, `--docker-host <DOCKER_HOST>` — Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
Expand Down Expand Up @@ -1300,12 +1302,14 @@ Commands to start, stop and get logs for a quickstart container

Get logs from a running network container

**Usage:** `stellar network container logs [OPTIONS] <NAME>`
**Usage:** `stellar network container logs [OPTIONS] [NAME]`

###### **Arguments:**

* `<NAME>` — Container to get logs from

Default value: `local`

###### **Options:**

* `-d`, `--docker-host <DOCKER_HOST>` — Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
Expand All @@ -1322,11 +1326,11 @@ By default, when starting a testnet container, without any optional arguments, i

`docker run --rm -p 8000:8000 --name stellar stellar/quickstart:testing --testnet --enable rpc,horizon`

**Usage:** `stellar network container start [OPTIONS] <NETWORK>`
**Usage:** `stellar network container start [OPTIONS] [NETWORK]`

###### **Arguments:**

* `<NETWORK>` — Network to start
* `<NETWORK>` — Network to start. Default is `local`

Possible values: `local`, `testnet`, `futurenet`, `pubnet`

Expand All @@ -1348,12 +1352,14 @@ By default, when starting a testnet container, without any optional arguments, i

Stop a network container started with `stellar container start`

**Usage:** `stellar network container stop [OPTIONS] <NAME>`
**Usage:** `stellar network container stop [OPTIONS] [NAME]`

###### **Arguments:**

* `<NAME>` — Container to stop

Default value: `local`

###### **Options:**

* `-d`, `--docker-host <DOCKER_HOST>` — Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
Expand All @@ -1378,12 +1384,14 @@ Start local networks in containers

Get logs from a running network container

**Usage:** `stellar container logs [OPTIONS] <NAME>`
**Usage:** `stellar container logs [OPTIONS] [NAME]`

###### **Arguments:**

* `<NAME>` — Container to get logs from

Default value: `local`

###### **Options:**

* `-d`, `--docker-host <DOCKER_HOST>` — Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
Expand All @@ -1400,11 +1408,11 @@ By default, when starting a testnet container, without any optional arguments, i

`docker run --rm -p 8000:8000 --name stellar stellar/quickstart:testing --testnet --enable rpc,horizon`

**Usage:** `stellar container start [OPTIONS] <NETWORK>`
**Usage:** `stellar container start [OPTIONS] [NETWORK]`

###### **Arguments:**

* `<NETWORK>` — Network to start
* `<NETWORK>` — Network to start. Default is `local`

Possible values: `local`, `testnet`, `futurenet`, `pubnet`

Expand All @@ -1426,12 +1434,14 @@ By default, when starting a testnet container, without any optional arguments, i

Stop a network container started with `stellar container start`

**Usage:** `stellar container stop [OPTIONS] <NAME>`
**Usage:** `stellar container stop [OPTIONS] [NAME]`

###### **Arguments:**

* `<NAME>` — Container to stop

Default value: `local`

###### **Options:**

* `-d`, `--docker-host <DOCKER_HOST>` — Optional argument to override the default docker host. This is useful when you are using a non-standard docker host path for your Docker-compatible container runtime, e.g. Docker Desktop defaults to $HOME/.docker/run/docker.sock instead of /var/run/docker.sock
Expand Down
1 change: 1 addition & 0 deletions cmd/soroban-cli/src/commands/container/logs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ pub struct Cmd {
pub container_args: Args,

/// Container to get logs from
#[arg(default_value = "local")]
pub name: String,
}

Expand Down
23 changes: 10 additions & 13 deletions cmd/soroban-cli/src/commands/container/start.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ pub struct Cmd {
#[command(flatten)]
pub container_args: Args,

/// Network to start
pub network: Network,
/// Network to start. Default is `local`
pub network: Option<Network>,

/// Optional argument to specify the container name
#[arg(long)]
Expand All @@ -62,6 +62,7 @@ impl Cmd {
pub async fn run(&self, global_args: &global::Args) -> Result<(), Error> {
let runner = Runner {
args: self.clone(),
network: self.network.unwrap_or(Network::Local),
print: print::Print::new(global_args.quiet),
};

Expand All @@ -71,13 +72,14 @@ impl Cmd {

struct Runner {
args: Cmd,
network: Network,
print: print::Print,
}

impl Runner {
async fn run_docker_command(&self) -> Result<(), Error> {
self.print
.infoln(format!("Starting {} network", &self.args.network));
.infoln(format!("Starting {} network", &self.network));

let docker = self
.args
Expand Down Expand Up @@ -151,7 +153,7 @@ impl Runner {

fn get_image_name(&self) -> String {
// this can be overriden with the `-t` flag
let mut image_tag = match &self.args.network {
let mut image_tag = match &self.network {
Network::Pubnet => "latest",
Network::Futurenet => "future",
_ => "testing", // default to testing for local and testnet
Expand All @@ -169,7 +171,7 @@ impl Runner {

fn get_container_args(&self) -> Vec<String> {
[
format!("--{}", self.args.network),
format!("--{}", self.network),
"--enable rpc,horizon".to_string(),
self.get_protocol_version_arg(),
self.get_limits_arg(),
Expand Down Expand Up @@ -201,12 +203,7 @@ impl Runner {
}

fn container_name(&self) -> Name {
Name(
self.args
.name
.clone()
.unwrap_or(self.args.network.to_string()),
)
Name(self.args.name.clone().unwrap_or(self.network.to_string()))
}

fn print_instructions(&self) {
Expand All @@ -226,7 +223,7 @@ impl Runner {
}

fn get_protocol_version_arg(&self) -> String {
if self.args.network == Network::Local && self.args.protocol_version.is_some() {
if self.network == Network::Local && self.args.protocol_version.is_some() {
let version = self.args.protocol_version.as_ref().unwrap();
format!("--protocol-version {version}")
} else {
Expand All @@ -235,7 +232,7 @@ impl Runner {
}

fn get_limits_arg(&self) -> String {
if self.args.network == Network::Local && self.args.limits.is_some() {
if self.network == Network::Local && self.args.limits.is_some() {
let limits = self.args.limits.as_ref().unwrap();
format!("--limits {limits}")
} else {
Expand Down
1 change: 1 addition & 0 deletions cmd/soroban-cli/src/commands/container/stop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ pub struct Cmd {
pub container_args: Args,

/// Container to stop
#[arg(default_value = "local")]
pub name: String,
}

Expand Down

0 comments on commit d428f58

Please sign in to comment.