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)
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)
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)])
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)
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
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)
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)
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)
def Args(cls, parser): flags.MakeCommitmentArg(False).AddArgument(parser, operation_type='create') flags.AddCreateFlags(parser, enable_ssd_and_accelerator_support=True) flags.AddReservationArgGroup(parser)
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))
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)
def Args(parser): flags.MakeCommitmentArg(False).AddArgument(parser)
def Args(parser): flags.MakeCommitmentArg(False).AddArgument( parser, operation_type='update reservation') flags.AddReservationArgGroup(parser)
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)