Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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",
Exemple #4
0
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
Exemple #5
0
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