Esempio n. 1
0
  def Run(self, args):
    self._ValidateArgs(args)

    holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
    resources = holder.resources
    commitment_ref = flags.MakeCommitmentArg(False).ResolveAsResource(
        args,
        resources,
        scope_lister=compute_flags.GetDefaultScopeLister(holder.client))

    messages = holder.client.messages
    region = properties.VALUES.compute.region.Get()
    project = properties.VALUES.core.project.Get()
    create_request = self._MakeCreateRequest(
        args, messages, project, region, commitment_ref)

    service = holder.client.apitools_client.regionCommitments
    batch_url = holder.client.batch_url
    http = holder.client.apitools_client.http
    errors = []
    return request_helper.MakeRequests(
        requests=[(service, 'Insert', create_request)],
        http=http,
        batch_url=batch_url,
        errors=errors)
Esempio n. 2
0
 def Args(cls, parser):
     flags.MakeCommitmentArg(False).AddArgument(parser,
                                                operation_type='create')
     flags.AddCreateFlags(parser)
     flags.AddAllocationArgGroup(parser)
     messages = apis.GetMessagesModule('compute', 'alpha')
     flags.GetTypeMapperFlag(messages).choice_arg.AddToParser(parser)
Esempio n. 3
0
    def Args(cls, parser):
        flags.MakeCommitmentArg(False).AddArgument(parser)
        parser.add_argument(
            '--plan',
            required=True,
            help=('Duration of the commitment. Can be `12-months` '
                  'or `36-months`.'))
        resources_help = """\
    Resources to be included in the commitment commitment:
    * MEMORY should include unit (eg. 3072MiB or 9GiB). If no units are
      specified, GiB is assumed.
    * VCPU is number of commited cores.
    Ratio between number of VCPU cores and memory must conform to limits
    described on:
    https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type"""

        parser.add_argument(
            '--resources',
            required=True,
            help=resources_help,
            metavar='RESOURCE=COMMITMENT',
            type=arg_parsers.ArgDict(spec={
                'VCPU': int,
                'MEMORY': arg_parsers.BinarySize(),
            }))
  def Run(self, args):
    holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
    resources = holder.resources
    client = holder.client
    commitment_ref = flags.MakeCommitmentArg(False).ResolveAsResource(
        args,
        resources,
        scope_lister=compute_flags.GetDefaultScopeLister(holder.client))

    messages = holder.client.messages

    commitment = messages.Commitment(
        name=commitment_ref.Name(),
        plan=flags.TranslatePlanArg(messages, args.plan),
        category=messages.Commitment.CategoryValueValuesEnum.LICENSE,
        licenseResource=messages.LicenseResourceCommitment(
            amount=args.amount,
            coresPerLicense=args.cores_per_license,
            license=args.license
        ))
    request = (messages.ComputeRegionCommitmentsInsertRequest(
        commitment=commitment,
        project=commitment_ref.project,
        region=commitment_ref.region))
    return client.MakeRequests([(client.apitools_client.regionCommitments,
                                 'Insert', request)])
Esempio n. 5
0
 def Args(cls, parser):
     flags.MakeCommitmentArg(False).AddArgument(parser,
                                                operation_type='create')
     flags.AddCreateFlags(parser, enable_ssd_and_accelerator_support=True)
     flags.AddReservationArgGroup(parser)
     messages = apis.GetMessagesModule('compute', 'alpha')
     flags.GetTypeMapperFlag(messages).choice_arg.AddToParser(parser)
Esempio n. 6
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        resources = holder.resources
        commitment_ref = flags.MakeCommitmentArg(False).ResolveAsResource(
            args,
            resources,
            scope_lister=compute_flags.GetDefaultScopeLister(holder.client))

        messages = holder.client.messages
        region = properties.VALUES.compute.region.Get()
        project = properties.VALUES.core.project.Get()
        create_request = self._MakeCreateRequest(args, messages, project,
                                                 region, commitment_ref,
                                                 holder)

        service = holder.client.apitools_client.regionCommitments
        batch_url = holder.client.batch_url
        http = holder.client.apitools_client.http
        errors = []
        result = list(
            request_helper.MakeRequests(requests=[(service, 'Insert',
                                                   create_request)],
                                        http=http,
                                        batch_url=batch_url,
                                        errors=errors))
        for i, error in enumerate(errors):
            if re.match(_MISSING_COMMITMENTS_QUOTA_REGEX, error[1]):
                errors[i] = (
                    error[0], error[1] +
                    (' You can request commitments quota on '
                     'https://cloud.google.com/compute/docs/instances/'
                     'signing-up-committed-use-discounts#quota'))
        if errors:
            utils.RaiseToolException(errors)
        return result
