示例#1
0
 def Args(parser):
     disks_flags.MakeDiskArgZonalOrRegional(plural=False).AddArgument(
         parser, operation_type='remove resource policies from')
     flags.AddResourcePoliciesArgs(parser,
                                   'removed from',
                                   'disk',
                                   required=True)
 def Args(parser):
     instance_flags.INSTANCE_ARG.AddArgument(
         parser, operation_type='add resource policies to')
     flags.AddResourcePoliciesArgs(parser,
                                   'added to',
                                   'instance',
                                   required=True)
示例#3
0
 def Args(parser):
     instance_flags.INSTANCE_ARG.AddArgument(
         parser, operation_type='remove resource policies from')
     flags.AddResourcePoliciesArgs(parser,
                                   'removed from',
                                   'instance',
                                   required=True)
示例#4
0
文件: create.py 项目: linsole/CS61A
 def Args(cls, parser):
   _CommonArgs(
       parser,
       enable_regional=True,
       enable_kms=True,
       deprecate_maintenance_policy=True,
       enable_resource_policy=cls._support_disk_resource_policy,
       supports_min_node_cpus=cls._support_min_node_cpus,
       supports_location_hint=cls._support_location_hint,
       snapshot_csek=True,
       image_csek=True)
   CreateAlpha.SOURCE_INSTANCE_TEMPLATE = (
       instances_flags.MakeSourceInstanceTemplateArg())
   CreateAlpha.SOURCE_INSTANCE_TEMPLATE.AddArgument(parser)
   CreateAlpha.SOURCE_MACHINE_IMAGE = (
       instances_flags.AddMachineImageArg())
   CreateAlpha.SOURCE_MACHINE_IMAGE.AddArgument(parser)
   instances_flags.AddSourceMachineImageEncryptionKey(parser)
   instances_flags.AddMinCpuPlatformArgs(parser, base.ReleaseTrack.ALPHA)
   instances_flags.AddPublicDnsArgs(parser, instance=True)
   instances_flags.AddLocalSsdArgsWithSize(parser)
   instances_flags.AddLocalNvdimmArgs(parser)
   flags.AddEraseVssSignature(parser, 'source snapshots or source machine'
                                      ' image')
   maintenance_flags.AddResourcePoliciesArgs(parser, 'added to', 'instance')
   instances_flags.AddConfidentialComputeArgs(parser)
 def Args(parser):
     disks_flags.MakeDiskArg(plural=False).AddArgument(
         parser, operation_type='add resource policies to')
     flags.AddResourcePoliciesArgs(parser,
                                   'added to',
                                   'disk',
                                   required=True)
示例#6
0
  def Args(parser):
    Create.disks_arg = disks_flags.MakeDiskArgZonalOrRegional(plural=True)

    image_utils.AddGuestOsFeaturesArg(parser, base.ReleaseTrack.ALPHA)
    kms_utils.AddKmsKeyArgs(parser, resource_type='disk')
    _AddReplicaZonesArg(parser)
    _CommonArgs(parser, disks_flags.SOURCE_SNAPSHOT_ARG)
    resource_flags.AddResourcePoliciesArgs(parser, 'added to')
示例#7
0
    def Args(parser):
        Create.disks_arg = disks_flags.MakeDiskArgZonalOrRegional(plural=True)

        _CommonArgs(parser,
                    disks_flags.SOURCE_SNAPSHOT_ARG,
                    include_physical_block_size_support=True)
        image_utils.AddGuestOsFeaturesArg(parser, base.ReleaseTrack.ALPHA)
        _AddReplicaZonesArg(parser)
        resource_flags.AddResourcePoliciesArgs(parser, 'added to', 'disk')
        kms_resource_args.AddKmsKeyResourceArg(parser,
                                               'disk',
                                               region_fallthrough=True)
