def Run(self_, args): # Check if mask is required for an update request. mask_path = update.GetMaskFieldPath(self.method) if mask_path: mask_string = update.GetMaskString(args, self.spec, mask_path) self.spec.request.static_fields[mask_path] = mask_string # Check if the update is full-update, which requires a get request. existing_message = None if self.spec.update: if self.spec.update.read_modify_update: existing_message = self._GetExistingResource(args) ref, response = self._CommonRun(args, existing_message) if self.spec. async: request_string = None if ref: request_string = 'Request issued for: [{{{}}}]'.format( yaml_command_schema.NAME_FORMAT_KEY) response = self._HandleAsync(args, ref, response, request_string=request_string) log.UpdatedResource(self._GetDisplayName(ref, args), kind=self.resource_type) return self._HandleResponse(response, args)
def Run(self_, args): # Check if mask is required for an update request, if required, return # the dotted path, e.g updateRequest.fieldMask. mask_path = update.GetMaskFieldPath(self.method) if mask_path: # If user sets to disable the auto-generated field mask, set the value # to the empty string instead so that custom hooks can be used. if self.spec.update and self.spec.update.disable_auto_field_mask: mask_string = '' else: mask_string = update.GetMaskString( args, self.spec, mask_path) self.spec.request.static_fields[mask_path] = mask_string # Check if the update is full-update, which requires a get request. existing_message = None if self.spec.update: if self.spec.update.read_modify_update: existing_message = self._GetExistingResource(args) ref, response = self._CommonRun(args, existing_message) if self.spec. async: request_string = None if ref: request_string = 'Request issued for: [{{{}}}]'.format( yaml_command_schema.NAME_FORMAT_KEY) response = self._HandleAsync(args, ref, response, request_string=request_string) log.UpdatedResource(self._GetDisplayName(ref, args), kind=self.display_resource_type) return self._HandleResponse(response, args)
def testGetNestedFields(self, param_arr, mask_path, expected_string): args = parser_extensions.Namespace(_specified_args={ 'nodes': '--nodes', 'description': '--description' }) self._MakeSpec(param_arr) mask_string = update.GetMaskString(args, self.spec, mask_path) self.assertEqual(expected_string, mask_string)
def testGetLabels(self, param_arr, mask_path, expected_string): args = parser_extensions.Namespace(_specified_args={ 'update-labels': '--update-labels', 'set-labels': '--update-labels' }) self._MakeSpec(param_arr) mask_string = update.GetMaskString(args, self.spec, mask_path) self.assertEqual(expected_string, mask_string)
def testGetNegativeBooleanArgs(self, param_arr, mask_path, expected_string): args = parser_extensions.Namespace( _specified_args={ 'enable-feature': '--no-enable-feature', }) self._MakeSpec(param_arr) mask_string = update.GetMaskString(args, self.spec, mask_path) self.assertEqual(expected_string, mask_string)
def Run(self_, args): if self.spec.update: update_spec = self.spec.update if update_spec.mask_field: mask_string = update.GetMaskString(args, self.spec) self.spec.request.static_fields[ update_spec.mask_field] = mask_string ref, response = self._CommonRun(args) if self.spec.async: request_string = None if ref: request_string = 'Request issued for: [{{{}}}]'.format( yaml_command_schema.NAME_FORMAT_KEY) response = self._HandleAsync( args, ref, response, request_string=request_string) return self._HandleResponse(response, args)
def testGetArgGroup(self): arg1 = mock.MagicMock(arg_name='arg1', api_field='updateRequest.field1') arg2 = mock.MagicMock(arg_name='arg2', api_field='updateRequest.field2') arg3 = mock.MagicMock(arg_name='arg3', api_field='updateRequest.field3') group1 = mock.MagicMock(spec=yaml_command_schema.ArgumentGroup, arguments=[arg2, arg3]) self.spec.arguments.params = [arg1, group1] args = parser_extensions.Namespace(_specified_args={ 'arg1': '--arg1', 'arg2': '--arg2', 'arg3': '--arg3' }) mask_string = update.GetMaskString(args, self.spec, 'fieldMask') self.assertEqual('field1,field2,field3', mask_string)