Esempio n. 7
0
def _CommonArgsAlphaBeta(track, parser):
  """Add common flags for Alpha, Beta track."""
  flags.MakeCommitmentArg(False).AddArgument(parser, operation_type='create')
  flags.AddCreateFlags(parser, enable_ssd_and_accelerator_support=True)
  flags.AddReservationArgGroup(parser)
  messages = apis.GetMessagesModule('compute', track)
  flags.GetTypeMapperFlag(messages).choice_arg.AddToParser(parser)
Esempio n. 8
0
    def Run(self, args):
        holder = base_classes.ComputeApiHolder(self.ReleaseTrack())
        resources = holder.resources
        commitment_ref = flags.MakeCommitmentArg(False).ResolveAsResource(
            args,
            resources,
            scope_lister=compute_flags.GetDefaultScopeLister(holder.client))

        service = holder.client.apitools_client.regionCommitments
        messages = holder.client.messages
        request = messages.ComputeRegionCommitmentsGetRequest(
            commitment=commitment_ref.Name(),
            project=commitment_ref.project,
            region=commitment_ref.region,
        )
        return service.Get(request)
Esempio n. 9
0
 def Run(self, args):
     holder = base_classes.ComputeApiHolder(base.ReleaseTrack.ALPHA)
     resources = holder.resources
     commitment_ref = flags.MakeCommitmentArg(False).ResolveAsResource(
         args,
         resources,
         scope_lister=compute_flags.GetDefaultScopeLister(holder.client))
     service = holder.client.apitools_client.regionCommitments
     messages = holder.client.messages
     update_reservation_request = messages.RegionCommitmentsUpdateReservationsRequest(
         reservations=reservation_helper.MakeReservations(
             args, messages, holder))
     request = messages.ComputeRegionCommitmentsUpdateReservationsRequest(
         commitment=commitment_ref.Name(),
         project=commitment_ref.project,
         region=commitment_ref.region,
         regionCommitmentsUpdateReservationsRequest=
         update_reservation_request)
     return service.UpdateReservations(request)
 def Args(cls, parser):
     flags.MakeCommitmentArg(plural=False).AddArgument(
         parser, operation_type='update')
     flags.AddUpdateFlags(parser)
 def Args(cls, parser):
   flags.MakeCommitmentArg(False).AddArgument(parser, operation_type='create')
   flags.AddLicenceBasedFlags(parser)
Esempio n. 12
0
 def Args(cls, parser):
     flags.MakeCommitmentArg(False).AddArgument(parser,
                                                operation_type='create')
     flags.AddCreateFlags(parser, enable_ssd_and_accelerator_support=True)
     flags.AddReservationArgGroup(parser)
Esempio n. 13
0
 def Args(parser):
     flags.MakeCommitmentArg(False).AddArgument(parser,
                                                operation_type='describe')
 def CreateReference(self, client, resources, args):
     return flags.MakeCommitmentArg(False).ResolveAsResource(
         args,
         resources,
         scope_lister=compute_flags.GetDefaultScopeLister(client))
Esempio n. 15
0
 def Args(cls, parser):
     flags.MakeCommitmentArg(False).AddArgument(parser,
                                                operation_type='create')
     # TODO(b/118885734): verify that when reservations has been in beta.
     flags.AddCreateFlags(parser, enable_ssd_and_accelerator_support=True)
Esempio n. 16
0
 def Args(parser):
     flags.MakeCommitmentArg(False).AddArgument(parser)
Esempio n. 17
0
 def Args(parser):
   flags.MakeCommitmentArg(False).AddArgument(
       parser, operation_type='update reservation')
   flags.AddReservationArgGroup(parser)
Esempio n. 18
0
def _CommonArgsAlphaBeta(track, parser):
    """Add common flags for Alpha, Beta track."""
    flags.MakeCommitmentArg(False).AddArgument(parser, operation_type='create')
    flags.AddCreateFlags(parser)
    messages = apis.GetMessagesModule('compute', track)
    flags.GetTypeMapperFlag(messages).choice_arg.AddToParser(parser)