示例#8
0
 def Args(cls, parser):
     _CommonArgs(parser,
                 enable_regional=True,
                 enable_kms=True,
                 enable_resource_policy=cls._support_disk_resource_policy,
                 supports_erase_vss=cls._support_erase_vss,
                 supports_min_node_cpu=cls._support_min_node_cpu)
     cls.SOURCE_INSTANCE_TEMPLATE = (
         instances_flags.MakeSourceInstanceTemplateArg())
     cls.SOURCE_INSTANCE_TEMPLATE.AddArgument(parser)
     cls.SOURCE_MACHINE_IMAGE = (instances_flags.AddMachineImageArg())
     cls.SOURCE_MACHINE_IMAGE.AddArgument(parser)
     instances_flags.AddSourceMachineImageEncryptionKey(parser)
     instances_flags.AddLocalSsdArgs(parser)
     instances_flags.AddMinCpuPlatformArgs(parser, base.ReleaseTrack.BETA)
     maintenance_flags.AddResourcePoliciesArgs(parser, 'added to',
                                               'instance')
 def Args(cls, parser):
     _CommonArgs(parser,
                 enable_regional=True,
                 enable_kms=True,
                 enable_snapshots=True,
                 deprecate_maintenance_policy=True,
                 supports_display_device=True,
                 supports_reservation=cls._support_reservation)
     CreateAlpha.SOURCE_INSTANCE_TEMPLATE = (
         instances_flags.MakeSourceInstanceTemplateArg())
     CreateAlpha.SOURCE_INSTANCE_TEMPLATE.AddArgument(parser)
     CreateAlpha.SOURCE_MACHINE_IMAGE = (
         instances_flags.AddMachineImageArg())
     CreateAlpha.SOURCE_MACHINE_IMAGE.AddArgument(parser)
     instances_flags.AddMinCpuPlatformArgs(parser, base.ReleaseTrack.ALPHA)
     instances_flags.AddPublicDnsArgs(parser, instance=True)
     instances_flags.AddLocalSsdArgsWithSize(parser)
     instances_flags.AddLocalNvdimmArgs(parser)
     maintenance_flags.AddResourcePoliciesArgs(parser, 'added to',
                                               'instance')
示例#10
0
 def Args(cls, parser):
     _CommonArgs(parser,
                 enable_regional=True,
                 enable_kms=True,
                 enable_snapshots=True,
                 deprecate_maintenance_policy=True)
     CreateAlpha.SOURCE_INSTANCE_TEMPLATE = (
         instances_flags.MakeSourceInstanceTemplateArg())
     CreateAlpha.SOURCE_INSTANCE_TEMPLATE.AddArgument(parser)
     CreateAlpha.SOURCE_MACHINE_IMAGE = (
         instances_flags.AddMachineImageArg())
     CreateAlpha.SOURCE_MACHINE_IMAGE.AddArgument(parser)
     instances_flags.AddMinCpuPlatformArgs(parser, base.ReleaseTrack.ALPHA)
     instances_flags.AddShieldedVMConfigArgs(parser)
     instances_flags.AddHostnameArg(parser)
     instances_flags.AddAllocationAffinityGroup(parser)
     instances_flags.AddPublicDnsArgs(parser, instance=True)
     instances_flags.AddLocalSsdArgsWithSize(parser)
     maintenance_flags.AddResourcePoliciesArgs(parser, 'added to',
                                               'instance')
示例#11
0
  def Args(parser):
    Create.disks_arg = disks_flags.MakeDiskArg(plural=True)

    _CommonArgs(
        parser,
        disks_flags.SOURCE_SNAPSHOT_ARG,
        include_physical_block_size_support=True,
        vss_erase_enabled=True)
    image_utils.AddGuestOsFeaturesArg(parser, base.ReleaseTrack.ALPHA)
    _AddReplicaZonesArg(parser)
    resource_flags.AddResourcePoliciesArgs(parser, 'added to', 'disk')
    kms_resource_args.AddKmsKeyResourceArg(
        parser, 'disk', region_fallthrough=True)
    parser.add_argument(
        '--multi-writer',
        action='store_true',
        help=('Create the disk in shared mode so that it can be attached with '
              'read-write access to multiple VMs. Available only for zonal '
              'disks. Cannot be used with regional disks. Shared disk is '
              'exposed only as an NVMe device. Shared PD does not yet support '
              'resize and snapshot operations.'))
示例#12
0
def _CommonArgs(parser,
                include_physical_block_size_support=False,
                vss_erase_enabled=False,
                source_disk_enabled=False):
  """Add arguments used for parsing in all command tracks."""
  Create.disks_arg.AddArgument(parser, operation_type='create')
  parser.add_argument(
      '--description',
      help='An optional, textual description for the disks being created.')

  parser.add_argument(
      '--size',
      type=arg_parsers.BinarySize(
          lower_bound='1GB',
          suggested_binary_size_scales=['GB', 'GiB', 'TB', 'TiB', 'PiB', 'PB']),
      help="""\
        Size of the disks. The value must be a whole
        number followed by a size unit of ``GB'' for gigabyte, or ``TB''
        for terabyte. If no size unit is specified, GB is
        assumed. For example, ``10GB'' will produce 10 gigabyte
        disks. Disk size must be a multiple of 1 GB. Limit your boot disk size
        to 2TB to account for MBR partition table limitations. If disk size is
        not specified, the default size of {}GB for standard disks and {}GB for
        pd-ssd disks will be used.
        """.format(constants.DEFAULT_STANDARD_DISK_SIZE_GB,
                   constants.DEFAULT_SSD_DISK_SIZE_GB))

  parser.add_argument(
      '--type',
      completer=completers.DiskTypesCompleter,
      help="""\
      Specifies the type of disk to create. To get a
      list of available disk types, run `gcloud compute disk-types list`.
      The default disk type is pd-standard.
      """)

  parser.display_info.AddFormat(
      'table(name, zone.basename(), sizeGb, type.basename(), status)')

  parser.add_argument(
      '--licenses',
      type=arg_parsers.ArgList(),
      metavar='LICENSE',
      help=('A list of URIs to license resources. The provided licenses will '
            'be added onto the created disks to indicate the licensing and '
            'billing policies.'))

  _SourceArgs(parser, source_disk_enabled)

  csek_utils.AddCsekKeyArgs(parser)
  labels_util.AddCreateLabelsFlags(parser)

  if include_physical_block_size_support:
    parser.add_argument(
        '--physical-block-size',
        choices=['4096', '16384'],
        default='4096',
        help="""\
Physical block size of the persistent disk in bytes.
Valid values are 4096(default) and 16384.
""")
  if vss_erase_enabled:
    flags.AddEraseVssSignature(parser, resource='a source snapshot')

  resource_flags.AddResourcePoliciesArgs(parser, 'added to', 'disk')
