def Args(cls, parser): """Register flags for this command.""" labels_util.AddCreateLabelsFlags(parser) parser.add_argument( '--max-failures-per-hour', type=int, help=( 'Specifies the maximum number of times a job can be restarted ' 'per hour in event of failure. ' 'Default is 0 (no retries after job failure).')) parser.add_argument( '--max-failures-total', type=int, help=('Specifies the maximum total number of times a job can be ' 'restarted after the job fails. ' 'Default is 0 (no retries after job failure).')) parser.add_argument( '--driver-required-memory-mb', type=int, hidden=True, help=('The amount of memory in MB job driver is requesting.')) parser.add_argument( '--driver-required-vcores', type=int, hidden=True, help=('The number of vCPUs job driver is requesting.')) cluster_placement = parser.add_mutually_exclusive_group(required=True) cluster_placement.add_argument( '--cluster', help='The Dataproc cluster to submit the job to.') labels_util.GetCreateLabelsFlag( 'Labels of Dataproc cluster on which to place the job.', 'cluster-labels').AddToParser(cluster_placement)
def AddCreateLabelsFlag(parser, labels_name, resource_name, extra_message='', validate_values=True): extra_message += ('If the {0} was given as a JSON/YAML object from a string ' 'or file, this flag will replace the labels value ' 'in the given {0}.'.format(resource_name)) labels_util.GetCreateLabelsFlag( extra_message=extra_message, labels_name=labels_name, validate_values=validate_values).AddToParser(parser)
def AddLabelsFlags(parser, add_create=True): """Adds update command labels flags to an argparse parser. Args: parser: The argparse parser to add the flags to. add_create: bool, If True, add the --labels flag. """ if add_create: labels_util.GetCreateLabelsFlag( validate_keys=False, validate_values=False).AddToParser(parser) labels_util.GetUpdateLabelsFlag( '', validate_keys=False, validate_values=False).AddToParser(parser) remove_group = parser.add_mutually_exclusive_group() labels_util.GetClearLabelsFlag().AddToParser(remove_group) labels_util.GetRemoveLabelsFlag('').AddToParser(remove_group)
def AddLabelsFlags(parser): """Adds update command labels flags to an argparse parser. Args: parser: The argparse parser to add the flags to. """ group = parser.add_group() add_group = group.add_mutually_exclusive_group() labels_util.GetCreateLabelsFlag( 'An alias to --update-labels.', validate_keys=False, validate_values=False).AddToParser(add_group) labels_util.GetUpdateLabelsFlag( '', validate_keys=False, validate_values=False).AddToParser(add_group) remove_group = group.add_mutually_exclusive_group() labels_util.GetClearLabelsFlag().AddToParser(remove_group) labels_util.GetRemoveLabelsFlag('').AddToParser(remove_group)
def AddBackupScheduleArgs(parser): """Adds flags specific to backup schedule resource policies.""" parser.add_argument( '--max-retention-days', required=True, type=arg_parsers.BoundedInt(lower_bound=1), help='Maximum number of days snapshot can be retained.') snapshot_properties_group = parser.add_group('Snapshot properties') labels_util.GetCreateLabelsFlag( extra_message='These will be added to the disk snapshots on creation.', labels_name='snapshot-labels').AddToParser(snapshot_properties_group) snapshot_properties_group.add_argument( '--guest-flush', action='store_true', help='Create an application consistent snapshot by informing the OS to ' 'prepare for the snapshot process.')