コード例 #1
0
 def Args(cls, parser):
     resource_args.GetReservationResourceArg().AddArgument(
         parser, operation_type='update')
     r_flags.GetShareWithFlag().AddToParser(parser)
     r_flags.GetAddShareWithFlag().AddToParser(parser)
     r_flags.GetRemoveShareWithFlag().AddToParser(parser)
     r_flags.GetVmCountFlag(False).AddToParser(parser)
コード例 #2
0
ファイル: create.py プロジェクト: saranraju90/multik8s
 def Args(cls, parser):
     resource_args.GetReservationResourceArg().AddArgument(
         parser, operation_type='create')
     flags.AddCreateFlags(parser,
                          support_share_setting=cls._support_share_setting,
                          support_location_hint=cls._support_location_hint,
                          support_fleet=True)
コード例 #3
0
def AddReservationArgGroup(parser):
    """Adds all flags needed for reservations creation."""
    reservations_manage_group = parser.add_group(
        'Manage the reservations to be created with the commitment.',
        mutex=True)

    reservations_manage_group.add_argument(
        '--reservations-from-file',
        type=arg_parsers.BufferedFileInput(),
        help='The path to a YAML file of multiple reservations\' configuration.'
    )

    single_reservation_group = reservations_manage_group.add_argument_group(
        help='Manage the reservation to be created with the commitment.')
    resource_args.GetReservationResourceArg(
        positional=False).AddArgument(single_reservation_group)
    single_reservation_group.add_argument(
        '--reservation-type',
        hidden=True,
        choices=['specific'],
        default='specific',
        help='The type of the reservation to be created.')

    specific_sku_reservation_group = single_reservation_group.add_argument_group(
        help='Manage the specific SKU reservation properties to create.')
    AddFlagsToSpecificSkuGroup(specific_sku_reservation_group)
コード例 #4
0
def AddReservationArgGroup(parser, support_share_setting=False):
  """Adds all flags needed for reservations creation."""
  reservations_manage_group = parser.add_group(
      'Manage the reservations to be created with the commitment.', mutex=True)

  AddReservationsFromFileFlag(reservations_manage_group)

  single_reservation_group = reservations_manage_group.add_argument_group(
      help='Manage the reservation to be created with the commitment.')
  resource_args.GetReservationResourceArg(
      positional=False).AddArgument(single_reservation_group)
  single_reservation_group.add_argument(
      '--reservation-type',
      hidden=True,
      choices=['specific'],
      default='specific',
      help='The type of the reservation to be created.')

  specific_sku_reservation_group = single_reservation_group.add_argument_group(
      help='Manage the specific SKU reservation properties to create.')
  AddFlagsToSpecificSkuGroup(specific_sku_reservation_group)

  if support_share_setting:
    share_setting_reservation_group = single_reservation_group.add_argument_group(
        help='Manage the properties of a shared reservation to create',
        required=False)
    AddFlagsToShareSettingGroup(share_setting_reservation_group)
コード例 #5
0
def _MakeSingleReservation(args, messages, holder):
    """Makes one Allocation message object."""
    reservation_ref = resource_args.GetReservationResourceArg(
        positional=False).ResolveAsResource(
            args,
            holder.resources,
            scope_lister=compute_flags.GetDefaultScopeLister(holder.client))
    return util.MakeReservationMessageFromArgs(messages, args, reservation_ref)
コード例 #6
0
    def Run(self, args):
        """Common routine for updating reservation."""
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        resources = holder.resources
        service = holder.client.apitools_client.reservations

        # Validate the command.
        _ValidateArgs(args, self._support_share_with,
                      self._support_share_with_flag)
        reservation_ref = resource_args.GetReservationResourceArg(
        ).ResolveAsResource(args,
                            resources,
                            scope_lister=compute_flags.GetDefaultScopeLister(
                                holder.client))

        result = list()
        errors = []
        share_with = False
        if self._support_share_with:
            if args.IsSpecified('add_share_with') or args.IsSpecified(
                    'remove_share_with'):
                share_with = True
            if self._support_share_with_flag:
                if args.IsSpecified('share_with'):
                    share_with = True

        if self._support_share_with and share_with:
            r_update_request = _GetShareSettingUpdateRequest(
                args, reservation_ref, holder, self._support_share_with_flag)
            # Invoke Reservation.update API.
            result.append(
                list(
                    request_helper.MakeRequests(
                        requests=[(service, 'Update', r_update_request)],
                        http=holder.client.apitools_client.http,
                        batch_url=holder.client.batch_url,
                        errors=errors)))
            if errors:
                utils.RaiseToolException(errors)

        if args.IsSpecified('vm_count'):
            r_resize_request = _GetResizeRequest(args, reservation_ref, holder)
            # Invoke Reservation.resize API.
            result.append(
                holder.client.MakeRequests(
                    ([(service, 'Resize', r_resize_request)])))

        return result
コード例 #7
0
ファイル: create.py プロジェクト: saranraju90/multik8s
def _RunCreate(compute_api, args):
    """Common routine for creating reservation."""
    resources = compute_api.resources
    reservation_ref = resource_args.GetReservationResourceArg(
    ).ResolveAsResource(args,
                        resources,
                        scope_lister=compute_flags.GetDefaultScopeLister(
                            compute_api.client))

    messages = compute_api.client.messages
    project = reservation_ref.project
    create_request = _MakeCreateRequest(args, messages, project,
                                        reservation_ref)

    service = compute_api.client.apitools_client.reservations
    return compute_api.client.MakeRequests([(service, 'Insert', create_request)
                                            ])
コード例 #8
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        resources = holder.resources
        reservation_ref = resource_args.GetReservationResourceArg(
        ).ResolveAsResource(args,
                            resources,
                            scope_lister=compute_flags.GetDefaultScopeLister(
                                holder.client))

        messages = holder.client.messages
        project = reservation_ref.project
        create_request = self._MakeCreateRequest(args, messages, project,
                                                 reservation_ref)

        service = holder.client.apitools_client.reservations
        return holder.client.MakeRequests([(service, 'Insert', create_request)
                                           ])
コード例 #9
0
ファイル: create.py プロジェクト: piotradamczyk5/gcloud_cli
 def Args(cls, parser):
     resource_args.GetReservationResourceArg().AddArgument(
         parser, operation_type='create')
     flags.AddCreateFlags(parser,
                          support_location_hint=cls._support_location_hint)
コード例 #10
0
 def Args(parser):
     resource_args.GetReservationResourceArg().AddArgument(
         parser, operation_type='create')
     flags.AddCreateFlags(parser)