Project

General

Profile

Actions

User story #12436

closed

Migrate deprecated generic methods to new ones

Added by Alexis Mousset over 6 years ago. Updated over 2 years ago.

Status:
Rejected
Priority:
N/A
Assignee:
-
Category:
Generic methods
Target version:
UX impact:
Suggestion strength:
User visibility:
Effort required:
Name check:
Fix check:
Regression:

Description

The following methods (in table below) are deprecated in 4.3.
Technique in the technique editor using them will be mark as deprecated, but there is no simple way to update the generic method: one would need to manually add the new method, copy/paste parameters, remove the old one - quite tedious.

We want to provide an as-automated-upgrade experience as possible for user on that subject.

So there is 4 mains step to provide that said experience:

1/ for just on method, find and automate the process that allows in Rudder (post-update) to change the method name from old to new and do what is needed in term of git commit, hooks and generation to have the technique and directives containing the method correctly updated.

2/ add all the simple cases in the automated process. These cases should be just rename, and should be easy to add in the previous process.

3/ add the special cases, one at a time. We don't know exactly to what extend we will be able to fully automate all of the special cases, so for them, process iteratively - each added method is a win for the user experience.

4/ for the remaining methods that can't be automated (if any), write the corresponding udgrade process.

Renamed methods (simple cases):

method replacement
directory_create directory_present
file_copy_from_local_source file_from_local_source
file_copy_from_local_source_recursion file_from_local_source_recursion
file_copy_from_local_source_with_check file_from_local_source_with_check
file_copy_from_remote_source file_from_remote_source
file_copy_from_remote_source_recursion file_from_remote_source_recursion
file_create file_present
file_create_symlink_enforce file_symlink_present_option
file_create_symlink file_symlink_present
file_create_symlink_force file_symlink_present_force
file_download file_from_http_server
file_enforce_content file_content
file_ensure_block_in_section file_block_present_in_section
file_ensure_block_present file_block_present
file_ensure_keys_values file_keys_values_present
file_ensure_key_value file_key_value_present
file_ensure_key_value_option file_key_value_present_option
file_ensure_key_value_parameter_in_list file_key_value_parameter_present_in_list
file_ensure_key_value_parameter_not_in_list file_key_value_parameter_absent_in_list
file_ensure_key_value_present_in_ini_section file_key_value_present_in_ini_section
file_ensure_line_present_in_ini_section file_line_present_in_ini_section
file_ensure_line_present_in_xml_tag file_line_present_in_xml_tag
file_ensure_lines_absent file_lines_absent
file_ensure_lines_present file_lines_present
file_remove file_absent
permissions_dirs_recurse permissions_dir_recursive
permissions_recurse permissions_recursive
_service_check_running_smf service_check_running
_service_check_running_src service_check_running
service_ensure_disabled_at_boot service_disabled_at_boot
service_ensure_running_path service_started_path
service_ensure_running service_started
service_ensure_started_at_boot service_enabled
service_ensure_stopped service_stopped

These are simply renamed, without changes in the arguments, we only need to be careful with the classes from these methods used as conditions.

Special cases (hard one):

method replacement comment
package_install package_present automatable but different implementation
package_install_version package_present automatable but different implementation
package_install_version_cmp package_present not all cases are covered (version comparison)
package_install_version_cmp_update package_present not all cases are covered (version comparison)
package_remove package_absent automatable but different implementation
service_restart_if service_restart (with a condition) automatable with specific logic
service_start service_started (or service_action) automatable but the user might has mistaken what this method actually does (start vs. started)
service_stop service_stopped (or service_action) automatable but the user might has mistaken what this method actually does (stop vs. stopped)
user_create user_* methods
file_from_template x Removing support for CFEngine templating
file_template_expand x Removing support for CFEngine templating

Related issues 1 (0 open1 closed)

Has duplicate Rudder - User story #11813: Help the user migrate generic methods in his techniquesRejectedActions
Actions #1

Updated by Alexis Mousset over 6 years ago

  • Description updated (diff)
Actions #2

Updated by Alexis Mousset over 6 years ago

  • Description updated (diff)
Actions #3

Updated by Alexis Mousset over 6 years ago

  • Description updated (diff)
Actions #4

