From 190810279a563351d5c80935ec1d4dfaef571a9a Mon Sep 17 00:00:00 2001 From: Cecile Tonglet Date: Thu, 30 Jul 2020 09:59:25 +0200 Subject: [PATCH] Fix Polkadot CLI arguments not properly parsed (#163) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial commit Forked at: d1d40765c7acd78af5cca0d1c09706782522ff28 Parent branch: origin/master * Fix polkadot cli arguments not properly parsed * Update test/parachain/src/command.rs Co-authored-by: Bastian Köcher --- cumulus/test/parachain/src/command.rs | 79 ++++++++++++++++++++++++--- cumulus/test/parachain/src/service.rs | 7 +++ 2 files changed, 78 insertions(+), 8 deletions(-) diff --git a/cumulus/test/parachain/src/command.rs b/cumulus/test/parachain/src/command.rs index 611ef38341..04ac325af8 100644 --- a/cumulus/test/parachain/src/command.rs +++ b/cumulus/test/parachain/src/command.rs @@ -22,7 +22,7 @@ use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ - ChainSpec, CliConfiguration, Error, ImportParams, KeystoreParams, NetworkParams, Result, Role, + ChainSpec, CliConfiguration, Error, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; use sc_service::config::{BasePath, PrometheusConfig}; @@ -155,7 +155,12 @@ pub fn run() -> Result<()> { runner.run_subcommand(subcommand, |mut config| { let params = crate::service::new_partial(&mut config)?; - Ok((params.client, params.backend, params.import_queue, params.task_manager)) + Ok(( + params.client, + params.backend, + params.import_queue, + params.task_manager, + )) }) } Some(Subcommand::ExportGenesisState(params)) => { @@ -193,10 +198,6 @@ pub fn run() -> Result<()> { let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); runner.run_node_until_exit(|config| { - if matches!(config.role, Role::Light) { - return Err("Light client not supporter!".into()); - } - polkadot_cli.base_path = config.base_path.as_ref().map(|x| x.path().join("polkadot")); @@ -208,9 +209,19 @@ pub fn run() -> Result<()> { info!("Parachain id: {:?}", id); info!("Parachain Account: {}", parachain_account); info!("Parachain genesis state: {}", genesis_state); + info!( + "Is collating: {}", + if cli.run.base.validator { "yes" } else { "no" } + ); - crate::service::run_collator(config, key, polkadot_config, id, cli.run.base.validator) - .map(|(x, _)| x) + crate::service::run_collator( + config, + key, + polkadot_config, + id, + cli.run.base.validator, + ) + .map(|(x, _)| x) }) } } @@ -254,6 +265,10 @@ impl CliConfiguration for PolkadotCli { )?)) } + fn rpc_ipc(&self) -> Result> { + self.base.base.rpc_ipc() + } + fn rpc_ws(&self) -> Result> { let ws_external = self.base.base.ws_external; let unsafe_ws_external = self.base.base.unsafe_ws_external; @@ -294,6 +309,54 @@ impl CliConfiguration for PolkadotCli { fn init(&self) -> Result<()> { unreachable!("PolkadotCli is never initialized; qed"); } + + fn role(&self, is_dev: bool) -> Result { + self.base.base.role(is_dev) + } + + fn transaction_pool(&self) -> Result { + self.base.base.transaction_pool() + } + + fn state_cache_child_ratio(&self) -> Result> { + self.base.base.state_cache_child_ratio() + } + + fn rpc_methods(&self) -> Result { + self.base.base.rpc_methods() + } + + fn rpc_ws_max_connections(&self) -> Result> { + self.base.base.rpc_ws_max_connections() + } + + fn rpc_cors(&self, is_dev: bool) -> Result>> { + self.base.base.rpc_cors(is_dev) + } + + fn telemetry_external_transport(&self) -> Result> { + self.base.base.telemetry_external_transport() + } + + fn default_heap_pages(&self) -> Result> { + self.base.base.default_heap_pages() + } + + fn force_authoring(&self) -> Result { + self.base.base.force_authoring() + } + + fn disable_grandpa(&self) -> Result { + self.base.base.disable_grandpa() + } + + fn max_runtime_instances(&self) -> Result> { + self.base.base.max_runtime_instances() + } + + fn announce_block(&self) -> Result { + self.base.base.announce_block() + } } // copied directly from substrate diff --git a/cumulus/test/parachain/src/service.rs b/cumulus/test/parachain/src/service.rs index 4e56331df4..3332d000e7 100644 --- a/cumulus/test/parachain/src/service.rs +++ b/cumulus/test/parachain/src/service.rs @@ -108,6 +108,13 @@ pub fn run_collator( TaskManager, Arc>, )> { + if matches!(parachain_config.role, Role::Light) { + return Err("Light client not supported!".into()); + } + if matches!(polkadot_config.role, Role::Light) { + return Err("Light client not supported!".into()); + } + let mut parachain_config = prepare_collator_config(parachain_config); parachain_config.informant_output_format = OutputFormat {