def Run(self, args): """Run 'type-providers delete'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Raises: HttpException: An http error response was received while executing api request. """ messages = dm_beta_base.GetMessages() type_provider_ref = type_providers.GetReference(args.provider_name) if not args.quiet: prompt_message = 'Are you sure you want to delete [{0}]?'.format( type_provider_ref.typeProvider) if not console_io.PromptContinue(message=prompt_message, default=False): raise exceptions.OperationError('Deletion aborted by user.') request = messages.DeploymentmanagerTypeProvidersDeleteRequest( project=type_provider_ref.project, typeProvider=type_provider_ref.typeProvider) dm_write.Execute(request, args. async, dm_beta_base.GetClient().typeProviders.Delete, LogResource)
def Run(self, args): """Run 'type-providers create'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Raises: HttpException: An http error response was received while executing api request. """ messages = dm_beta_base.GetMessages() type_provider_ref = dm_beta_base.GetResources().Parse( args.provider_name, collection='deploymentmanager.typeProviders') update_labels_dict = labels_util.GetUpdateLabelsDictFromArgs(args) labels = dm_labels.UpdateLabels([], messages.TypeProviderLabelEntry, update_labels=update_labels_dict) type_provider = messages.TypeProvider( name=type_provider_ref.typeProvider, description=args.description, descriptorUrl=args.descriptor_url, labels=labels) type_providers.AddOptions(args.api_options_file, type_provider) request = messages.DeploymentmanagerTypeProvidersInsertRequest( project=type_provider_ref.project, typeProvider=type_provider) dm_write.Execute(request, args. async, dm_beta_base.GetClient().typeProviders.Insert, LogResource)
def Run(self, args): """Run 'types create'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Raises: HttpException: An http error response was received while executing api request. """ messages = dm_beta_base.GetMessages() composite_type_ref = composite_types.GetReference(args.name) update_labels_dict = labels_util.GetUpdateLabelsDictFromArgs(args) labels = dm_labels.UpdateLabels([], messages.CompositeTypeLabelEntry, update_labels=update_labels_dict) template_contents = composite_types.TemplateContentsFor(args.template) composite_type = messages.CompositeType( name=args.name, description=args.description, status=args.status, templateContents=template_contents, labels=labels) request = messages.DeploymentmanagerCompositeTypesInsertRequest( project=composite_type_ref.project, compositeType=composite_type) dm_write.Execute(request, args.async, dm_beta_base.GetClient().compositeTypes.Insert, LogResource)
def Run(self, args): """Runs 'type-proivders describe'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The requested TypeProvider. Raises: HttpException: An http error response was received while executing the api request. InvalidArgumentException: The requested type provider could not be found. """ type_provider_ref = dm_beta_base.GetResources().Parse( args.provider_name, params={'project': properties.VALUES.core.project.GetOrFail}, collection='deploymentmanager.typeProviders') messages = dm_beta_base.GetMessages() request = messages.DeploymentmanagerTypeProvidersGetRequest( **type_provider_ref.AsDict()) client = dm_beta_base.GetClient() return client.typeProviders.Get(request)
def Run(self, args): """Run 'types update'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Raises: HttpException: An http error response was received while executing api request. """ messages = dm_beta_base.GetMessages() composite_type_ref = composite_types.GetReference(args.name) get_request = messages.DeploymentmanagerCompositeTypesGetRequest( project=composite_type_ref.project, compositeType=args.name) existing_ct = dm_beta_base.GetClient().compositeTypes.Get(get_request) labels = dm_labels.UpdateLabels( existing_ct.labels, messages.CompositeTypeLabelEntry, labels_util.GetUpdateLabelsDictFromArgs(args), labels_util.GetRemoveLabelsListFromArgs(args)) composite_type = messages.CompositeType( name=args.name, description=args.description, status=args.status, templateContents=existing_ct.templateContents, labels=labels) update_request = messages.DeploymentmanagerCompositeTypesUpdateRequest( project=composite_type_ref.project, compositeType=args.name, compositeTypeResource=composite_type) dm_write.Execute(update_request, args.async, dm_beta_base.GetClient().compositeTypes.Update, LogResource)
def Run(self, args): """Run 'type-providers update'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Raises: HttpException: An http error response was received while executing api request. """ messages = dm_beta_base.GetMessages() type_provider_ref = type_providers.GetReference(args.provider_name) project = type_provider_ref.project name = type_provider_ref.typeProvider get_request = messages.DeploymentmanagerTypeProvidersGetRequest( project=project, typeProvider=name) existing_tp = dm_beta_base.GetClient().typeProviders.Get(get_request) labels = dm_labels.UpdateLabels( existing_tp.labels, messages.TypeProviderLabelEntry, labels_util.GetUpdateLabelsDictFromArgs(args), labels_util.GetRemoveLabelsListFromArgs(args)) type_provider = messages.TypeProvider( name=name, description=args.description, descriptorUrl=(args.descriptor_url), labels=labels) type_providers.AddOptions(args.api_options_file, type_provider) update_request = messages.DeploymentmanagerTypeProvidersUpdateRequest( project=project, typeProvider=args.provider_name, typeProviderResource=type_provider) dm_write.Execute(update_request, args. async, dm_beta_base.GetClient().typeProviders.Update, LogResource)
def TypeProviderClient(): """Return a Type Provider client specially suited for listing types. Listing types requires many API calls, some of which may fail due to bad user configurations which show up as errors that are retryable. We can alleviate some of the latency and usability issues this causes by tuning the client. Returns: A Type Provider API client. """ main_client = dm_beta_base.GetClient() main_client.num_retries = 2 return main_client.typeProviders
def Run(self, args): """Runs 'types describe'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The requested TypeInfo. Raises: HttpException: An http error response was received while executing the api request. InvalidArgumentException: The requested type provider type could not be found. """ messages = dm_beta_base.GetMessages() client = dm_beta_base.GetClient() type_provider_ref = dm_beta_base.GetResources().Parse( args.provider, params={'project': properties.VALUES.core.project.GetOrFail}, collection='deploymentmanager.typeProviders') request = messages.DeploymentmanagerTypeProvidersGetTypeRequest( project=type_provider_ref.project, type=args.name, typeProvider=type_provider_ref.typeProvider) type_message = client.typeProviders.GetType(request) composite_type_message = 'This is not a composite type.' if type_provider_ref.typeProvider == 'composite': composite_request = messages.DeploymentmanagerCompositeTypesGetRequest( project=type_provider_ref.project, compositeType=args.name) composite_type_message = client.compositeTypes.Get( composite_request) log.status.Print( 'You can reference this type in Deployment Manager with ' '[{0}/{1}:{2}]'.format(type_provider_ref.project, type_provider_ref.typeProvider, args.name)) return { 'type_info': type_message, 'composite_type': composite_type_message }
def Run(self, args): """Run 'type-providers list'. Args: args: argparse.Namespace, The arguments that this command was invoked with. Returns: The list of type providers for this project. Raises: HttpException: An http error response was received while executing api request. """ project = dm_base.GetProject() request = (dm_beta_base.GetMessages(). DeploymentmanagerTypeProvidersListRequest(project=project)) return dm_v2_util.YieldWithHttpExceptions( list_pager.YieldFromList(dm_beta_base.GetClient().typeProviders, request, field='typeProviders', batch_size=args.page_size, limit=args.limit))