in gcpdiag/lint/command.py [0:0]
def _init_args_parser():
parser = argparse.ArgumentParser(
description='Run diagnostics in GCP projects.', prog='gcpdiag lint')
parser.add_argument(
'--auth-adc',
help='Authenticate using Application Default Credentials (default)',
action='store_true')
parser.add_argument(
'--auth-key',
help='Authenticate using a service account private key file',
metavar='FILE')
parser.add_argument('--auth-oauth',
help=argparse.SUPPRESS,
action='store_true')
parser.add_argument('--universe-domain',
type=str,
default=config.get('universe_domain'),
help='Domain name of APIs')
parser.add_argument('--project',
metavar='P',
required=True,
help='Project ID of project to inspect')
parser.add_argument(
'--name',
nargs='+',
metavar='n',
help='Resource Name(s) to inspect (e.g.: bastion-host,prod-*)')
parser.add_argument(
'--location',
nargs='+',
metavar='R',
help=
'Valid GCP region/zone to scope inspection (e.g.: us-central1-a,us-central1)'
)
parser.add_argument(
'--label',
action=ParseMappingArg,
metavar='key:value',
help=(
'One or more resource labels as key-value pair(s) to scope inspection '
'(e.g.: env:prod, type:frontend or env=prod type=frontend)'))
parser.add_argument(
'--billing-project',
metavar='P',
help='Project used for billing/quota of API calls done by gcpdiag '
'(default is the inspected project, requires '
'\'serviceusage.services.use\' permission)')
parser.add_argument('--show-skipped',
help='Show skipped rules',
action='store_true',
default=config.get('show_skipped'))
parser.add_argument('--hide-skipped',
help=argparse.SUPPRESS,
action='store_false',
dest='show_skipped')
parser.add_argument('--hide-ok',
help='Hide rules with result OK',
action='store_true',
default=config.get('hide_ok'))
parser.add_argument('--show-ok',
help=argparse.SUPPRESS,
action='store_false',
dest='hide_ok')
parser.add_argument(
'--enable-gce-serial-buffer',
help='Fetch serial port one output directly from the Compute API. '
'Use this flag when not exporting serial port output to cloud logging.',
action='store_true',
dest='enable_gce_serial_buffer')
parser.add_argument(
'--include',
help=('Include rule pattern (e.g.: `gke`, `gke/*/2021*`). '
'Multiple pattern can be specified (comma separated, '
'or with multiple arguments)'),
action='append')
parser.add_argument('--exclude',
help=('Exclude rule pattern (e.g.: `BP`, `*/*/2022*`)'),
action='append')
parser.add_argument('--include-extended',
help=('Include extended rules. Additional rules might '
'generate false positives (default: False)'),
default=config.get('include_extended'),
action='store_true')
parser.add_argument('--experimental-enable-async-rules',
help='Run experimental async rules (default: False)',
default=config.get('experimental_enable_async_rules'),
action='store_true')
parser.add_argument('-v',
'--verbose',
action='count',
default=config.get('verbose'),
help='Increase log verbosity')
parser.add_argument('--within-days',
metavar='D',
type=int,
help=(f'How far back to search logs and metrics (default:'
f" {config.get('within_days')} days)"),
default=config.get('within_days'))
parser.add_argument('--config',
metavar='FILE',
type=str,
help='Read configuration from FILE')
parser.add_argument('--logging-ratelimit-requests',
metavar='R',
type=int,
help=('Configure rate limit for logging queries (default:'
f" {config.get('logging_ratelimit_requests')})"))
parser.add_argument(
'--logging-ratelimit-period-seconds',
metavar='S',
type=int,
help=('Configure rate limit period for logging queries (default:'
f" {config.get('logging_ratelimit_period_seconds')} seconds)"))
parser.add_argument('--logging-page-size',
metavar='P',
type=int,
help=('Configure page size for logging queries (default:'
f" {config.get('logging_page_size')})"))
parser.add_argument(
'--logging-fetch-max-entries',
metavar='E',
type=int,
help=('Configure max entries to fetch by logging queries (default:'
f" {config.get('logging_fetch_max_entries')})"))
parser.add_argument(
'--logging-fetch-max-time-seconds',
metavar='S',
type=int,
help=('Configure timeout for logging queries (default:'
f" {config.get('logging_fetch_max_time_seconds')} seconds)"))
parser.add_argument(
'--output',
metavar='FORMATTER',
default='terminal',
type=str,
help=(
'Format output as one of [terminal, json, csv] (default: terminal)'))
parser.add_argument('--interface',
metavar='FORMATTER',
default=config.get('interface'),
type=str,
help='What interface as one of [cli, api] (default: cli)')
parser.add_argument('--reason',
type=str,
default=config.get('reason'),
help='The reason for running gcpdiag')
return parser