示例#13
0
def _CommonArgs(parser,
                include_physical_block_size_support=False,
                vss_erase_enabled=False,
                source_instant_snapshot_enabled=False,
                support_pd_interface=False,
                support_provisioned_iops=False):
    """Add arguments used for parsing in all command tracks."""
    Create.disks_arg.AddArgument(parser, operation_type='create')
    parser.add_argument(
        '--description',
        help='An optional, textual description for the disks being created.')

    # TODO(b/158105562) Add help text for pd-extreme before GA.
    parser.add_argument(
        '--size',
        type=arg_parsers.BinarySize(lower_bound='10GB',
                                    suggested_binary_size_scales=[
                                        'GB', 'GiB', 'TB', 'TiB', 'PiB', 'PB'
                                    ]),
        help="""\
        Size of the disks. The value must be a whole
        number followed by a size unit of ``GB'' for gigabyte, or ``TB''
        for terabyte. If no size unit is specified, GB is
        assumed. For example, ``10GB'' will produce 10 gigabyte
        disks. Disk size must be a multiple of 1 GB. Limit your boot disk size
        to 2TB to account for MBR partition table limitations. If disk size is
        not specified, the default size of {}GB for pd-standard disks, {}GB for
        pd-balanced disks, and {}GB for pd-ssd disks will be used. For details
        about disk size limits, refer to:
        https://cloud.google.com/compute/docs/disks
        """.format(
            constants.DEFAULT_DISK_SIZE_GB_MAP[
                constants.DISK_TYPE_PD_STANDARD],
            constants.DEFAULT_DISK_SIZE_GB_MAP[
                constants.DISK_TYPE_PD_BALANCED],
            constants.DEFAULT_DISK_SIZE_GB_MAP[constants.DISK_TYPE_PD_SSD]))

    parser.add_argument('--type',
                        completer=completers.DiskTypesCompleter,
                        help="""\
      Specifies the type of disk to create. To get a
      list of available disk types, run `gcloud compute disk-types list`.
      The default disk type is pd-standard.
      """)

    if support_pd_interface:
        parser.add_argument('--interface',
                            help="""\
        Specifies the disk interface to use for attaching this disk. Valid values
        are `SCSI` and `NVME`. The default is `SCSI`.
        """)

    parser.display_info.AddFormat(
        'table(name, zone.basename(), sizeGb, type.basename(), status)')

    parser.add_argument(
        '--licenses',
        type=arg_parsers.ArgList(),
        metavar='LICENSE',
        help=(
            'A list of URIs to license resources. The provided licenses will '
            'be added onto the created disks to indicate the licensing and '
            'billing policies.'))

    _SourceArgs(parser, source_instant_snapshot_enabled)

    if support_provisioned_iops:
        parser.add_argument(
            '--provisioned-iops',
            type=arg_parsers.BoundedInt(constants.MIN_PROVISIONED_IOPS,
                                        constants.MAX_PROVISIONED_IOPS),
            help=
            ('Provisioned IOPS of pd-extreme disk to create. If specified, '
             'the value must be in the range between {min} and {max}. If not '
             'specified, the default value is {default}.').format(
                 min=constants.MIN_PROVISIONED_IOPS,
                 max=constants.MAX_PROVISIONED_IOPS,
                 default=constants.DEFAULT_PROVISIONED_IOPS))

    csek_utils.AddCsekKeyArgs(parser)
    labels_util.AddCreateLabelsFlags(parser)

    if include_physical_block_size_support:
        parser.add_argument('--physical-block-size',
                            choices=['4096', '16384'],
                            default='4096',
                            help="""\
Physical block size of the persistent disk in bytes.
Valid values are 4096(default) and 16384.
""")
    if vss_erase_enabled:
        flags.AddEraseVssSignature(parser, resource='a source snapshot')

    resource_flags.AddResourcePoliciesArgs(parser, 'added to', 'disk')
