Allow CLI --config values for inactive node tests (#2594)
This commit is contained in:
		
					parent
					
						
							
								5dac531c91
							
						
					
				
			
			
				commit
				
					
						90f1c862a8
					
				
			
		
					 4 changed files with 27 additions and 14 deletions
				
			
		| 
						 | 
					@ -155,11 +155,6 @@ int main (int argc, char * const * argv)
 | 
				
			||||||
				std::cerr << flags_ec.message () << std::endl;
 | 
									std::cerr << flags_ec.message () << std::endl;
 | 
				
			||||||
				std::exit (1);
 | 
									std::exit (1);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			auto config (vm.find ("config"));
 | 
					 | 
				
			||||||
			if (config != vm.end ())
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				flags.config_overrides = config->second.as<std::vector<std::string>> ();
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			daemon.run (data_path, flags);
 | 
								daemon.run (data_path, flags);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else if (vm.count ("debug_block_count"))
 | 
							else if (vm.count ("debug_block_count"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,7 +64,7 @@ nano::error read_wallet_config (nano::wallet_config & config_a, boost::filesyste
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int run_wallet (QApplication & application, int argc, char * const * argv, boost::filesystem::path const & data_path, std::vector<std::string> const & config_overrides, nano::node_flags const & flags)
 | 
					int run_wallet (QApplication & application, int argc, char * const * argv, boost::filesystem::path const & data_path, nano::node_flags const & flags)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int result (0);
 | 
						int result (0);
 | 
				
			||||||
	nano_qt::eventloop_processor processor;
 | 
						nano_qt::eventloop_processor processor;
 | 
				
			||||||
| 
						 | 
					@ -81,7 +81,7 @@ int run_wallet (QApplication & application, int argc, char * const * argv, boost
 | 
				
			||||||
	nano::daemon_config config (data_path);
 | 
						nano::daemon_config config (data_path);
 | 
				
			||||||
	nano::wallet_config wallet_config;
 | 
						nano::wallet_config wallet_config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	auto error = nano::read_node_config_toml (data_path, config, config_overrides);
 | 
						auto error = nano::read_node_config_toml (data_path, config, flags.config_overrides);
 | 
				
			||||||
	if (!error)
 | 
						if (!error)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		error = read_wallet_config (wallet_config, data_path);
 | 
							error = read_wallet_config (wallet_config, data_path);
 | 
				
			||||||
| 
						 | 
					@ -331,12 +331,7 @@ int main (int argc, char * const * argv)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						throw std::runtime_error (flags_ec.message ());
 | 
											throw std::runtime_error (flags_ec.message ());
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					auto config (vm.find ("config"));
 | 
										result = run_wallet (application, argc, argv, data_path, flags);
 | 
				
			||||||
					if (config != vm.end ())
 | 
					 | 
				
			||||||
					{
 | 
					 | 
				
			||||||
						flags.config_overrides = config->second.as<std::vector<std::string>> ();
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					result = run_wallet (application, argc, argv, data_path, config_overrides, flags);
 | 
					 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				catch (std::exception const & e)
 | 
									catch (std::exception const & e)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -169,6 +169,12 @@ std::error_code nano::update_flags (nano::node_flags & flags_a, boost::program_o
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		flags_a.vote_processor_capacity = vote_processor_capacity_it->second.as<size_t> ();
 | 
							flags_a.vote_processor_capacity = vote_processor_capacity_it->second.as<size_t> ();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						// Config overriding
 | 
				
			||||||
 | 
						auto config (vm.find ("config"));
 | 
				
			||||||
 | 
						if (config != vm.end ())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							flags_a.config_overrides = config->second.as<std::vector<std::string>> ();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return ec;
 | 
						return ec;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
#include <nano/lib/threading.hpp>
 | 
					#include <nano/lib/threading.hpp>
 | 
				
			||||||
 | 
					#include <nano/lib/tomlconfig.hpp>
 | 
				
			||||||
#include <nano/lib/utility.hpp>
 | 
					#include <nano/lib/utility.hpp>
 | 
				
			||||||
#include <nano/node/common.hpp>
 | 
					#include <nano/node/common.hpp>
 | 
				
			||||||
#include <nano/node/node.hpp>
 | 
					#include <nano/node/node.hpp>
 | 
				
			||||||
| 
						 | 
					@ -1355,7 +1356,23 @@ peering_port (peering_port_a)
 | 
				
			||||||
	nano::set_secure_perm_directory (path, error_chmod);
 | 
						nano::set_secure_perm_directory (path, error_chmod);
 | 
				
			||||||
	logging.max_size = std::numeric_limits<std::uintmax_t>::max ();
 | 
						logging.max_size = std::numeric_limits<std::uintmax_t>::max ();
 | 
				
			||||||
	logging.init (path);
 | 
						logging.init (path);
 | 
				
			||||||
	node = std::make_shared<nano::node> (*io_context, peering_port, path, alarm, logging, work, node_flags);
 | 
						// Config overriding
 | 
				
			||||||
 | 
						nano::node_config config (peering_port, logging);
 | 
				
			||||||
 | 
						std::stringstream config_overrides_stream;
 | 
				
			||||||
 | 
						for (auto const & entry : node_flags.config_overrides)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							config_overrides_stream << entry << std::endl;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						config_overrides_stream << std::endl;
 | 
				
			||||||
 | 
						nano::tomlconfig toml;
 | 
				
			||||||
 | 
						toml.read (config_overrides_stream);
 | 
				
			||||||
 | 
						auto error = config.deserialize_toml (toml);
 | 
				
			||||||
 | 
						if (error)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							std::cerr << "Error deserializing --config option" << std::endl;
 | 
				
			||||||
 | 
							std::exit (1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						node = std::make_shared<nano::node> (*io_context, path, alarm, config, work, node_flags);
 | 
				
			||||||
	node->active.stop ();
 | 
						node->active.stop ();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue