User story #12436
Updated by François ARMAND over 6 years ago
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. 4.3: Renamed methods (simple cases): methods: |*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|