def get_arg_parser(command: SvcCommand) -> argparse.ArgumentParser: # CLI argument parser. parser = argparse.ArgumentParser( f"Executes a systemctl '{command}' command to the casper-node service on a node." ) # CLI argument: network name. parser.add_argument( "--net", default=env.get_network_name(), dest="network", help="Network name {type}{id}, e.g. nctl1.", type=args_validator.validate_network, ) # CLI argument: node index. parser.add_argument("--node", default=1, dest="node", help="Node index, e.g. 1.", type=args_validator.validate_node_index) # # CLI argument: systemctl command. # parser.add_argument( # "--command", # default='status', # dest="command", # help="systemctl command to run on node, e.g. stop, start, restart.", # type=str, # choices=('restart', 'start', 'status', 'stop'), # ) # CLI argument: SSH username. parser.add_argument( "--ssh-user", default='cladmin', dest="ssh_user", help="SSH username.", type=str, ) # CLI argument: SSH username. parser.add_argument( "--ssh-key-path", default=None, dest="ssh_key_path", help="Path to SSH key.", type=Path, ) # CLI argument: force flag. parser.add_argument( "--force", action="store_true", dest="force", help="Run command despite the current status of the node.", ) return parser
def get_arg_parser() -> argparse.ArgumentParser: # CLI argument parser. parser = argparse.ArgumentParser( f"Toggles casper-node on a random node from down to up, or vice versa." ) # CLI argument: network name. parser.add_argument( "--net", default=env.get_network_name(), dest="network", help="Network name {type}{id}, e.g. nctl1.", type=args_validator.validate_network, ) # CLI argument: SSH username. parser.add_argument( "--ssh-user", default='cladmin', dest="ssh_user", help="SSH username.", type=str, ) # CLI argument: SSH username. parser.add_argument( "--ssh-key-path", default=None, dest="ssh_key_path", help="Path to SSH key.", type=Path, ) # CLI argument: force flag. parser.add_argument( "--force", action="store_true", dest="force", help="Run command despite the current status of the node.", ) return parser
import argparse from stests.core import cache from stests.core import factory from stests.core.types.infra import NodeStatus from stests.core.utils import args_validator from stests.core.utils import cli as utils from stests.core.utils import env # CLI argument parser. ARGS = argparse.ArgumentParser("Updates node status within stests cache.") # CLI argument: network name. ARGS.add_argument( "--net", default=env.get_network_name(), dest="network", help="Network name {type}{id}, e.g. nctl1.", type=args_validator.validate_network, ) # CLI argument: node index. ARGS.add_argument("--node", dest="node", help="Node index, e.g. 1.", type=args_validator.validate_node_index) # Set CLI argument: node status. ARGS.add_argument("--status", choices=[i.name.lower() for i in NodeStatus], dest="status",
def get_arg_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( f"Upgrades a node to its next available version, via semver.") parser.add_argument( "--net", default=env.get_network_name(), dest="network", help="Network name {type}{id}, e.g. nctl1.", type=args_validator.validate_network, ) parser.add_argument("--node", default=1, dest="node", help="Node index, e.g. 1.", type=args_validator.validate_node_index) parser.add_argument( "--local-bin-repo", dest="local_bin_repo", required=True, help="Path to directory containing semver folders with casper binaries " "(e.g. '1_0_0', '1_1_0', etc). Note this this should be local on " "the stest control box.", type=pl.Path, ) parser.add_argument( "--local-cfg-repo", dest="local_cfg_repo", required=True, help="Path to directory containing semver folders with casper configs " "(e.g. '1_0_0', '1_1_0', etc). Note this this should be local on " "the stest control box.", type=pl.Path, ) parser.add_argument( "--remote-bin-repo", dest="remote_bin_repo", default=pl.Path('/var/lib/casper/bin'), help="Remote path to casper binary repo dir.", type=pl.Path, ) parser.add_argument( "--remote-cfg-repo", dest="remote_cfg_repo", default=pl.Path('/etc/casper'), help="Remote path to casper config repo dir.", type=pl.Path, ) parser.add_argument( "--ssh-user", default='cladmin', dest="ssh_user", help="SSH username.", type=str, ) parser.add_argument( "--ssh-key-path", default=None, dest="ssh_key_path", help="Path to SSH key.", type=pl.Path, ) parser.add_argument( "--semver", required=True, dest="semver", help="Semver (in X.Y.Z format) for desired version to install.", type=Semver.from_str, ) parser.add_argument( "--activation-era", required=True, dest="activation_era", help="Future era id at which upgrade is inteded to become active.", type=int, ) return parser
def get_argparser(description: str) -> argparse.ArgumentParser: """Factory method: returns standard argument parser for a generator. :param description: Description to be assigned to parser. :returns: Standard argument parser for a generator. """ # Set command line arguments. args = argparse.ArgumentParser(f"Executes {description} workflow.") # network name. args.add_argument( "--net", default=env.get_network_name(), dest="network_name", help="Network name {type}{id}, e.g. nctl1.", type=args_validator.validate_network, ) # deploys per second. args.add_argument( "--deploys-per-second", dest="deploys_per_second", help="Number of deploys to dispatch per second.", type=args_validator.validate_deploys_per_second, default=0, ) # execution mode. args.add_argument( "--execution-mode", dest="execution_mode", help="""Generator execution mode - sequential | periodic. If execution mode = sequential AND loop > 0, then run N+1 will only be launched if run N successfully completed. If execution mode = periodical AND loop > 0, then run N+1 will be scheduled for launch when run N starts (thus even if run N fails, run N+1 will be started). """, type=args_validator.validate_execution_mode, default=ExecutionMode.SEQUENTIAL.name.lower(), ) # node index. args.add_argument( "--node", dest="node_index", help="Node index - must be between 1 and 999. If specified deploys are dispatched to this node only, otherwise deploys are dispatched to random nodes.", type=args_validator.validate_node_index, default=0, ) # loop count. args.add_argument( "--loop", dest="loop_count", help="Number of times to loop.", type=args_validator.validate_loop_count, default=0, ) # loop interval. args.add_argument( "--loop-interval", dest="loop_interval", help="Interval in seconds between loops.", type=args_validator.validate_loop_interval, default=0, ) # parallel count. args.add_argument( "--parallel", dest="parallel_count", help="Number of runs to launch in parallel.", type=args_validator.validate_parallel_count, default=1, ) # key algorithm. args.add_argument( "--key-algorithm", dest="key_algorithm", help="Elliptic Curve Cryptography algorithm used when creating accounts. Supported = ED25519 | SECP256K1 | ANY", type=args_validator.validate_key_algorithm, default="ED25519", ) # auto clean up flag. args.add_argument( "--prune", dest="prune_on_completion", help="Flag indicating whether the orchestration engine will clean up cached data upon successful run completion.", type=int, default=1, ) return args