示例#14
0
def _CommonArgs(
        parser,
        # TODO(b/80138906): Release track should not be passed around.
        release_track,
        support_public_dns,
        support_network_tier,
        enable_regional=False,
        support_local_ssd_size=False,
        enable_kms=False,
        support_sole_tenancy=False,
        supports_resource_policies=False):
    """Register parser args common to all tracks."""
    metadata_utils.AddMetadataArgs(parser)
    instances_flags.AddDiskArgs(parser, enable_regional, enable_kms=enable_kms)
    instances_flags.AddCreateDiskArgs(parser, enable_kms=enable_kms)
    if support_local_ssd_size:
        instances_flags.AddLocalSsdArgsWithSize(parser)
    else:
        instances_flags.AddLocalSsdArgs(parser)
    instances_flags.AddCanIpForwardArgs(parser)
    instances_flags.AddAddressArgs(parser,
                                   instances=True,
                                   support_network_tier=support_network_tier)
    instances_flags.AddAcceleratorArgs(parser)
    instances_flags.AddMachineTypeArgs(parser)
    deprecate_maintenance_policy = release_track in [base.ReleaseTrack.ALPHA]
    instances_flags.AddMaintenancePolicyArgs(parser,
                                             deprecate_maintenance_policy)
    instances_flags.AddNoRestartOnFailureArgs(parser)
    instances_flags.AddPreemptibleVmArgs(parser)
    instances_flags.AddServiceAccountAndScopeArgs(
        parser,
        False,
        extra_scopes_help='However, if neither `--scopes` nor `--no-scopes` are '
        'specified and the project has no default service '
        'account, then the instance will be created with no '
        'scopes.')
    instances_flags.AddTagsArgs(parser)
    instances_flags.AddCustomMachineTypeArgs(parser)
    instances_flags.AddNetworkArgs(parser)
    instances_flags.AddPrivateNetworkIpArgs(parser)
    instances_flags.AddImageArgs(parser)
    instances_flags.AddDeletionProtectionFlag(parser)
    instances_flags.AddPublicPtrArgs(parser, instance=True)
    if support_public_dns:
        instances_flags.AddPublicDnsArgs(parser, instance=True)
    if support_network_tier:
        instances_flags.AddNetworkTierArgs(parser, instance=True)
    if support_sole_tenancy:
        sole_tenancy_flags.AddNodeAffinityFlagToParser(parser)
    if supports_resource_policies:
        maintenance_flags.AddResourcePoliciesArgs(parser, 'added to',
                                                  'instance')

    labels_util.AddCreateLabelsFlags(parser)
    instances_flags.AddMinCpuPlatformArgs(parser, release_track)

    parser.add_argument(
        '--description',
        help='Specifies a textual description of the instances.')

    instances_flags.INSTANCES_ARG_FOR_CREATE.AddArgument(
        parser, operation_type='create')

    csek_utils.AddCsekKeyArgs(parser)

    base.ASYNC_FLAG.AddToParser(parser)
    parser.display_info.AddFormat(
        resource_registry.RESOURCE_REGISTRY['compute.instances'].list_format)
    parser.display_info.AddCacheUpdater(completers.InstancesCompleter)