Updated by Alexis Mousset over 6 years ago

  • Description updated (diff)
Actions #5

Updated by Alexis Mousset over 6 years ago

  • Description updated (diff)
Actions #6

Updated by Alexis Mousset over 6 years ago

  • Description updated (diff)
  • Target version set to 4.3.0
Actions #7

Updated by François ARMAND over 6 years ago

  • Description updated (diff)
Actions #8

Updated by François ARMAND over 6 years ago

  • Translation missing: en.field_tag_list set to Blocking 4.3

Perhaps we should have the step 1/ in 4.3 to be sure that their is nothing blocking for the other steps. What do you think Alexis/Benoit?

Actions #9

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.3.0 to 4.3.1
Actions #10

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.3.1 to 4.3.2
Actions #11

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.3.2 to 410
Actions #12

Updated by Benoît PECCATTE over 6 years ago

  • Target version changed from 410 to 4.3.2
Actions #13

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.3.2 to 4.3.3
Actions #14

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.3.3 to 4.3.4
Actions #15

Updated by Benoît PECCATTE over 6 years ago

  • Target version changed from 4.3.4 to 4.3.5
Actions #16

Updated by Vincent MEMBRÉ about 6 years ago

  • Target version changed from 4.3.5 to 4.3.6
Actions #17

Updated by Vincent MEMBRÉ about 6 years ago

  • Target version changed from 4.3.6 to 4.3.7
Actions #18

Updated by Vincent MEMBRÉ about 6 years ago

  • Target version changed from 4.3.7 to 4.3.8
Actions #19

Updated by Vincent MEMBRÉ almost 6 years ago

  • Target version changed from 4.3.8 to 4.3.9
Actions #20

Updated by Alexis Mousset almost 6 years ago

  • Target version changed from 4.3.9 to 4.3.10
Actions #21

Updated by François ARMAND almost 6 years ago

  • Target version changed from 4.3.10 to 4.3.11
Actions #22

Updated by Vincent MEMBRÉ over 5 years ago

  • Target version changed from 4.3.11 to 4.3.12
Actions #23

Updated by Benoît PECCATTE over 5 years ago

  • Target version changed from 4.3.12 to 5.0.10
Actions #24

Updated by Vincent MEMBRÉ over 5 years ago

  • Target version changed from 5.0.10 to 5.0.11
Actions #25

Updated by Vincent MEMBRÉ over 5 years ago

  • Target version changed from 5.0.11 to 5.0.12
Actions #26

Updated by Vincent MEMBRÉ over 5 years ago

  • Target version changed from 5.0.12 to 5.0.13
Actions #27

Updated by Vincent MEMBRÉ over 5 years ago

  • Target version changed from 5.0.13 to 5.0.14
Actions #28

Updated by Vincent MEMBRÉ about 5 years ago

  • Target version changed from 5.0.14 to 5.0.15
Actions #29

Updated by Vincent MEMBRÉ about 5 years ago

  • Target version changed from 5.0.15 to 5.0.16
Actions #30

Updated by Alexis Mousset almost 5 years ago

  • Target version changed from 5.0.16 to 5.0.17
Actions #31

Updated by Vincent MEMBRÉ over 4 years ago

  • Target version changed from 5.0.17 to 5.0.18
Actions #32

Updated by Benoît PECCATTE over 4 years ago

  • Target version changed from 5.0.18 to 6.2.0~beta1
Actions #33

Updated by Vincent MEMBRÉ about 4 years ago

  • Target version changed from 6.2.0~beta1 to 6.2.0~rc1
Actions #34

Updated by François ARMAND about 4 years ago

  • Target version changed from 6.2.0~rc1 to 7.0.0~beta1

This will be handled with rudder lang.

Actions #35

Updated by François ARMAND about 4 years ago

  • Has duplicate User story #11813: Help the user migrate generic methods in his techniques added
Actions #36

Updated by Alexis Mousset over 3 years ago

  • Translation missing: en.field_tag_list deleted (Blocking 4.3)
Actions #37

Updated by Alexis Mousset over 3 years ago

  • Status changed from New to Rejected
Actions #38

Updated by Alexis Mousset over 2 years ago

  • Project changed from 41 to Rudder
  • Category changed from Generic methods to Generic methods
Actions

Also available in: Atom PDF