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)
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')
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)
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)
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)