Ejemplo n.º 1
0
  def testAddUpdateLabelsFlags(self):
    parser = argparse.ArgumentParser()
    labels_util.AddUpdateLabelsFlags(parser)
    args = parser.parse_args([
        '--update-labels=key1=value1,key2=value2',
        '--remove-labels=key3,key4',
    ])

    self.assertFalse(hasattr(args, 'labels'))
    self.assertTrue(hasattr(args, 'update_labels'))
    self.assertTrue(hasattr(args, 'remove_labels'))

    expected_update = {
        'key1': 'value1',
        'key2': 'value2',
    }
    actual_update = labels_util.GetUpdateLabelsDictFromArgs(args)
    self.assertEqual(expected_update, actual_update)

    expected_remove = [
        'key3',
        'key4',
    ]
    actual_remove = labels_util.GetRemoveLabelsListFromArgs(args)
    self.assertEqual(expected_remove, actual_remove)
Ejemplo n.º 2
0
 def _UpdateLabels(self, connection_profile, args):
     """Updates labels of the connection profile."""
     add_labels = labels_util.GetUpdateLabelsDictFromArgs(args)
     remove_labels = labels_util.GetRemoveLabelsListFromArgs(args)
     value_type = self._messages.ConnectionProfile.LabelsValue
     update_result = labels_util.Diff(additions=add_labels,
                                      subtractions=remove_labels,
                                      clear=args.clear_labels).Apply(
                                          value_type,
                                          connection_profile.labels)
     if update_result.needs_update:
         connection_profile.labels = update_result.labels
 def _UpdateLabels(self, stream, args):
   """Updates labels of the stream."""
   add_labels = labels_util.GetUpdateLabelsDictFromArgs(args)
   remove_labels = labels_util.GetRemoveLabelsListFromArgs(args)
   value_type = self._messages.Stream.LabelsValue
   update_result = labels_util.Diff(
       additions=add_labels,
       subtractions=remove_labels,
       clear=args.clear_labels
   ).Apply(value_type, stream.labels)
   if update_result.needs_update:
     stream.labels = update_result.labels
 def _UpdateLabels(self, args, migration_job, update_fields):
     """Updates labels of the migration job."""
     add_labels = labels_util.GetUpdateLabelsDictFromArgs(args)
     remove_labels = labels_util.GetRemoveLabelsListFromArgs(args)
     value_type = self.messages.MigrationJob.LabelsValue
     update_result = labels_util.Diff(
         additions=add_labels,
         subtractions=remove_labels,
         clear=args.clear_labels).Apply(value_type)
     if update_result.needs_update:
         migration_job.labels = update_result.labels
         update_fields.append('labels')
Ejemplo n.º 5
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)
Ejemplo n.º 6
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.
    """
    composite_type_ref = composite_types.GetReference(self.resources, args.name)
    get_request = self.messages.DeploymentmanagerCompositeTypesGetRequest(
        project=composite_type_ref.project,
        compositeType=args.name)
    existing_ct = self.client.compositeTypes.Get(get_request)

    labels = dm_labels.UpdateLabels(
        existing_ct.labels,
        self.messages.CompositeTypeLabelEntry,
        labels_util.GetUpdateLabelsDictFromArgs(args),
        labels_util.GetRemoveLabelsListFromArgs(args))

    composite_type = self.messages.CompositeType(
        name=args.name,
        description=args.description,
        status=args.status,
        templateContents=existing_ct.templateContents,
        labels=labels)

    update_request = self.messages.DeploymentmanagerCompositeTypesUpdateRequest(
        project=composite_type_ref.project,
        compositeType=args.name,
        compositeTypeResource=composite_type)

    dm_write.Execute(self.client,
                     self.messages,
                     self.resources,
                     update_request,
                     args.async_,
                     self.client.compositeTypes.Update,
                     LogResource)
Ejemplo n.º 7
0
 def _GetUpdatedDeploymentLabels(self, args, deployment):
     update_labels = labels_util.GetUpdateLabelsDictFromArgs(args)
     remove_labels = labels_util.GetRemoveLabelsListFromArgs(args)
     return dm_labels.UpdateLabels(deployment.labels,
                                   self.messages.DeploymentLabelEntry,
                                   update_labels, remove_labels)