def _CommonArgs(parser,
                deprecate_maintenance_policy=False,
                support_min_node_cpu=False,
                support_erase_vss=False,
                snapshot_csek=False,
                image_csek=False,
                support_display_device=False,
                support_local_ssd_size=False,
                support_numa_node_count=False,
                support_visible_core_count=False,
                support_max_run_duration=False,
                support_enable_target_shape=False):
    """Register parser args common to all tracks."""
    metadata_utils.AddMetadataArgs(parser)
    instances_flags.AddDiskArgsForBulk(parser)
    instances_flags.AddCreateDiskArgs(parser,
                                      enable_kms=True,
                                      enable_snapshots=True,
                                      source_snapshot_csek=snapshot_csek,
                                      image_csek=image_csek,
                                      include_name=False,
                                      support_boot=True)
    instances_flags.AddCanIpForwardArgs(parser)
    instances_flags.AddAcceleratorArgs(parser)
    instances_flags.AddMachineTypeArgs(parser)
    instances_flags.AddMaintenancePolicyArgs(
        parser, deprecate=deprecate_maintenance_policy)
    instances_flags.AddNoRestartOnFailureArgs(parser)
    instances_flags.AddPreemptibleVmArgs(parser)
    instances_flags.AddProvisioningModelVmArgs(parser)
    instances_flags.AddNetworkPerformanceConfigsArgs(parser)
    instances_flags.AddInstanceTerminationActionVmArgs(parser)
    instances_flags.AddServiceAccountAndScopeArgs(
        parser,
        False,
        extra_scopes_help='However, if neither `--scopes` nor `--no-scopes` are '
        'specified and the project has no default service '
        'account, then the instance will be created with no '
        'scopes. Note that the level of access that a service '
        'account has is determined by a combination of access '
        'scopes and IAM roles so you must configure both '
        'access scopes and IAM roles for the service account '
        'to work properly.')
    instances_flags.AddTagsArgs(parser)
    instances_flags.AddCustomMachineTypeArgs(parser)
    instances_flags.AddNoAddressArg(parser)
    instances_flags.AddNetworkArgs(parser)
    instances_flags.AddNetworkTierArgs(parser, instance=True)
    instances_flags.AddBulkCreateNetworkingArgs(parser)

    instances_flags.AddImageArgs(parser, enable_snapshots=True)
    instances_flags.AddShieldedInstanceConfigArgs(parser)
    instances_flags.AddNestedVirtualizationArgs(parser)
    instances_flags.AddThreadsPerCoreArgs(parser)
    instances_flags.AddEnableUefiNetworkingArgs(parser)
    instances_flags.AddResourceManagerTagsArgs(parser)
    if support_numa_node_count:
        instances_flags.AddNumaNodeCountArgs(parser)

    if support_display_device:
        instances_flags.AddDisplayDeviceArg(parser)

    instances_flags.AddReservationAffinityGroup(
        parser,
        group_text='Specifies the reservation for the instance.',
        affinity_text='The type of reservation for the instance.')

    maintenance_flags.AddResourcePoliciesArgs(parser, 'added to', 'instance')

    if support_min_node_cpu:
        instances_flags.AddMinNodeCpuArg(parser)

    instances_flags.AddLocationHintArg(parser)

    if support_erase_vss:
        flags.AddEraseVssSignature(
            parser, 'source snapshots or source machine'
            ' image')

    labels_util.AddCreateLabelsFlags(parser)

    parser.add_argument(
        '--description',
        help='Specifies a textual description of the instances.')

    base.ASYNC_FLAG.AddToParser(parser)
    parser.display_info.AddFormat(
        'multi(instances:format="table(name,zone.basename())")')

    if support_visible_core_count:
        instances_flags.AddVisibleCoreCountArgs(parser)

    if support_local_ssd_size:
        instances_flags.AddLocalSsdArgsWithSize(parser)
    else:
        instances_flags.AddLocalSsdArgs(parser)

    if support_max_run_duration:
        instances_flags.AddMaxRunDurationVmArgs(parser)

    if support_enable_target_shape:
        instances_flags.AddDistributionTargetShapeArgs(parser)
示例#16
0
def _CommonArgs(parser,
                deprecate_maintenance_policy=False,
                enable_resource_policy=False,
                supports_min_node_cpu=False,
                supports_location_hint=False,
                supports_erase_vss=False,
                snapshot_csek=False,
                image_csek=False):
    """Register parser args common to all tracks."""
    metadata_utils.AddMetadataArgs(parser)
    instances_flags.AddCreateDiskArgs(parser,
                                      enable_snapshots=True,
                                      resource_policy=enable_resource_policy,
                                      source_snapshot_csek=snapshot_csek,
                                      image_csek=image_csek,
                                      include_name=False)
    instances_flags.AddCanIpForwardArgs(parser)
    instances_flags.AddAcceleratorArgs(parser)
    instances_flags.AddMachineTypeArgs(parser)
    instances_flags.AddMaintenancePolicyArgs(
        parser, deprecate=deprecate_maintenance_policy)
    instances_flags.AddNoRestartOnFailureArgs(parser)
    instances_flags.AddPreemptibleVmArgs(parser)
    instances_flags.AddServiceAccountAndScopeArgs(
        parser,
        False,
        extra_scopes_help='However, if neither `--scopes` nor `--no-scopes` are '
        'specified and the project has no default service '
        'account, then the instance will be created with no '
        'scopes. Note that the level of access that a service '
        'account has is determined by a combination of access '
        'scopes and IAM roles so you must configure both '
        'access scopes and IAM roles for the service account '
        'to work properly.')
    instances_flags.AddTagsArgs(parser)
    instances_flags.AddCustomMachineTypeArgs(parser)
    instances_flags.AddNoAddressArg(parser)
    instances_flags.AddNetworkArgs(parser)
    instances_flags.AddNetworkTierArgs(parser, instance=True)
    instances_flags.AddBulkCreateNetworkingArgs(parser)

    instances_flags.AddImageArgs(parser, enable_snapshots=True)
    instances_flags.AddShieldedInstanceConfigArgs(parser)
    instances_flags.AddDisplayDeviceArg(parser)

    instances_flags.AddReservationAffinityGroup(
        parser,
        group_text='Specifies the reservation for the instance.',
        affinity_text='The type of reservation for the instance.')

    maintenance_flags.AddResourcePoliciesArgs(parser, 'added to', 'instance')

    if supports_min_node_cpu:
        instances_flags.AddMinNodeCpuArg(parser)

    if supports_location_hint:
        instances_flags.AddLocationHintArg(parser)

    if supports_erase_vss:
        flags.AddEraseVssSignature(
            parser, 'source snapshots or source machine'
            ' image')

    labels_util.AddCreateLabelsFlags(parser)

    parser.add_argument(
        '--description',
        help='Specifies a textual description of the instances.')

    base.ASYNC_FLAG.AddToParser(parser)
