Project

General

Profile

« Previous | Next » 

Revision 48cf123c

Added by Nicolas CHARLES almost 6 years ago

Fixes #6343: When a technique reports several time the exact same text, there is only one report generated

View differences:

techniques/applications/aptPackageInstallation/4.0/aptPackageInstallation.st
pass3.debian::
"any" usebundle => rudder_common_report("packageInstallation", "result_repaired", "${apt_policy_instance_uuid[${index_aptpkg}]}", "Debian/Ubuntu packages", "${apt_package[${index_aptpkg}]}", "Performed repair action for deb package ${apt_package[${index_aptpkg}]} with policy: ${apt_action[${index_aptpkg}]}"),
"any" usebundle => rudder_common_report_index("packageInstallation", "result_repaired", "${apt_policy_instance_uuid[${index_aptpkg}]}", "Debian/Ubuntu packages", "${apt_package[${index_aptpkg}]}", "Performed repair action for deb package ${apt_package[${index_aptpkg}]} with policy: ${apt_action[${index_aptpkg}]}", "${index_aptpkg}"),
ifvarclass => canonify("debian_installed_${apt_package[${index_aptpkg}]}");
"any" usebundle => rudder_common_report("packageInstallation", "result_error", "${apt_policy_instance_uuid[${index_aptpkg}]}", "Debian/Ubuntu packages", "${apt_package[${index_aptpkg}]}", "Error taking action for deb package ${apt_package[${index_aptpkg}]} with policy: ${apt_action[${index_aptpkg}]}"),
"any" usebundle => rudder_common_report_index("packageInstallation", "result_error", "${apt_policy_instance_uuid[${index_aptpkg}]}", "Debian/Ubuntu packages", "${apt_package[${index_aptpkg}]}", "Error taking action for deb package ${apt_package[${index_aptpkg}]} with policy: ${apt_action[${index_aptpkg}]}", "${index_aptpkg}"),
ifvarclass => canonify("debian_install_failed_${apt_package[${index_aptpkg}]}");
"any" usebundle => rudder_common_report("packageInstallation", "result_success", "${apt_policy_instance_uuid[${index_aptpkg}]}", "Debian/Ubuntu packages", "${apt_package[${index_aptpkg}]}", "No action required for deb package ${apt_package[${index_aptpkg}]} with policy: ${apt_action[${index_aptpkg}]}"),
"any" usebundle => rudder_common_report_index("packageInstallation", "result_success", "${apt_policy_instance_uuid[${index_aptpkg}]}", "Debian/Ubuntu packages", "${apt_package[${index_aptpkg}]}", "No action required for deb package ${apt_package[${index_aptpkg}]} with policy: ${apt_action[${index_aptpkg}]}", "${index_aptpkg}"),
ifvarclass => canonify("debian_install_kept_${apt_package[${index_aptpkg}]}");
}
techniques/applications/packageManagement/1.1/packageManagement.st
methods:
# 3.2 does not support agents older than 2.11, hence CFEngine 3.6
pass2.cfengine_3_6::
"report_${index_pkg}" usebundle => rudder_common_report("packageManagement", "result_error", "${trackingkey[${index_pkg}]}", "Package", "${package[${index_pkg}]}", "${incompatible_error}");
"report_${index_pkg}" usebundle => rudder_common_report("packageManagement", "result_error", "${trackingkey[${index_pkg}]}", "Post-modification script", "${package[${index_pkg}]}", "${incompatible_error}");
"report_${index_pkg}" usebundle => rudder_common_report_index("packageManagement", "result_error", "${trackingkey[${index_pkg}]}", "Package", "${package[${index_pkg}]}", "${incompatible_error}", "${index_pkg}");
"report_${index_pkg}" usebundle => rudder_common_report_index("packageManagement", "result_error", "${trackingkey[${index_pkg}]}", "Post-modification script", "${package[${index_pkg}]}", "${incompatible_error}", "${index_pkg}");
# The pass2 is not strictly necessary but prevent future issues if the behavior of pre-evaluation changes (because the evaluation of vars + classes takes 2 passes)
pass2.!cfengine_3_6::
......
"report_${index_pkg}" usebundle => rudder_common_reports_generic_index("packageManagement", "${class_prefix_script[${index_pkg}]}", "${trackingkey[${index_pkg}]}", "Post-modification script", "${package[${index_pkg}]}", "Execution of the post-modification script", "${index_pkg}"),
ifvarclass => "${class_prefix_script[${index_pkg}]}_reached";
"report_${index_pkg}" usebundle => rudder_common_report("packageManagement", "result_na", "${trackingkey[${index_pkg}]}", "Post-modification script", "${package[${index_pkg}]}", "No post-modification script was set to run"),
"report_${index_pkg}" usebundle => rudder_common_report_index("packageManagement", "result_na", "${trackingkey[${index_pkg}]}", "Post-modification script", "${package[${index_pkg}]}", "No post-modification script was set to run", "${index_pkg}"),
ifvarclass => "!${class_prefix_script[${index_pkg}]}_reached";
}
techniques/applications/zypperPackageManagerRepositories/1.0/zypper-repositories-management.st
methods:
SuSE::
"repos_${zypper_index}" usebundle => rudder_common_reports_generic("Zypper Repositories Management", "zypper_repo_${zypper_index}", "${zypper_uuid[${zypper_index}]}", "Repositories", "${zypper_name[${zypper_index}]}", "Repository ${zypper_name[${zypper_index}]}");
"repos_${zypper_index}" usebundle => rudder_common_reports_generic_index("Zypper Repositories Management", "zypper_repo_${zypper_index}", "${zypper_uuid[${zypper_index}]}", "Repositories", "${zypper_name[${zypper_index}]}", "Repository ${zypper_name[${zypper_index}]}", "${zypper_index}");
# Clear package caches
"force_package_list_update" usebundle => file_remove("/var/rudder/cfengine-community/state/software_update_timestamp_zypper"),
......
ifvarclass => "zypper_repo_${zypper_index}_repaired";
!SuSE::
"repos_${zypper_index}" usebundle => rudder_common_report("Zypper Repositories Management", "result_na", "${zypper_uuid[${zypper_index}]}", "Repositories", "${zypper_name[${zypper_index}]}", "Repository ${zypper_name[${zypper_index}]} can only be added on SUSE/SLES systems");
"repos_${zypper_index}" usebundle => rudder_common_report_index("Zypper Repositories Management", "result_na", "${zypper_uuid[${zypper_index}]}", "Repositories", "${zypper_name[${zypper_index}]}", "Repository ${zypper_name[${zypper_index}]} can only be added on SUSE/SLES systems", "${zypper_index}");
# we must report on the deletion of other reports for all instances of the directives
SuSE.zypper_disable_other_repositories::
"deletion_${zypper_reports_value}" usebundle => rudder_common_reports_generic("Zypper Repositories Management", "zypper_other_repos_disabled", "${zypper_reports_value}", "Purge other repositories", "None", "Deletion of others repositories");
"deletion_${zypper_reports_value}" usebundle => rudder_common_reports_generic_index("Zypper Repositories Management", "zypper_other_repos_disabled", "${zypper_reports_value}", "Purge other repositories", "None", "Deletion of others repositories", "${zypper_index}");
# For deletion of others repos, if there is effectively no others files in the folders, then
# CFEngine will not define any classes at all: since there is nothing to promise on, there
techniques/fileConfiguration/fileManagement/4.0/manageFilesAndFolders.st
# Reporting for creation
## Reporting for directory creation
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The folder ${file[${index}][path]} already exists"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The folder ${file[${index}][path]} already exists", "${index}"),
ifvarclass => "manageFolders_creation_${index}_kept.!manageFolders_creation_${index}_modified.manageFilesAndFolders_isdir_${index}.!manageFilesAndFolders_isfile_${index}.!manageFilesAndFolders_islink_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The folder ${file[${index}][path]} was successfully created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The folder ${file[${index}][path]} was successfully created", "${index}"),
ifvarclass => "manageFolders_creation_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The folder ${file[${index}][path]} could not be created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The folder ${file[${index}][path]} could not be created", "${index}"),
ifvarclass => "manageFolders_creation_${index}_failed|manageFolders_creation_${index}_kept.(manageFilesAndFolders_isfile_${index}|manageFilesAndFolders_islink_${index})";
## Reporting for file creation
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} already exists"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} already exists", "${index}"),
ifvarclass => "manageFiles_${index}_kept.!manageFiles_${index}_modified.manageFilesAndFolders_isfile_${index}.!manageFilesAndFolders_isdir_${index}.!manageFilesAndFolders_islink_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} was successfully created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} was successfully created", "${index}"),
ifvarclass => "manageFiles_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} could not be created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} could not be created", "${index}"),
ifvarclass => "manageFiles_${index}_failed|manageFiles_${index}_kept.(manageFilesAndFolders_isdir_${index}|manageFilesAndFolders_islink_${index})";
## Reporting for local cp
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} already exists and is up to date"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} already exists and is up to date", "${index}"),
ifvarclass => "manageCp_${index}_kept.!manageCp_${index}_modified.manageFilesAndFolders_isfile_${index}.!manageFilesAndFolders_isdir_${index}.!manageFilesAndFolders_islink_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} was successfully copied from ${file[${index}][source]}"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} was successfully copied from ${file[${index}][source]}", "${index}"),
ifvarclass => "manageCp_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} could not be created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The file ${file[${index}][path]} could not be created", "${index}"),
ifvarclass => "manageCp_${index}_failed|manageCp_${index}_kept.(manageFilesAndFolders_isdir_${index}|manageFilesAndFolders_islink_${index})";
## Reporting for symlink creation
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The symlink ${file[${index}][path]} already exists"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The symlink ${file[${index}][path]} already exists", "${index}"),
ifvarclass => "manageSyms_${index}_kept.!manageSyms_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The symlink ${file[${index}][path]} was successfully created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The symlink ${file[${index}][path]} was successfully created", "${index}"),
ifvarclass => "manageSyms_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The symlink ${file[${index}][path]} could not be created"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "The symlink ${file[${index}][path]} could not be created", "${index}"),
ifvarclass => "manageSyms_${index}_failed";
## Reporting for no change
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "No file creation action specified for ${file[${index}][path]}"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "No file creation action specified for ${file[${index}][path]}", "${index}"),
ifvarclass => "manageFilesAndFolders_nocreate_${index}";
# Reporting for the permissions
## Success if not set
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The item ${file[${index}][path]} was not requested to have its permission enforced"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The item ${file[${index}][path]} was not requested to have its permission enforced", "${index}"),
ifvarclass => "!manageFilesAndFolders_check_permissions_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The permission of the item ${file[${index}][path]} were correct"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The permission of the item ${file[${index}][path]} were correct", "${index}"),
ifvarclass => "manageFilesAndFolders_perms_${index}_kept.!manageFilesAndFolders_perms_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The permissions of the item ${file[${index}][path]} have been corrected"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The permissions of the item ${file[${index}][path]} have been corrected", "${index}"),
ifvarclass => "manageFilesAndFolders_perms_${index}_modified.!manageFilesAndFolders_perms_${index}_failed";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The permissions of the item ${file[${index}][path]} could not be set"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The permissions of the item ${file[${index}][path]} could not be set", "${index}"),
ifvarclass => "manageFilesAndFolders_perms_${index}_failed";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "log_info", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The item ${file[${index}][path]} will be handled recursively"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "log_info", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The item ${file[${index}][path]} will be handled recursively", "${index}"),
ifvarclass => "manageFilesAndFolders_check_permissions_${index}.manageFilesAndFolders_createdir_${index}.manageFilesAndFolders_recursive_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "log_warn", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The item ${file[${index}][path]} will NOT be handled recursively, because it is either a file or a symlink"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "log_warn", "${file[${index}][uuid]}", "Permissions", "${file[${index}][path]}", "The item ${file[${index}][path]} will NOT be handled recursively, because it is either a file or a symlink", "${index}"),
ifvarclass => "manageFilesAndFolders_check_permissions_${index}.!manageFilesAndFolders_createdir_${index}.manageFilesAndFolders_recursive_${index}";
# Reporting for the deletion
## Report in the general component of the file
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "File cleaning was requested for ${file[${index}][path]}. Check specific reporting in the 'File cleaning options' component."),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File", "${file[${index}][path]}", "File cleaning was requested for ${file[${index}][path]}. Check specific reporting in the 'File cleaning options' component.", "${index}"),
ifvarclass => "manageFilesAndFolders_clean_${index}";
## Success if not set
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} was not requested to be deleted"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} was not requested to be deleted", "${index}"),
ifvarclass => "!manageFilesAndFolders_clean_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} was in conformity with the deletion policy"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} was in conformity with the deletion policy", "${index}"),
ifvarclass => "manageFilesAndFolders_clean_${index}.!manageFilesAndFolders_delete_${index}_modified.!manageFilesAndFolders_delete_${index}_failed";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} has been put in conformity with the deletion policy"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} has been put in conformity with the deletion policy", "${index}"),
ifvarclass => "manageFilesAndFolders_delete_${index}_modified";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} deletion policy could not be enforced"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "File cleaning options", "${file[${index}][path]}", "The item ${file[${index}][path]} deletion policy could not be enforced", "${index}"),
ifvarclass => "manageFilesAndFolders_delete_${index}_failed";
# Reporting for post-command execution
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "No post-execution hook set to run"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "No post-execution hook set to run", "${index}"),
ifvarclass => "!manageFilesAndFolders_post_hook_run_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "Post-execution hook did not need running"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_success", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "Post-execution hook did not need running", "${index}"),
ifvarclass => "manageFilesAndFolders_post_hook_run_${index}.!posthook_triggered_${index}";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "Post-execution hook successfully run"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_repaired", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "Post-execution hook successfully run", "${index}"),
ifvarclass => "manageFilesAndFolders_${index}_command_run_ok";
"any" usebundle => rudder_common_report("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "An error occured when running the post-execution hook"),
"any" usebundle => rudder_common_report_index("manageFilesAndFolders", "result_error", "${file[${index}][uuid]}", "Post-modification hook", "${file[${index}][path]}", "An error occured when running the post-execution hook", "${index}"),
ifvarclass => "manageFilesAndFolders_${index}_command_run_failed";
commands:
techniques/fileConfiguration/fileSecurity/filesPermissions/2.1/filesPermissions.st
"any" usebundle => check_permissions("${file[${filePerms}][0]}",
"${file[${filePerms}][1]}",
"${file[${filePerms}][2]}");
"${file[${filePerms}][2]}",
"${filePerms}");
}
bundle agent check_permissions(directiveId, fileName, action_parameters)
bundle agent check_permissions(directiveId, fileName, action_parameters, index)
{
......
methods:
pass3.is_symlink::
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Will not adjust permissions on ${fileName}, because it is a symlink");
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Will not adjust permissions on ${fileName}, because it is a symlink", "${index}");
pass3.!file_exists.ignore_absent::
"any" usebundle => rudder_common_report("FilesPermissions", "result_success", "${directiveId}", "File permissions", "${fileName}", "${fileName} does not exist but is ignored");
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_success", "${directiveId}", "File permissions", "${fileName}", "${fileName} does not exist but is ignored", "${index}");
pass3.!file_exists.!ignore_absent::
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "File or directory not found: ${fileName}");
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "File or directory not found: ${fileName}", "${index}");
pass3.user_absent.edit_owner::
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "The requested user (${user}) was not found on this machine: ${fileName}'s owner can't be set");
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "The requested user (${user}) was not found on this machine: ${fileName}'s owner can't be set", "${index}");
pass3.group_absent.edit_group::
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "The requested group (${group}) was not found on this machine: ${fileName}'s group can't be set");
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "The requested group (${group}) was not found on this machine: ${fileName}'s group can't be set", "${index}");
pass3.edit_recurse::
"any" usebundle => rudder_common_report("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Permissions will be applied recursively for ${fileName}");
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Permissions will be applied recursively for ${fileName}", "${index}");
pass3.(file_exists.can_edit_suid_sgid)::
# User
"any" usebundle => rudder_common_report("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Owner ${user} already matches current owner for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Owner ${user} already matches current owner for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_owner_ok.!${identifier}_owner_repaired";
"any" usebundle => rudder_common_report("FilesPermissions", "log_repaired", "${directiveId}", "File permissions", "${fileName}", "Owner reset to ${user} for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_repaired", "${directiveId}", "File permissions", "${fileName}", "Owner reset to ${user} for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_owner_repaired";
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Owner ${user} could not be set for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Owner ${user} could not be set for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_owner_not_repaired";
# Group
"any" usebundle => rudder_common_report("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Group ${group} already matches current group for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Group ${group} already matches current group for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_group_ok.!${identifier}_group_repaired";
"any" usebundle => rudder_common_report("FilesPermissions", "log_repaired", "${directiveId}", "File permissions", "${fileName}", "Group reset to ${group} for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_repaired", "${directiveId}", "File permissions", "${fileName}", "Group reset to ${group} for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_group_repaired";
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Group ${group} could not be set for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Group ${group} could not be set for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_group_not_repaired";
# Mode
"any" usebundle => rudder_common_report("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Mode ${extended_modes}${mode} already matches current mode for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_info", "${directiveId}", "File permissions", "${fileName}", "Mode ${extended_modes}${mode} already matches current mode for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_mode_ok.!${identifier}_mode_repaired";
"any" usebundle => rudder_common_report("FilesPermissions", "log_repaired", "${directiveId}", "File permissions", "${fileName}", "Mode reset to ${extended_modes}${mode} for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "log_repaired", "${directiveId}", "File permissions", "${fileName}", "Mode reset to ${extended_modes}${mode} for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_mode_repaired";
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Mode ${extended_modes}${mode} could not be set for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Mode ${extended_modes}${mode} could not be set for: ${fileName}", "${index}"),
ifvarclass => "${identifier}_mode_not_repaired";
# Final report
"any" usebundle => rudder_common_report("FilesPermissions", "result_success", "${directiveId}", "File permissions", "${fileName}", "Owner, group and permissions already correct for ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_success", "${directiveId}", "File permissions", "${fileName}", "Owner, group and permissions already correct for ${fileName}", "${index}"),
# Success if nothing in error AND nothing repaired
ifvarclass => "(!${identifier}_owner_not_repaired.!${identifier}_group_not_repaired.!${identifier}_mode_not_repaired).(!${identifier}_owner_repaired.!${identifier}_group_repaired.!${identifier}_mode_repaired)";
"any" usebundle => rudder_common_report("FilesPermissions", "result_repaired", "${directiveId}", "File permissions", "${fileName}", "Owner, group or permissions were fixed for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_repaired", "${directiveId}", "File permissions", "${fileName}", "Owner, group or permissions were fixed for: ${fileName}", "${index}"),
# Repaired if nothing in error AND something repaired
ifvarclass => "!${identifier}_owner_not_repaired.!${identifier}_group_not_repaired.!${identifier}_mode_not_repaired.(${identifier}_owner_repaired|${identifier}_group_repaired|${identifier}_mode_repaired)";
"any" usebundle => rudder_common_report("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Owner, group or permissions could not be set for: ${fileName}"),
"any" usebundle => rudder_common_report_index("FilesPermissions", "result_error", "${directiveId}", "File permissions", "${fileName}", "Owner, group or permissions could not be set for: ${fileName}", "${index}"),
# Error if something in error
ifvarclass => "${identifier}_owner_not_repaired|${identifier}_group_not_repaired|${identifier}_mode_not_repaired";
techniques/fileDistribution/copyGitFile/2.2/copyFileFromSharedFolder.st
"any" usebundle => file_check_symlink(dirname("${copyfile[${index}][destination]}"));
pass3.(!is_valid)::
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "There is no shared folder configured on the Rudder Server, so it's not possible to copy a file from it");
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "There is no shared folder configured on the Rudder Server, so it's not possible to copy a file from it", "${index}");
pass3.is_valid::
"any" usebundle => rudder_common_report("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The content of the file(s) (copied from ${copyfile[${index}][name]}) is valid"),
"any" usebundle => rudder_common_report_index("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The content of the file(s) (copied from ${copyfile[${index}][name]}) is valid", "${index}"),
ifvarclass => "copy_file_${index}_kept.!copy_file_${index}_repaired.!copy_file_${index}_error";
"any" usebundle => rudder_common_report("copyFile", "result_repaired", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The content or permissions of the file(s) has been repaired from source ${copyfile[${index}][name]}"),
"any" usebundle => rudder_common_report_index("copyFile", "result_repaired", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The content or permissions of the file(s) has been repaired from source ${copyfile[${index}][name]}", "${index}"),
ifvarclass => "copy_file_${index}_repaired.!copy_file_${index}_error";
# Error conditions
## The destination is not an existing directory or symbolic link
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The copy of the file ${copyfile[${index}][name]} failed: the destination (${copyfile[${index}][destination]}) is not stored in a valid directory"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The copy of the file ${copyfile[${index}][name]} failed: the destination (${copyfile[${index}][destination]}) is not stored in a valid directory", "${index}"),
ifvarclass => "copy_file_${index}_dest_notdir.file_check_symlink_${canon_dirname_${index}}_failed";
## File access denied
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The copy of the file failed: access to ${copyfile[${index}][name]} denied by the server"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The copy of the file failed: access to ${copyfile[${index}][name]} denied by the server", "${index}"),
ifvarclass => "copy_file_${index}_denied";
## User does not exist
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The permissions could not be applied on the file: user \"${copyfile[${index}][owner]}\" not found"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The permissions could not be applied on the file: user \"${copyfile[${index}][owner]}\" not found", "${index}"),
ifvarclass => "copy_file_${index}_user_absent";
## Group does not exist
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The permissions could not be applied on the file: group \"${copyfile[${index}][group]}\" not found"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The permissions could not be applied on the file: group \"${copyfile[${index}][group]}\" not found", "${index}"),
ifvarclass => "copy_file_${index}_group_absent";
## Generic failure
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The content or permissions of the file(s) could not have been repaired (file ${copyfile[${index}][name]} not found?)"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Copy file", "${copyfile[${index}][destination]}", "The content or permissions of the file(s) could not have been repaired (file ${copyfile[${index}][name]} not found?)", "${index}"),
ifvarclass => "copy_file_${index}_error.!copy_file_${index}_dest_notdir.!copy_file_${index}_denied.!copy_file_${index}_user_absent.!copy_file_${index}_group_absent";
#posthook reports
"any" usebundle => rudder_common_report("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "No post-hook command for copy of ${copyfile[${index}][name]} to ${copyfile[${index}][destination]} was defined, not executing"),
"any" usebundle => rudder_common_report_index("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "No post-hook command for copy of ${copyfile[${index}][name]} to ${copyfile[${index}][destination]} was defined, not executing", "${index}"),
ifvarclass => "!execute_command_${index}";
"any" usebundle => rudder_common_report("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "${copyfile[${index}][destination]} was already in the desired state, so no command was executed"),
"any" usebundle => rudder_common_report_index("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "${copyfile[${index}][destination]} was already in the desired state, so no command was executed", "${index}"),
ifvarclass => "execute_command_${index}.!copy_file_${index}_failed.!copy_file_${index}_repaired.copy_file_${index}_kept";
"any" usebundle => rudder_common_report("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "The post-hook command for copy of ${copyfile[${index}][name]} to ${copyfile[${index}][destination]} was correctly executed"),
"any" usebundle => rudder_common_report_index("copyFile", "result_success", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "The post-hook command for copy of ${copyfile[${index}][name]} to ${copyfile[${index}][destination]} was correctly executed", "${index}"),
ifvarclass => "execute_command_${index}.copyfile_posthook_${index}_command_run_ok";
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "The post-hook command for copy of ${copyfile[${index}][name]} to ${copyfile[${index}][destination]} couldn't be executed"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "The post-hook command for copy of ${copyfile[${index}][name]} to ${copyfile[${index}][destination]} couldn't be executed", "${index}"),
ifvarclass => "execute_command_${index}.copyfile_posthook_${index}_command_run_failed";
# A copy_from + perms could result in any combinaision of success/repaired/failed, so we have to cover the failed.modified which results in no copy
"any" usebundle => rudder_common_report("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "${copyfile[${index}][destination]} couldn't be copied from ${copyfile[${index}][name]}, so the post-hook command is not executed"),
"any" usebundle => rudder_common_report_index("copyFile", "result_error", "${copyfile[${index}][uuid]}", "Post-modification hook", "${copyfile[${index}][destination]}", "${copyfile[${index}][destination]} couldn't be copied from ${copyfile[${index}][name]}, so the post-hook command is not executed", "${index}"),
ifvarclass => "execute_command_${index}.copy_file_${index}_error";
commands:
techniques/jobScheduling/jobScheduler/2.0/job_scheduler.st
# Note: if the command has not been executed (ever or since > frequency), no report will be sent until the splayclass is defined
# This will cause Rudder to report an "Unknown" status, and is by design
"any" usebundle => rudder_common_report("jobScheduler", "result_success", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job returned a success return code after the last completed execution (${job_scheduler_command[${iterator}]})"),
"any" usebundle => rudder_common_report_index("jobScheduler", "result_success", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job returned a success return code after the last completed execution (${job_scheduler_command[${iterator}]})", "${iterator}"),
ifvarclass => "${job_scheduler_canon_name[${iterator}]}_ok";
"any" usebundle => rudder_common_report("jobScheduler", "result_repaired", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job returned a repaired return code on last completed execution (${job_scheduler_command[${iterator}]})"),
"any" usebundle => rudder_common_report_index("jobScheduler", "result_repaired", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job returned a repaired return code on last completed execution (${job_scheduler_command[${iterator}]})", "${iterator}"),
ifvarclass => "${job_scheduler_canon_name[${iterator}]}_repaired";
"any" usebundle => rudder_common_report("jobScheduler", "result_error", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job failed on last completed execution (${job_scheduler_command[${iterator}]})"),
"any" usebundle => rudder_common_report_index("jobScheduler", "result_error", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job failed on last completed execution (${job_scheduler_command[${iterator}]})", "${iterator}"),
ifvarclass => "${job_scheduler_canon_name[${iterator}]}_failed";
"any" usebundle => rudder_common_report("jobScheduler", "log_info", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job has been launched (${job_scheduler_command[${iterator}]}), result will be reported on next run"),
"any" usebundle => rudder_common_report_index("jobScheduler", "log_info", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "Job has been launched (${job_scheduler_command[${iterator}]}), result will be reported on next run", "${iterator}"),
ifvarclass => "job_scheduler_${all_hours}_${iterator}.Hr${all_hours}.job_scheduler_random_time.!job_scheduler_lock_${iterator}",
# we define here the persistent class, as the command exection is done on the last iteration
comment => "Define a persistent class to prevent multiple job executions",
classes => rudder_always_classes_persist("job_scheduler_lock_${iterator}", "5");
"any" usebundle => rudder_common_report("jobScheduler", "log_info", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "The command will be run at a random time after ${all_hours}:00 on this node (${job_scheduler_command[${iterator}]})"),
"any" usebundle => rudder_common_report_index("jobScheduler", "log_info", "${job_scheduler_uuids[${iterator}]}", "Job", "${job_scheduler_command[${iterator}]}", "The command will be run at a random time after ${all_hours}:00 on this node (${job_scheduler_command[${iterator}]})", "${iterator}"),
ifvarclass => "job_scheduler_${all_hours}_${iterator}";
commands:
techniques/systemSettings/misc/genericCommandVariableDefinition/3.0/genericCommandVariableDefinition.st
pass3.cfengine_3::
"any" usebundle => rudder_common_report("genericCommandVariableDefinition", "result_success", "${generic_command_name_uuid[${generic_cmd_variable_name_index}]}", "Variable command definition", "${generic_cmd_variable_name[${generic_cmd_variable_name_index}]}", "A generic command variable definition is set for variable ${generic_cmd_variable_name[${generic_cmd_variable_name_index}]}");
"any" usebundle => rudder_common_report_index("genericCommandVariableDefinition", "result_success", "${generic_command_name_uuid[${generic_cmd_variable_name_index}]}", "Variable command definition", "${generic_cmd_variable_name[${generic_cmd_variable_name_index}]}", "A generic command variable definition is set for variable ${generic_cmd_variable_name[${generic_cmd_variable_name_index}]}", "${generic_cmd_variable_name_index}");
}
techniques/systemSettings/misc/genericVariableDefinition/2.0/genericVariableDefinition.st
pass3.((linux|!linux))::
"any" usebundle => rudder_common_report("genericVariableDefinition", "result_success", "${generic_name_uuid[${generic_variable_name_index}]}", "Variable definition", "${generic_variable_name[${generic_variable_name_index}]}", "A generic variable definition is set for variable ${generic_variable_name[${generic_variable_name_index}]}");
"any" usebundle => rudder_common_report_index("genericVariableDefinition", "result_success", "${generic_name_uuid[${generic_variable_name_index}]}", "Variable definition", "${generic_variable_name[${generic_variable_name_index}]}", "A generic variable definition is set for variable ${generic_variable_name[${generic_variable_name_index}]}", "${generic_variable_name_index}");
}
techniques/systemSettings/misc/partitionSizeMonitoring/3.0/monitorPartitionSize.st
# Partition status reporting
# Success
"any" usebundle => rudder_common_report("monitorPartitionSize", "result_success", "${partition[${index}][uuid]}", "Partition", "${partition[${index}][path]}", "The partition ${partition[${index}][path]} has enough free space"),
"any" usebundle => rudder_common_report_index("monitorPartitionSize", "result_success", "${partition[${index}][uuid]}", "Partition", "${partition[${index}][path]}", "The partition ${partition[${index}][path]} has enough free space", "${index}"),
ifvarclass => "!monitorPartitionSize_partition_${index}_full";
# Error
"any" usebundle => rudder_common_report("monitorPartitionSize", "result_error", "${partition[${index}][uuid]}", "Partition", "${partition[${index}][path]}", "The partition ${partition[${index}][path]} has not enough free space"),
"any" usebundle => rudder_common_report_index("monitorPartitionSize", "result_error", "${partition[${index}][uuid]}", "Partition", "${partition[${index}][path]}", "The partition ${partition[${index}][path]} has not enough free space", "${index}"),
ifvarclass => "monitorPartitionSize_partition_${index}_full";
# Repaired command execution reporting
# Success not set
"any" usebundle => rudder_common_report("monitorPartitionSize", "result_success", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command execution was not set"),
"any" usebundle => rudder_common_report_index("monitorPartitionSize", "result_success", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command execution was not set", "${index}"),
ifvarclass => "!monitorPartitionSize_repaired_cmd_run_${index}";
# Success not needed
"any" usebundle => rudder_common_report("monitorPartitionSize", "result_success", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command execution was not needed"),
"any" usebundle => rudder_common_report_index("monitorPartitionSize", "result_success", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command execution was not needed", "${index}"),
ifvarclass => "monitorPartitionSize_repaired_cmd_run_${index}.!monitorPartitionSize_partition_${index}_full";
# Repaired
"any" usebundle => rudder_common_report("monitorPartitionSize", "result_repaired", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command executed - ${partition[${index}][repaired_cmd]}"),
"any" usebundle => rudder_common_report_index("monitorPartitionSize", "result_repaired", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command executed - ${partition[${index}][repaired_cmd]}", "${index}"),
ifvarclass => "monitorPartitionSize_repaired_cmd_run_${index}.monitorPartitionSize_repaired_cmd_${index}_repaired";
# Error
"any" usebundle => rudder_common_report("monitorPartitionSize", "result_error", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command failed to execute"),
"any" usebundle => rudder_common_report_index("monitorPartitionSize", "result_error", "${partition[${index}][uuid]}", "Command execution on threshold", "${partition[${index}][path]}", "Under threshold command failed to execute", "${index}"),
ifvarclass => "monitorPartitionSize_repaired_cmd_run_${index}.monitorPartitionSize_repaired_cmd_${index}_error";
commands:
techniques/systemSettings/misc/variableFromJsonFile/2.0/variableFromJsonFile.st
#Reporting
#File copy
#Remote
"any" usebundle => rudder_common_reports_generic("variableFromJsonFile", "file_copy_from_remote_source_${directory_agent_canon}_${json_file_canon[${files_index}]}", "${trackingkey[${files_index}]}", "File copy", "${json_file[${files_index}]}", "Copy of ${directory_server}/${json_file[${files_index}]} from the policy server to ${directory_agent}"),
"any" usebundle => rudder_common_report_indexs_generic("variableFromJsonFile", "file_copy_from_remote_source_${directory_agent_canon}_${json_file_canon[${files_index}]}", "${trackingkey[${files_index}]}", "File copy", "${json_file[${files_index}]}", "Copy of ${directory_server}/${json_file[${files_index}]} from the policy server to ${directory_agent}", "${files_index}"),
ifvarclass => "not_empty_input_${files_index}.remote_source_${files_index}";
#Local
"any" usebundle => rudder_common_reports_generic("variableFromJsonFile", "file_copy_from_local_source_${directory_agent_canon}_${json_file_canon[${files_index}]}", "${trackingkey[${files_index}]}", "File copy", "${json_file[${files_index}]}", "Copy of ${json_file[${files_index}]} to ${directory_agent}"),
"any" usebundle => rudder_common_report_indexs_generic("variableFromJsonFile", "file_copy_from_local_source_${directory_agent_canon}_${json_file_canon[${files_index}]}", "${trackingkey[${files_index}]}", "File copy", "${json_file[${files_index}]}", "Copy of ${json_file[${files_index}]} to ${directory_agent}", "${files_index}"),
ifvarclass => "not_empty_input_${files_index}.local_source_${files_index}";
#Variable definition
"any" usebundle => rudder_common_reports_generic("variableFromJsonFile", "variable_dict_from_file_${json_file_canon[${files_index}]}", "${trackingkey[${files_index}]}", "Overriding file", "${json_file[${files_index}]}", "${json_file[${files_index}]} loading"),
"any" usebundle => rudder_common_report_indexs_generic("variableFromJsonFile", "variable_dict_from_file_${json_file_canon[${files_index}]}", "${trackingkey[${files_index}]}", "Overriding file", "${json_file[${files_index}]}", "${json_file[${files_index}]} loading", "${files_index}"),
ifvarclass => "not_empty_input_${files_index}";
#Not applicable
pass3::
"any" usebundle => rudder_common_report("variableFromJsonFile", "result_na", "${trackingkey[${files_index}]}", "File copy", "${json_file[${files_index}]}", "No merging files precised"),
"any" usebundle => rudder_common_report_index("variableFromJsonFile", "result_na", "${trackingkey[${files_index}]}", "File copy", "${json_file[${files_index}]}", "No merging files precised", "${files_index}"),
ifvarclass => "!not_empty_input_${files_index}";
"any" usebundle => rudder_common_report("variableFromJsonFile", "result_na", "${trackingkey[${files_index}]}", "Overriding file", "${json_file[${files_index}]}", "No merging files precised"),
"any" usebundle => rudder_common_report_index("variableFromJsonFile", "result_na", "${trackingkey[${files_index}]}", "Overriding file", "${json_file[${files_index}]}", "No merging files precised", "${files_index}"),
ifvarclass => "!not_empty_input_${files_index}";
"any" usebundle => rudder_common_report("variableFromJsonFile", "result_na", "${trackingkey[${files_index}]}", "Variable definition", "${json_file[${files_index}]}", "No merging files precised"),
"any" usebundle => rudder_common_report_index("variableFromJsonFile", "result_na", "${trackingkey[${files_index}]}", "Variable definition", "${json_file[${files_index}]}", "No merging files precised", "${files_index}"),
ifvarclass => "!not_empty_input_${files_index}";
}
techniques/systemSettings/networking/routingManagement/2.0/routingManagement.st
pass3.checkroute_present::
"any" usebundle => rudder_common_report("routingManagement", "result_success", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} found, as expected."),
"any" usebundle => rudder_common_report_index("routingManagement", "result_success", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} found, as expected.", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_found");
# This should be a log_warn, when it's supported
"any" usebundle => rudder_common_report("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} found, and policy is: Check absence!"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} found, and policy is: Check absence!", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_found_warn");
"any" usebundle => rudder_common_report("routingManagement", "result_success", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} not found, as expected"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_success", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} not found, as expected", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_notfound");
# This should be a log_warn, when it's supported
"any" usebundle => rudder_common_report("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} not found , and policy is: Check presence!"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} not found , and policy is: Check presence!", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_notfound_warn");
"any" usebundle => rudder_common_report("routingManagement", "log_info", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} not found, attempting to add route..."),
"any" usebundle => rudder_common_report_index("routingManagement", "log_info", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} not found, attempting to add route...", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_add");
"any" usebundle => rudder_common_report("routingManagement", "result_repaired", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} added successfully!"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_repaired", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} added successfully!", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_added");
"any" usebundle => rudder_common_report("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Could not add route ${displayName[${routing_index}]}!"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Could not add route ${displayName[${routing_index}]}!", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_add_failed");
"any" usebundle => rudder_common_report("routingManagement", "result_repaired", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} deleted successfully!"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_repaired", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Route ${displayName[${routing_index}]} deleted successfully!", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_deleted");
"any" usebundle => rudder_common_report("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Could not delete route ${displayName[${routing_index}]}!"),
"any" usebundle => rudder_common_report_index("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Could not delete route ${displayName[${routing_index}]}!", "${routing_index}"),
ifvarclass => canonify("route_${routing_index}_delete_failed");
pass3.(!checkroute_present)::
"any" usebundle => rudder_common_report("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Could not add route ${displayName[${routing_index}]}: helper program checkroute.pl not found!");
"any" usebundle => rudder_common_report_index("routingManagement", "result_error", "${routing_directive_id[${routing_index}]}", "IPv4 routing parameters", "${route[${routing_index}]}", "Could not add route ${displayName[${routing_index}]}: helper program checkroute.pl not found!", "${routing_index}");
commands:
techniques/systemSettings/process/servicesManagement/3.0/servicesManagement.st
pass3::
"any" usebundle => rudder_common_report("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]} didn't need to have its process checked"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]} didn't need to have its process checked", "${index}"),
ifvarclass => "!start_process_${index}.!stop_process_${index}";
# On windows, we don't use processes promises type to check if process are running, as we rely directly on services
!windows.pass3::
# Error when a state (start, stop, etc.) is selected but no process name is given
"any" usebundle => rudder_common_report("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Cannot check the status of ${service[${index}][name]}: the process name is not filed"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Cannot check the status of ${service[${index}][name]}: the process name is not filed", "${index}"),
ifvarclass => "!defined_process_name_${index}.(start_process_${index}|stop_process_${index})";
# Process start/restart
"any" usebundle => rudder_common_report("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} is running"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} is running", "${index}"),
ifvarclass => "service_${index}_running.!service_${index}_anomaly.!process_${index}_restart.start_process_${index}";
"any" usebundle => rudder_common_report("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} was not running and has been restarted"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} was not running and has been restarted", "${index}"),
ifvarclass => "process_${index}_restart.start_process_${index}.service_start_${service[${index}][canon_name]}_repaired";
"any" usebundle => rudder_common_report("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]}: the process couldn't be started"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]}: the process couldn't be started", "${index}"),
ifvarclass => "service_start_${service[${index}][canon_name]}_not_ok";
# Process stop
# For graceful stop we use the ncf service_stop, for less graceful stopping we use unix signals and cf-engine processes promises
"any" usebundle => rudder_common_report("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} is not running"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} is not running", "${index}"),
ifvarclass => "stop_process_${index}.process_${index}_restart.graceful_stop_process_${index}";
"any" usebundle => rudder_common_report("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} was stopped"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} was stopped", "${index}"),
ifvarclass => "stop_process_${index}.!process_${index}_restart.service_stop_${service[${index}][canon_name]}_repaired.graceful_stop_process_${index}";
"any" usebundle => rudder_common_report("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]}: the process could't be stopped"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]}: the process could't be stopped", "${index}"),
ifvarclass => "stop_process_${index}.!process_${index}_restart.service_stop_${service[${index}][canon_name]}_not_ok";
"any" usebundle => rudder_common_report("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} is not running"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} is not running", "${index}"),
ifvarclass => "stop_process_${index}.service_${index}_already_stopped.!service_${index}_stopped.!graceful_stop_process_${index}";
"any" usebundle => rudder_common_report("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} was stopped"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "Process of ${service[${index}][name]} was stopped", "${index}"),
ifvarclass => "stop_process_${index}.service_${index}_stopped.!graceful_stop_process_${index}";
"any" usebundle => rudder_common_report("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]}: the process count could't be stopped"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Process", "${service[${index}][name]}", "${service[${index}][name]}: the process count could't be stopped", "${index}"),
ifvarclass => "stop_process_${index}.service_${index}_error.!graceful_stop_process_${index}";
# on windows, the generic methods are directly defining the correct classes, without relying on the process check before hand
......
ifvarclass => "stop_process_${index}";
pass3::
"any" usebundle => rudder_common_report("ServicesManagement", "result_na", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range is not to be checked for service ${service[${index}][name]}"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_na", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range is not to be checked for service ${service[${index}][name]}", "${index}"),
ifvarclass => "!check_process_range_${index}";
# The number of process range is not checked on windows
!windows.pass3::
"any" usebundle => rudder_common_report("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} cannot to be checked, for the process name is not set"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} cannot to be checked, for the process name is not set", "${index}"),
ifvarclass => "check_process_range_${index}.!defined_process_name_${index}";
"any" usebundle => rudder_common_report("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} is correct"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_success", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} is correct", "${index}"),
ifvarclass => "check_process_range_${index}.defined_process_name_${index}.!${service[${index}][canon_name]}_out_of_range";
"any" usebundle => rudder_common_report("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} was not correct, but was repaired"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_repaired", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} was not correct, but was repaired", "${index}"),
ifvarclass => "check_process_range_${index}.defined_process_name_${index}.${service[${index}][canon_name]}_out_of_range.service_restart_${service[${index}][canon_name]}_repaired";
"any" usebundle => rudder_common_report("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} was not correct, and could not be repaired"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_error", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "The process range for service ${service[${index}][name]} was not correct, and could not be repaired", "${index}"),
ifvarclass => "check_process_range_${index}.defined_process_name_${index}.${service[${index}][canon_name]}_out_of_range.service_restart_${service[${index}][canon_name]}_not_ok";
windows.pass3::
"any" usebundle => rudder_common_report("ServicesManagement", "result_na", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "Checking the number of processes within a range is not implemened on Windows"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_na", "${service[${index}][uuid]}", "Advanced options", "${service[${index}][name]}", "Checking the number of processes within a range is not implemened on Windows", "${index}"),
ifvarclass => "check_process_range_${index}";
# Service boot starting parameters
pass3::
"any" usebundle => rudder_common_report("ServicesManagement", "result_na", "${service[${index}][uuid]}", "Service starting parameters", "${service[${index}][name]}", "${service[${index}][name]} starting parameters check not required"),
"any" usebundle => rudder_common_report_index("ServicesManagement", "result_na", "${service[${index}][uuid]}", "Service starting parameters", "${service[${index}][name]}", "${service[${index}][name]} starting parameters check not required", "${index}"),
ifvarclass => "!bootstart_process_${index}.!bootstart_prevent_process_${index}";
"any" usebundle => rudder_common_reports_generic("ServicesManagement", "service_ensure_started_at_boot_${service[${index}][canon_name]}", "${service[${index}][uuid]}", "Service starting parameters", "${service[${index}][name]}", "The ${service[${index}][name]} boot starting configuration"),
"any" usebundle => rudder_common_report_indexs_generic("ServicesManagement", "service_ensure_started_at_boot_${service[${index}][canon_name]}", "${service[${index}][uuid]}", "Service starting parameters", "${service[${index}][name]}", "The ${service[${index}][name]} boot starting configuration", "${index}"),
ifvarclass => "bootstart_process_${index}";
"any" usebundle => rudder_common_reports_generic("ServicesManagement", "service_ensure_disabled_at_boot_${service[${index}][canon_name]}", "${service[${index}][uuid]}", "Service starting parameters", "${service[${index}][name]}", "The ${service[${index}][name]} boot starting configuration"),
"any" usebundle => rudder_common_report_indexs_generic("ServicesManagement", "service_ensure_disabled_at_boot_${service[${index}][canon_name]}", "${service[${index}][uuid]}", "Service starting parameters", "${service[${index}][name]}", "The ${service[${index}][name]} boot starting configuration", "${index}"),
ifvarclass => "bootstart_prevent_process_${index}";
techniques/systemSettings/security/fileAlterationMonitoring/2.1/fileAlterationMonitoring.st
pass3.cfengine::
"any" usebundle => rudder_common_report("fileAlterationMonitoring", "result_success", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The content of ${monitor_entity[${index}][name]} is consistent"),
"any" usebundle => rudder_common_report_index("fileAlterationMonitoring", "result_success", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The content of ${monitor_entity[${index}][name]} is consistent", "${index}"),
ifvarclass => "${index}_kept.!${index}_changed.!${index}_error";
"any" usebundle => rudder_common_report("fileAlterationMonitoring", "result_repaired", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The content of ${monitor_entity[${index}][name]} is INCONSISTENT: Either the file has changed or one of the elements in the directory has"),
"any" usebundle => rudder_common_report_index("fileAlterationMonitoring", "result_repaired", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The content of ${monitor_entity[${index}][name]} is INCONSISTENT: Either the file has changed or one of the elements in the directory has", "${index}"),
ifvarclass => "${index}_changed.!${index}_error";
"any" usebundle => rudder_common_report("fileAlterationMonitoring", "result_error", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The content of ${monitor_entity[${index}][name]} could not be checked"),
"any" usebundle => rudder_common_report_index("fileAlterationMonitoring", "result_error", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The content of ${monitor_entity[${index}][name]} could not be checked", "${index}"),
ifvarclass => "${index}_error";
"any" usebundle => rudder_common_report("fileAlterationMonitoring", "result_error", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The entity ${monitor_entity[${index}][name]} does not exist: alteration monitoring impossible"),
"any" usebundle => rudder_common_report_index("fileAlterationMonitoring", "result_error", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The entity ${monitor_entity[${index}][name]} does not exist: alteration monitoring impossible", "${index}"),
ifvarclass => "(!isdir_${index}.!isfile_${index}).nofile_reports_error_${index}";
"any" usebundle => rudder_common_report("fileAlterationMonitoring", "result_na", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The entity ${monitor_entity[${index}][name]} does not exist: alteration monitoring not applicable"),
"any" usebundle => rudder_common_report_index("fileAlterationMonitoring", "result_na", "${monitor_entity[${index}][uuid]}", "File or directory to monitor", "${monitor_entity[${index}][name]}", "The entity ${monitor_entity[${index}][name]} does not exist: alteration monitoring not applicable", "${index}"),
ifvarclass => "(!isdir_${index}.!isfile_${index}).!nofile_reports_error_${index}";
techniques/systemSettings/systemManagement/cronManagement/3.1/cronConfiguration.st
# Reports about the creation of the cron entries
"any" usebundle => rudder_common_report("cronConfiguration", "result_success", "${cron_uuid[${cron_index}]}", "Cron entry", "${cron_name[${cron_index}]}", "The cron file ${cron_name[${cron_index}]} was present. Skipping..."),
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_success", "${cron_uuid[${cron_index}]}", "Cron entry", "${cron_name[${cron_index}]}", "The cron file ${cron_name[${cron_index}]} was present. Skipping...", "${cron_index}"),
ifvarclass => "cron_file_${cron_index}_kept.!cron_file_${cron_index}_edited";
"any" usebundle => rudder_common_report("cronConfiguration", "result_repaired", "${cron_uuid[${cron_index}]}", "Cron entry", "${cron_name[${cron_index}]}", "The cron file ${cron_name[${cron_index}]} was created successfully"),
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_repaired", "${cron_uuid[${cron_index}]}", "Cron entry", "${cron_name[${cron_index}]}", "The cron file ${cron_name[${cron_index}]} was created successfully", "${cron_index}"),
ifvarclass => "cron_file_${cron_index}_edited";
"any" usebundle => rudder_common_report("cronConfiguration", "result_error", "${cron_uuid[${cron_index}]}", "Cron entry", "${cron_name[${cron_index}]}", "Could not create the cron file ${cron_name[${cron_index}]}"),
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_error", "${cron_uuid[${cron_index}]}", "Cron entry", "${cron_name[${cron_index}]}", "Could not create the cron file ${cron_name[${cron_index}]}", "${cron_index}"),
ifvarclass => "cron_file_${cron_index}_failed";
# Reports about the cron process presence
pass3.!cron_restart::
"any" usebundle => rudder_common_report("cronConfiguration", "result_success", "${cron_uuid[${cron_index}]}", "Cron process", "None", "The cron process is running. Skipping...");
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_success", "${cron_uuid[${cron_index}]}", "Cron process", "None", "The cron process is running. Skipping...", "${cron_index}");
pass3.cron_restart.(service_restart_cron_ok|service_restart_crond_ok)::
"any" usebundle => rudder_common_report("cronConfiguration", "result_repaired", "${cron_uuid[${cron_index}]}", "Cron process", "None", "The cron process has been restarted");
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_repaired", "${cron_uuid[${cron_index}]}", "Cron process", "None", "The cron process has been restarted", "${cron_index}");
pass3.cron_restart.(service_restart_cron_not_ok|service_restart_crond_not_ok)::
"any" usebundle => rudder_common_report("cronConfiguration", "result_success", "${cron_uuid[${cron_index}]}", "Cron process", "None", "Could not restart the cron process!");
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_success", "${cron_uuid[${cron_index}]}", "Cron process", "None", "Could not restart the cron process!", "${cron_index}");
pass3.(!windows.cron_absent)::
"any" usebundle => rudder_common_report("cronConfiguration", "log_warn", "${cron_uuid[${cron_index}]}", "cronConfiguration", "None", "The crontab is absent");
"any" usebundle => rudder_common_report_index("cronConfiguration", "log_warn", "${cron_uuid[${cron_index}]}", "cronConfiguration", "None", "The crontab is absent", "${cron_index}");
pass3.windows::
"any" usebundle => rudder_common_report("cronConfiguration", "result_error", "${cron_uuid[${cron_index}]}", "cronConfiguration", "None", "This is a Windows machine. This Technique currently incompatible with it");
"any" usebundle => rudder_common_report_index("cronConfiguration", "result_error", "${cron_uuid[${cron_index}]}", "cronConfiguration", "None", "This is a Windows machine. This Technique currently incompatible with it", "${cron_index}");
processes:
"cron"
techniques/systemSettings/userManagement/userManagement/7.2/userManagement.st
# Add user
## Does exist (Success), and gid not requested to be changed
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.!usermanagement_login_add_${usergroup_user_index}_repaired.(usermanagement_user_nameempty_${usergroup_user_index}|usermanagement_fullname_edit_${usergroup_user_index}_kept).!usermanagement_force_user_group_${usergroup_user_index}";
## Does exist (Success), and gid already correct
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.!usermanagement_login_add_${usergroup_user_index}_repaired.(usermanagement_user_nameempty_${usergroup_user_index}|usermanagement_fullname_edit_${usergroup_user_index}_kept).(usermanagement_force_user_group_defined_${usergroup_user_index}.!usermanagement_user_current_group_is_invalid_${usergroup_user_index})";
## Does exist (Success), with a wrong gid
"any" usebundle => rudder_common_report("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system, but had the wrong gid"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system, but had the wrong gid", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.!usermanagement_login_add_${usergroup_user_index}_repaired.(usermanagement_user_nameempty_${usergroup_user_index}|usermanagement_fullname_edit_${usergroup_user_index}_kept).(usermanagement_force_user_group_defined_${usergroup_user_index}.usermanagement_user_gid_change_${usergroup_user_index}_repaired)";
## Seems to exist with a wrong Full Name (Repaired)
"any" usebundle => rudder_common_report("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) had a wrong fullname"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) had a wrong fullname", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.!usermanagement_user_nameempty_${usergroup_user_index}.(usermanagement_fullname_edit_${usergroup_user_index}_repaired|usermanagement_fullname_edit_${usergroup_user_index}_error)";
## Added (Repaired)
"any" usebundle => rudder_common_report("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) has been added to the system"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) has been added to the system", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.usermanagement_login_add_${usergroup_user_index}_repaired";
## Error
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system", "${usergroup_user_index}"),
ifvarclass => "!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.usermanagement_login_add_${usergroup_user_index}_error";
## Could not be added, for the default path was not selected, but the custom one was not defined
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system because the default home directory was not selected, but the custom path was not specified"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system because the default home directory was not selected, but the custom path was not specified", "${usergroup_user_index}"),
ifvarclass => "!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.usermanagement_user_pershome_${usergroup_user_index}.!usermanagement_user_custom_home_defined_${usergroup_user_index}";
## Could not be added, as a custom group was asked for and did not exist on the system
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system because the custom group \"${usergroup_user_groupname[${usergroup_user_index}]}\" does not exist"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system because the custom group \"${usergroup_user_groupname[${usergroup_user_index}]}\" does not exist", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_update_${usergroup_user_index}.!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_group_definition_error_${usergroup_user_index}";
## Could not be added, as a custom uid was asked for and did exist on the system
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system because the custom uid \"${usergroup_user_uid[${usergroup_user_index}]}\" already exists"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be added to the system because the custom uid \"${usergroup_user_uid[${usergroup_user_index}]}\" already exists", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_update_${usergroup_user_index}.!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_uid_definition_error_${usergroup_user_index}";
## Could not set the gid, as it was requested, but with no gid provided
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not have its gid updated because it was not provided"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not have its gid updated because it was not provided", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.usermanagement_force_user_group_${usergroup_user_index}.usermanagement_user_groupempty_${usergroup_user_index}";
## Does exist with a wrong gid that could not be repaired
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system, but with wrong gid that cannot be fixed"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is already present on the system, but with wrong gid that cannot be fixed", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index}.!usermanagement_login_add_${usergroup_user_index}_repaired.(usermanagement_user_nameempty_${usergroup_user_index}|usermanagement_fullname_edit_${usergroup_user_index}_kept).(usermanagement_force_user_group_defined_${usergroup_user_index}.usermanagement_user_gid_change_${usergroup_user_index}_error)";
# Remove user
## Does not exist (Success)
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) does not exist, as required"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) does not exist, as required", "${usergroup_user_index}"),
ifvarclass => "!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_remove_${usergroup_user_index}";
## Removed (Repaired)
"any" usebundle => rudder_common_report("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) has been removed from the system"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) has been removed from the system", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_remove_${usergroup_user_index}.usermanagement_login_remove_${usergroup_user_index}_repaired";
## Error
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be removed from the system"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) could not be removed from the system", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_remove_${usergroup_user_index}.usermanagement_login_remove_${usergroup_user_index}_error";
# Check user not exists
## Does not exist (Success)
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is not present on the system, which is in accordance with the non presence policy"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is not present on the system, which is in accordance with the non presence policy", "${usergroup_user_index}"),
ifvarclass => "!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_checkabs_${usergroup_user_index}";
## Does exist (Error)
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is present on the system, which violates the non presence policy"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is present on the system, which violates the non presence policy", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_checkabs_${usergroup_user_index}";
# Check user exists
## Does exist (Success)
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is present on the system, which is in conformance with the presence policy"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is present on the system, which is in conformance with the presence policy", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_checkpres_${usergroup_user_index}.(usermanagement_user_nameempty_${usergroup_user_index}|usermanagement_fullname_edit_${usergroup_user_index}_kept)";
## Seems to exist with a wrong Full Name (Error)
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is present on the system, but does not have the right fullname"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is present on the system, but does not have the right fullname", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_checkpres_${usergroup_user_index}.!usermanagement_user_nameempty_${usergroup_user_index}.(usermanagement_fullname_edit_${usergroup_user_index}_repaired|usermanagement_fullname_edit_${usergroup_user_index}_error)";
## Does not exist (Error)
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is not present on the system, which violates the presence policy"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Users", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) is not present on the system, which violates the presence policy", "${usergroup_user_index}"),
ifvarclass => "!usermanagement_user_exists_${usergroup_user_index}.usermanagement_user_checkpres_${usergroup_user_index}";
# Password handling
"any" usebundle => rudder_common_reports_generic_index("userGroupManagement", "usermanagement_user_password_${usergroup_user_index}", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) password", "${usergroup_user_index}"),
"any" usebundle => rudder_common_report_indexs_generic_index("userGroupManagement", "usermanagement_user_password_${usergroup_user_index}", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) password", "${usergroup_user_index}", "${usergroup_user_index}"),
ifvarclass => "!usermanagement_user_checkpres_${usergroup_user_index}";
# Password handling in check only
"any" usebundle => rudder_common_reports_generic_index("userGroupManagement", "usermanagement_user_password_${usergroup_user_index}", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The check of password for user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) ", "${usergroup_user_index}"),
"any" usebundle => rudder_common_report_indexs_generic_index("userGroupManagement", "usermanagement_user_password_${usergroup_user_index}", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The check of password for user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) ", "${usergroup_user_index}", "${usergroup_user_index}"),
ifvarclass => "usermanagement_user_checkpres_${usergroup_user_index}";
## Change not needed (Success)
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) password change is not required"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) password change is not required", "${usergroup_user_index}"),
ifvarclass => "((!usermanagement_user_password_${usergroup_user_index}_kept.!usermanagement_user_password_${usergroup_user_index}_repaired.!usermanagement_user_password_${usergroup_user_index}_error).((usermanagement_user_pwoneshot_${usergroup_user_index}.usermanagement_user_exists_${usergroup_user_index})|usermanagement_user_pwempty_${usergroup_user_index}|(usermanagement_user_update_${usergroup_user_index}.!usermanagement_user_exists_${usergroup_user_index}.(usermanagement_user_group_definition_error_${usergroup_user_index}|usermanagement_user_uid_definition_error_${usergroup_user_index}))))|usermanagement_user_remove_${usergroup_user_index}";
## Change not needed (N/A)
"any" usebundle => rudder_common_report("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) password change is not required"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Password", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} ( ${repname[${usergroup_user_index}]} ) password change is not required", "${usergroup_user_index}"),
ifvarclass => "(!usermanagement_user_password_${usergroup_user_index}_kept.!usermanagement_user_password_${usergroup_user_index}_repaired.!usermanagement_user_password_${usergroup_user_index}_error).((usermanagement_user_checkpres_${usergroup_user_index}.usermanagement_user_pwoneshot_${usergroup_user_index})|(usermanagement_user_checkpres_${usergroup_user_index}.!usermanagement_user_exists_${usergroup_user_index}))|usermanagement_user_checkabs_${usergroup_user_index}";
# Homedir management
## On Windows, we don't do the home part
"any" usebundle => rudder_common_report("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "Home directory are not enforced on Windows"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "Home directory are not enforced on Windows", "${usergroup_user_index}"),
ifvarclass => "windows";
## In case of user to remove or to check absent, this is a result_na
"any" usebundle => rudder_common_report("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} should not be present, it doesn't need to have its home directory checked"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} should not be present, it doesn't need to have its home directory checked", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_remove_${usergroup_user_index}|usermanagement_user_checkabs_${usergroup_user_index})";
## In case of check user present or update, but with default home, this is result_na
"any" usebundle => rudder_common_report("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} doesn't need to have its home directory checked"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_na", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} doesn't need to have its home directory checked", "${usergroup_user_index}"),
ifvarclass => "!windows.(!usermanagement_user_pershome_${usergroup_user_index}.(usermanagement_user_update_${usergroup_user_index}|usermanagement_user_checkpres_${usergroup_user_index}))";
## In case of check user present or update, but the home is already correct, this is success
"any" usebundle => rudder_common_report("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory is valid"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_success", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory is valid", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_pershome_${usergroup_user_index}.!usermanagement_user_current_home_is_invalid_${usergroup_user_index}.(usermanagement_user_update_${usergroup_user_index}|usermanagement_user_checkpres_${usergroup_user_index}))";
## In case of update, but the home was not correct, and could be changed, this is repaired
"any" usebundle => rudder_common_report("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory was changed (but not moved)"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory was changed (but not moved)", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_pershome_${usergroup_user_index}.(usermanagement_login_home_change_${usergroup_user_index}_repaired.!usermanagement_login_home_change_${usergroup_user_index}_error).usermanagement_user_current_home_is_invalid_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index})";
## In case of update, but the home was not correct, and could not be changed, this is error
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory could not be changed"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory could not be changed", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_pershome_${usergroup_user_index}.usermanagement_login_home_change_${usergroup_user_index}_error.usermanagement_user_current_home_is_invalid_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index})";
## In case of update, but the home was not correct, and could be moved, this is repaired
"any" usebundle => rudder_common_report("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory was moved"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_repaired", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory was moved", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_pershome_${usergroup_user_index}.(usermanagement_login_home_move_${usergroup_user_index}_repaired.!usermanagement_login_home_move_${usergroup_user_index}_error).usermanagement_user_current_home_is_invalid_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index})";
## In case of update, but the home was not correct, and could not be moved, this is error
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory could not be moved"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory could not be moved", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_pershome_${usergroup_user_index}.usermanagement_home_move_${usergroup_user_index}_error.usermanagement_user_current_home_is_invalid_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index})";
## In case of update, but the home was not correct, and could not be changed, this is error
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory could not be changed"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory could not be changed", "${usergroup_user_index}"),
ifvarclass => "!windows.(usermanagement_user_pershome_${usergroup_user_index}.usermanagement_home_change_${usergroup_user_index}_error.usermanagement_user_current_home_is_invalid_${usergroup_user_index}.usermanagement_user_update_${usergroup_user_index})";
## In case of check only, and the home was not correct, this is error
"any" usebundle => rudder_common_report("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory was invalid"),
"any" usebundle => rudder_common_report_index("userGroupManagement", "result_error", "${usergroup_directive_id[${usergroup_user_index}]}", "Home directory", "${usergroup_user_login[${usergroup_user_index}]}", "The user ${usergroup_user_login[${usergroup_user_index}]} home directory was invalid", "${usergroup_user_index}"),
ifvarclass => "!windows.usermanagement_user_pershome_${usergroup_user_index}.usermanagement_user_current_home_is_invalid_${usergroup_user_index}.usermanagement_user_checkpres_${usergroup_user_index}";
commands:

Also available in: Unified diff