in cookbooks/aws-parallelcluster-environment/files/custom_action_executor/custom_action_executor.py [0:0]
def _parse_cli_args():
parser = argparse.ArgumentParser(
description="Execute action scripts attached to a node lifecycle event", exit_on_error=False
)
event_group = parser.add_mutually_exclusive_group(required=True)
for event in LegacyEventName:
event_group.add_argument(
f"-{event.value}",
action="store_true",
help=f"selects the {event.value} event in the node lifecycle to execute",
)
parser.add_argument(
"-r",
"--region",
type=str,
default=os.getenv("AWS_REGION", None),
required=False,
help="the cluster AWS region, defaults to AWS_REGION env variable",
)
parser.add_argument(
"-s",
"--stack-name",
type=str,
default=os.getenv("PCLUSTER_STACK_NAME", None),
required=False,
help="the parallelcluster cloudformation stack name," " defaults to PCLUSTER_STACK_NAME env variable",
)
parser.add_argument(
"-n",
"--node-type",
type=str,
default=os.getenv("PCLUSTER_NODE_TYPE", None),
required=False,
help="the node type, defaults to PCLUSTER_NODE_TYPE env variable",
)
parser.add_argument(
"-q",
"--queue-name",
type=str,
default=os.getenv("PCLUSTER_SCHEDULER_QUEUE_NAME", None),
required=False,
help="the scheduler queue name, defaults to PCLUSTER_SCHEDULER_QUEUE_NAME env variable",
)
parser.add_argument(
"-p",
"--pool-name",
default=os.getenv("PCLUSTER_LOGIN_NODES_POOL_NAME", None),
required=False,
help="the login node pool name, defaults to PCLUSTER_LOGIN_NODES_POOL_NAME env variable",
)
parser.add_argument(
"-c",
"--cluster-configuration",
type=str,
default="/opt/parallelcluster/shared/cluster-config.yaml",
required=False,
help="the cluster config file, defaults to " "/opt/parallelcluster/shared/cluster-config.yaml",
)
parser.add_argument(
"--instance-id",
type=str,
default=None,
required=False,
help="the EC2 instance ID",
)
parser.add_argument(
"--instance-type",
type=str,
default=None,
required=False,
help="the EC2 instance type",
)
parser.add_argument(
"--ip-address",
type=str,
default=None,
required=False,
help="the IP address of this host",
)
parser.add_argument(
"--hostname",
type=str,
default=None,
required=False,
help="the name of this host",
)
parser.add_argument(
"--resource-name", type=str, default=None, help="the name of the compute resource pool this host belongs to"
)
parser.add_argument(
"--availability-zone", type=str, default=None, help="the availability zone this host is deployed to"
)
parser.add_argument("--cluster-name", type=str, default=None, help="the cluster name")
parser.add_argument("--scheduler", type=str, default=None, help="the cluster scheduler type")
parser.add_argument("--verbose", "-v", action="store_true", help="enable verbose logging")
parser.add_argument("--dry-run", "-d", action="store_true", help="enable dry run")
parser.add_argument("--execute-via-cfnconfig", "-e", action="store_true", help="execute via cfnconfig")
parser.add_argument(
"--event-file-override", type=str, default=BOOSTRAP_ERROR_FILE, help="override event output file path"
)
parser.add_argument(
"--node-spec-file", type=str, default=None, required=False, help="path to file containing node description"
)
try:
args = parser.parse_args()
except SystemExit as e:
e.code = 1
raise e
return args