示例#17
0
def _CommonArgs(parser,
                enable_regional=False,
                enable_kms=False,
                deprecate_maintenance_policy=False,
                supports_erase_vss=False,
                snapshot_csek=False,
                image_csek=False,
                support_multi_writer=False,
                support_replica_zones=False,
                support_subinterface=False,
                support_node_project=False,
                support_host_error_timeout_seconds=False,
                support_numa_node_count=False,
                support_disk_architecture=False,
                support_network_queue_count=False,
                support_instance_kms=False,
                support_max_run_duration=False):
    """Register parser args common to all tracks."""
    metadata_utils.AddMetadataArgs(parser)
    instances_flags.AddDiskArgs(parser, enable_regional, enable_kms=enable_kms)
    instances_flags.AddCreateDiskArgs(
        parser,
        enable_kms=enable_kms,
        enable_snapshots=True,
        source_snapshot_csek=snapshot_csek,
        image_csek=image_csek,
        support_boot=True,
        support_multi_writer=support_multi_writer,
        support_replica_zones=support_replica_zones,
        support_disk_architecture=support_disk_architecture)
    instances_flags.AddCanIpForwardArgs(parser)
    instances_flags.AddAddressArgs(
        parser,
        instances=True,
        support_subinterface=support_subinterface,
        instance_create=True,
        support_network_queue_count=support_network_queue_count)
    instances_flags.AddAcceleratorArgs(parser)
    instances_flags.AddMachineTypeArgs(parser)
    instances_flags.AddMaintenancePolicyArgs(
        parser, deprecate=deprecate_maintenance_policy)
    instances_flags.AddNoRestartOnFailureArgs(parser)
    instances_flags.AddPreemptibleVmArgs(parser)
    instances_flags.AddServiceAccountAndScopeArgs(
        parser,
        False,
        extra_scopes_help='However, if neither `--scopes` nor `--no-scopes` are '
        'specified and the project has no default service '
        'account, then the instance will be created with no '
        'scopes. Note that the level of access that a service '
        'account has is determined by a combination of access '
        'scopes and IAM roles so you must configure both '
        'access scopes and IAM roles for the service account '
        'to work properly.')
    instances_flags.AddTagsArgs(parser)
    instances_flags.AddCustomMachineTypeArgs(parser)
    instances_flags.AddNetworkArgs(parser)
    instances_flags.AddPrivateNetworkIpArgs(parser)
    instances_flags.AddHostnameArg(parser)
    instances_flags.AddImageArgs(parser,
                                 enable_snapshots=True,
                                 support_image_family_scope=True)
    instances_flags.AddDeletionProtectionFlag(parser)
    instances_flags.AddPublicPtrArgs(parser, instance=True)
    instances_flags.AddIpv6PublicPtrDomainArg(parser)
    instances_flags.AddNetworkTierArgs(parser, instance=True)
    instances_flags.AddShieldedInstanceConfigArgs(parser)
    instances_flags.AddDisplayDeviceArg(parser)
    instances_flags.AddMinNodeCpuArg(parser)
    instances_flags.AddNestedVirtualizationArgs(parser)
    instances_flags.AddThreadsPerCoreArgs(parser)
    instances_flags.AddEnableUefiNetworkingArgs(parser)
    instances_flags.AddResourceManagerTagsArgs(parser)
    if support_numa_node_count:
        instances_flags.AddNumaNodeCountArgs(parser)
    instances_flags.AddStackTypeArgs(parser)
    instances_flags.AddIpv6NetworkTierArgs(parser)
    instances_flags.AddNetworkPerformanceConfigsArgs(parser)
    instances_flags.AddProvisioningModelVmArgs(parser)
    instances_flags.AddInstanceTerminationActionVmArgs(parser)

    instances_flags.AddReservationAffinityGroup(
        parser,
        group_text='Specifies the reservation for the instance.',
        affinity_text='The type of reservation for the instance.')

    maintenance_flags.AddResourcePoliciesArgs(parser, 'added to', 'instance')

    sole_tenancy_flags.AddNodeAffinityFlagToParser(parser)

    instances_flags.AddLocationHintArg(parser)

    if supports_erase_vss:
        flags.AddEraseVssSignature(
            parser, 'source snapshots or source machine'
            ' image')

    labels_util.AddCreateLabelsFlags(parser)

    parser.add_argument(
        '--description',
        help='Specifies a textual description of the instances.')

    instances_flags.INSTANCES_ARG_FOR_CREATE.AddArgument(
        parser, operation_type='create')

    csek_utils.AddCsekKeyArgs(parser)

    base.ASYNC_FLAG.AddToParser(parser)
    parser.display_info.AddFormat(instances_flags.DEFAULT_LIST_FORMAT)
    parser.display_info.AddCacheUpdater(completers.InstancesCompleter)

    if support_node_project:
        instances_flags.AddNodeProjectArgs(parser)

    if support_host_error_timeout_seconds:
        instances_flags.AddHostErrorTimeoutSecondsArgs(parser)

    if support_instance_kms:
        instances_flags.AddInstanceKmsArgs(parser)

    if support_max_run_duration:
        instances_flags.AddMaxRunDurationVmArgs(parser)
