Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
  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)
Exemplo n.º 4
0
  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)
Exemplo n.º 5
0
  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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
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
Exemplo n.º 8
0
    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
        }
Exemplo n.º 9
0
    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))