Esempio n. 1
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)
Esempio n. 2
0
 def testNoTopLevelOptions(self):
     api_options = self.GetTestFilePath('no_top_level_options.yaml')
     type_provider = type_providers.AddOptions(self.messages, api_options,
                                               self.messages.TypeProvider())
     optionless_provider = self.full_type_provider
     optionless_provider.options = None
     self.assertEqual(type_provider, optionless_provider)
Esempio n. 3
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.
    """
        type_provider_ref = self.resources.Parse(
            args.provider_name,
            params={'project': properties.VALUES.core.project.GetOrFail},
            collection='deploymentmanager.typeProviders')
        update_labels_dict = labels_util.GetUpdateLabelsDictFromArgs(args)
        labels = dm_labels.UpdateLabels([],
                                        self.messages.TypeProviderLabelEntry,
                                        update_labels=update_labels_dict)

        type_provider = self.messages.TypeProvider(
            name=type_provider_ref.typeProvider,
            description=args.description,
            descriptorUrl=args.descriptor_url,
            labels=labels)

        type_providers.AddOptions(self.messages, args.api_options_file,
                                  type_provider)
        request = self.messages.DeploymentmanagerTypeProvidersInsertRequest(
            project=type_provider_ref.project, typeProvider=type_provider)

        dm_write.Execute(self.client, self.messages, self.resources, request,
                         args. async, self.client.typeProviders.Insert,
                         LogResource)
Esempio n. 4
0
 def testNoCollectionOverrides(self):
     api_options = self.GetTestFilePath('no_collection_overrides.yaml')
     type_provider = type_providers.AddOptions(self.messages, api_options,
                                               self.messages.TypeProvider())
     collectionless_provider = self.full_type_provider
     collectionless_provider.collectionOverrides = []
     self.assertEqual(type_provider, collectionless_provider)
Esempio n. 5
0
 def testNoCredential(self):
     api_options = self.GetTestFilePath('no_credential.yaml')
     type_provider = type_providers.AddOptions(self.messages, api_options,
                                               self.messages.TypeProvider())
     credentialless_provider = self.full_type_provider
     credentialless_provider.credential = None
     self.assertEqual(type_provider, credentialless_provider)
Esempio 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.
    """
    type_provider_ref = type_providers.GetReference(self.resources,
                                                    args.provider_name)
    project = type_provider_ref.project
    name = type_provider_ref.typeProvider
    get_request = self.messages.DeploymentmanagerTypeProvidersGetRequest(
        project=project,
        typeProvider=name)

    existing_tp = self.client.typeProviders.Get(get_request)

    labels = dm_labels.UpdateLabels(
        existing_tp.labels,
        self.messages.TypeProviderLabelEntry,
        labels_util.GetUpdateLabelsDictFromArgs(args),
        labels_util.GetRemoveLabelsListFromArgs(args))
    type_provider = self.messages.TypeProvider(name=name,
                                               description=args.description,
                                               descriptorUrl=(args.
                                                              descriptor_url),
                                               labels=labels)
    type_providers.AddOptions(self.messages,
                              args.api_options_file,
                              type_provider)

    update_request = self.messages.DeploymentmanagerTypeProvidersUpdateRequest(
        project=project,
        typeProvider=args.provider_name,
        typeProviderResource=type_provider)

    dm_write.Execute(self.client,
                     self.messages,
                     self.resources,
                     update_request,
                     args.async_,
                     self.client.typeProviders.Update,
                     LogResource)
Esempio n. 7
0
 def testEmpty(self):
     api_options = self.GetTestFilePath('empty_config.yaml')
     type_provider = type_providers.AddOptions(self.messages, api_options,
                                               self.messages.TypeProvider())
     empty_provider = self.messages.TypeProvider()
     self.assertEqual(type_provider, empty_provider)
Esempio n. 8
0
 def testFullTypeProviderTranslation(self):
     api_options = self.GetTestFilePath('full_config.yaml')
     type_provider = type_providers.AddOptions(self.messages, api_options,
                                               self.messages.TypeProvider())
     self.assertEqual(type_provider, self.full_type_provider)
Esempio n. 9
0
 def testBadYaml(self):
     api_options = self.GetTestFilePath('bad_yaml.yaml')
     with self.assertRaises(yaml.Error):
         type_providers.AddOptions(self.messages, api_options,
                                   self.messages.TypeProvider())
Esempio n. 10
0
 def testNoOptionsFile(self):
     # Using a string as input ensures the type provider isn't touched
     self.assertEqual('baz',
                      type_providers.AddOptions(self.messages, '', 'baz'))
     self.assertEqual('baz',
                      type_providers.AddOptions(self.messages, None, 'baz'))