示例#18
0
文件: create.py 项目: iofh/QA-System
def _CommonArgs(parser,
                enable_regional=False,
                enable_kms=False,
                deprecate_maintenance_policy=False,
                enable_resource_policy=False,
                supports_min_node_cpu=False,
                supports_location_hint=False,
                supports_erase_vss=False,
                snapshot_csek=False,
                image_csek=False,
                enable_pd_interface=False):
    """Register parser args common to all tracks."""
    metadata_utils.AddMetadataArgs(parser)
    instances_flags.AddDiskArgs(parser,
                                enable_regional,
                                enable_kms=enable_kms,
                                enable_pd_interface=enable_pd_interface)
    instances_flags.AddCreateDiskArgs(parser,
                                      enable_kms=enable_kms,
                                      enable_snapshots=True,
                                      resource_policy=enable_resource_policy,
                                      source_snapshot_csek=snapshot_csek,
                                      image_csek=image_csek)
    instances_flags.AddCanIpForwardArgs(parser)
    instances_flags.AddAddressArgs(parser, instances=True)
    instances_flags.AddAcceleratorArgs(parser)
    instances_flags.AddMachineTypeArgs(parser)
    instances_flags.AddMaintenancePolicyArgs(
        parser, deprecate=deprecate_maintenance_policy)
    instances_flags.AddNoRestartOnFailureArgs(parser)
    instances_flags.AddPreemptibleVmArgs(parser)
    instances_flags.AddServiceAccountAndScopeArgs(
        parser,
        False,
        extra_scopes_help='However, if neither `--scopes` nor `--no-scopes` are '
        'specified and the project has no default service '
        'account, then the instance will be created with no '
        'scopes. Note that the level of access that a service '
        'account has is determined by a combination of access '
        'scopes and IAM roles so you must configure both '
        'access scopes and IAM roles for the service account '
        'to work properly.')
    instances_flags.AddTagsArgs(parser)
    instances_flags.AddCustomMachineTypeArgs(parser)
    instances_flags.AddNetworkArgs(parser)
    instances_flags.AddPrivateNetworkIpArgs(parser)
    instances_flags.AddHostnameArg(parser)
    instances_flags.AddImageArgs(parser, enable_snapshots=True)
    instances_flags.AddDeletionProtectionFlag(parser)
    instances_flags.AddPublicPtrArgs(parser, instance=True)
    instances_flags.AddNetworkTierArgs(parser, instance=True)
    instances_flags.AddShieldedInstanceConfigArgs(parser)
    instances_flags.AddDisplayDeviceArg(parser)

    instances_flags.AddReservationAffinityGroup(
        parser,
        group_text='Specifies the reservation for the instance.',
        affinity_text='The type of reservation for the instance.')

    maintenance_flags.AddResourcePoliciesArgs(parser, 'added to', 'instance')

    sole_tenancy_flags.AddNodeAffinityFlagToParser(parser)

    if supports_min_node_cpu:
        instances_flags.AddMinNodeCpuArg(parser)

    if supports_location_hint:
        instances_flags.AddLocationHintArg(parser)

    if supports_erase_vss:
        flags.AddEraseVssSignature(
            parser, 'source snapshots or source machine'
            ' image')

    labels_util.AddCreateLabelsFlags(parser)

    parser.add_argument(
        '--description',
        help='Specifies a textual description of the instances.')

    instances_flags.INSTANCES_ARG_FOR_CREATE.AddArgument(
        parser, operation_type='create')

    csek_utils.AddCsekKeyArgs(parser)

    base.ASYNC_FLAG.AddToParser(parser)
    parser.display_info.AddFormat(
        resource_registry.RESOURCE_REGISTRY['compute.instances'].list_format)
    parser.display_info.AddCacheUpdater(completers.InstancesCompleter)
def _CommonArgs(parser,
                release_track,
                support_source_instance,
                support_local_ssd_size=False,
                support_kms=False,
                support_multi_writer=False,
                support_mesh=False,
                support_host_error_timeout_seconds=False,
                support_numa_node_count=False,
                support_visible_core_count=False,
                support_disk_architecture=False,
                support_max_run_duration=False):
  """Adding arguments applicable for creating instance templates."""
  parser.display_info.AddFormat(instance_templates_flags.DEFAULT_LIST_FORMAT)
  metadata_utils.AddMetadataArgs(parser)
  instances_flags.AddDiskArgs(parser, enable_kms=support_kms)
  instances_flags.AddCreateDiskArgs(
      parser,
      enable_kms=support_kms,
      support_boot=True,
      support_multi_writer=support_multi_writer,
      support_disk_architecture=support_disk_architecture)
  if support_local_ssd_size:
    instances_flags.AddLocalSsdArgsWithSize(parser)
  else:
    instances_flags.AddLocalSsdArgs(parser)
  instances_flags.AddCanIpForwardArgs(parser)
  instances_flags.AddAddressArgs(parser, instances=False)
  instances_flags.AddAcceleratorArgs(parser)
  instances_flags.AddMachineTypeArgs(parser)
  deprecate_maintenance_policy = release_track in [base.ReleaseTrack.ALPHA]
  instances_flags.AddMaintenancePolicyArgs(parser, deprecate_maintenance_policy)
  instances_flags.AddNoRestartOnFailureArgs(parser)
  instances_flags.AddPreemptibleVmArgs(parser)
  instances_flags.AddServiceAccountAndScopeArgs(parser, False)
  instances_flags.AddTagsArgs(parser)
  instances_flags.AddCustomMachineTypeArgs(parser)
  instances_flags.AddImageArgs(parser)
  instances_flags.AddNetworkArgs(parser)
  instances_flags.AddShieldedInstanceConfigArgs(parser)
  labels_util.AddCreateLabelsFlags(parser)
  instances_flags.AddNetworkTierArgs(parser, instance=True)
  instances_flags.AddPrivateNetworkIpArgs(parser)
  instances_flags.AddMinNodeCpuArg(parser)
  instances_flags.AddNestedVirtualizationArgs(parser)
  instances_flags.AddThreadsPerCoreArgs(parser)
  instances_flags.AddEnableUefiNetworkingArgs(parser)
  instances_flags.AddResourceManagerTagsArgs(parser)
  if support_numa_node_count:
    instances_flags.AddNumaNodeCountArgs(parser)
  instances_flags.AddStackTypeArgs(parser)
  instances_flags.AddIpv6NetworkTierArgs(parser)
  maintenance_flags.AddResourcePoliciesArgs(parser, 'added to',
                                            'instance-template')
  instances_flags.AddProvisioningModelVmArgs(parser)
  instances_flags.AddInstanceTerminationActionVmArgs(parser)

  if support_max_run_duration:
    instances_flags.AddMaxRunDurationVmArgs(parser)

  instance_templates_flags.AddServiceProxyConfigArgs(
      parser, release_track=release_track)
  if support_mesh:
    instance_templates_flags.AddMeshArgs(parser)

  sole_tenancy_flags.AddNodeAffinityFlagToParser(parser)

  instances_flags.AddLocationHintArg(parser)

  if support_visible_core_count:
    instances_flags.AddVisibleCoreCountArgs(parser)

  instances_flags.AddNetworkPerformanceConfigsArgs(parser)

  flags.AddRegionFlag(
      parser, resource_type='subnetwork', operation_type='attach')

  parser.add_argument(
      '--description',
      help='Specifies a textual description for the instance template.')

  Create.InstanceTemplateArg = (
      instance_templates_flags.MakeInstanceTemplateArg())
  Create.InstanceTemplateArg.AddArgument(parser, operation_type='create')
  if support_source_instance:
    instance_templates_flags.MakeSourceInstanceArg().AddArgument(parser)
    parser.add_argument(
        '--configure-disk',
        type=arg_parsers.ArgDict(
            spec={
                'auto-delete': arg_parsers.ArgBoolean(),
                'device-name': str,
                'instantiate-from': str,
                'custom-image': str,
            },),
        metavar='PROPERTY=VALUE',
        action='append',
        help="""\
        This option has effect only when used with `--source-instance`. It
        allows you to override how the source-instance's disks are defined in
        the template.

        *auto-delete*::: If `true`, this persistent disk will be automatically
        deleted when the instance is deleted. However, if the disk is later
        detached from the instance, this option won't apply. If not provided,
        the setting is copied from the source instance. Allowed values of the
        flag are: `false`, `no`, `true`, and `yes`.

        *device-name*::: Name of the device.

        *instantiate-from*::: Specifies whether to include the disk and which
        image to use. Valid values are: {}

        *custom-image*::: The custom image to use if custom-image is specified
        for instantiate-from.
        """.format(', '.join(_INSTANTIATE_FROM_VALUES)),
    )

  instances_flags.AddReservationAffinityGroup(
      parser,
      group_text="""\
Specifies the reservation for instances created from this template.
""",
      affinity_text="""\
The type of reservation for instances created from this template.
""")

  parser.display_info.AddCacheUpdater(completers.InstanceTemplatesCompleter)
  if support_host_error_timeout_seconds:
    instances_flags.AddHostErrorTimeoutSecondsArgs(parser)