e24387006f
Resolves: RHEL-3253 RHEL for Edge support in system roles except for nbde_client, rhc, metrics Resolves: RHEL-17668 ad_integration - feat: Add sssd custom settings Resolves: RHEL-16541 fapolicyd - feat: Import code for fapolicyd system role Resolves: RHEL-15910 ha_cluster - [RFE] HA Cluster system role should be able to enable Resilient Storage repository Resolves: RHEL-15908 ha_cluster - [FutureFeature] Allow ha_cluster role to configure all qdevice options Resolves: RHEL-15876 ha_cluster - [FutureFeature] Allow ha_cluster role to configure fencing topology Resolves: RHEL-3353 kdump - fix: retry read of kexec_crash_size Resolves: RHEL-15932 logging - feat: Add support for the global config option preserveFQDN with a new logg… Resolves: RHEL-15439 logging - feat: Add support for general queue and general action parameters Resolves: RHEL-15037 logging - fix: check that logging_max_message_size is set, not rsyslog_max_message_size Resolves: RHEL-13760 metrics - [RFE] Metrics system role support for configuring PMIE webhooks Resolves: RHEL-1683 network - Ansible RHEL network system role issue with ipv6.routing-rules the prefix length for 'from' cannot be zero" Resolves: RHEL-15870 selinux - fix: Use `ignore_selinux_state` module option Resolves: RHEL-16212 storage - feat: Support for creating volumes without a FS
103 lines
4.5 KiB
PHP
103 lines
4.5 KiB
PHP
# maps the source file to the roles that use that file
|
|
# value can be string or space delimited list of strings
|
|
# role name `__collection` means - do not vendor into
|
|
# role, just vendor directly into the collection
|
|
declare -A plugin_map=(
|
|
[ansible/posix/plugins/modules/selinux.py]=selinux
|
|
[ansible/posix/plugins/modules/seboolean.py]=selinux
|
|
[ansible/posix/plugins/modules/mount.py]=storage
|
|
[ansible/posix/plugins/modules/rhel_facts.py]=__collection
|
|
[ansible/posix/plugins/modules/rhel_rpm_ostree.py]=__collection
|
|
[ansible/posix/plugins/module_utils/mount.py]=storage
|
|
[community/general/plugins/modules/ini_file.py]="tlog ad_integration"
|
|
[community/general/plugins/modules/modprobe.py]=ha_cluster
|
|
[community/general/plugins/modules/redhat_subscription.py]=rhc
|
|
[community/general/plugins/modules/rhsm_release.py]=rhc
|
|
[community/general/plugins/modules/rhsm_repository.py]=rhc
|
|
[community/general/plugins/modules/seport.py]=selinux
|
|
[community/general/plugins/modules/sefcontext.py]=selinux
|
|
[community/general/plugins/modules/selogin.py]=selinux
|
|
[containers/podman/plugins/modules/podman_container_info.py]=podman
|
|
[containers/podman/plugins/modules/podman_image.py]=podman
|
|
[containers/podman/plugins/modules/podman_play.py]=podman
|
|
[containers/podman/plugins/modules/podman_secret.py]=podman
|
|
[containers/podman/plugins/module_utils/podman/common.py]=podman
|
|
)
|
|
|
|
declare -a modules mod_utils collection_plugins
|
|
declare -A dests
|
|
# vendor in plugin files - fix documentation, fragments
|
|
for src in "${!plugin_map[@]}"; do
|
|
roles="${plugin_map["$src"]}"
|
|
if [ "$roles" = __collection ]; then
|
|
collection_plugins+=("$src")
|
|
else
|
|
case "$src" in
|
|
*/plugins/modules/*) srcdir=plugins/modules; subdir=library; modules+=("$src") ;;
|
|
*/plugins/module_utils/*) srcdir=plugins/module_utils; mod_utils+=("$src") ;;
|
|
*/plugins/action/*) srcdir=plugins/action ;;
|
|
esac
|
|
fi
|
|
for role in $roles; do
|
|
if [ "$role" = __collection ]; then
|
|
dest="%{collection_build_path}/plugins${src/#*plugins/}"
|
|
dests["$dest"]=__collection
|
|
else
|
|
case "$src" in
|
|
*/plugins/module_utils/*) subdir="module_utils/${role}_lsr" ;;
|
|
esac
|
|
dest="$role/${src/#*${srcdir}/${subdir}}"
|
|
dests["$dest"]="$role"
|
|
fi
|
|
destdir="$(dirname "$dest")"
|
|
if [ ! -d "$destdir" ]; then
|
|
mkdir -p "$destdir"
|
|
fi
|
|
cp -pL ".external/$src" "$dest"
|
|
sed -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this plugin directly! It is only for role internal use.\n\1/' \
|
|
-e '/^extends_documentation_fragment:/,/^[^ -]/{/^extends/d;/^[ -]/d}' \
|
|
-i "$dest"
|
|
done
|
|
done
|
|
|
|
# remove the temporary .external directory after vendoring
|
|
rm -rf .external
|
|
|
|
# fix python imports to point from the old name to the new name
|
|
for dest in "${!dests[@]}"; do
|
|
role="${dests["$dest"]}"
|
|
for module in "${modules[@]}"; do
|
|
python_name="$(dirname "$module")"
|
|
python_name="${python_name////[.]}"
|
|
sed -e "s/ansible_collections[.]${python_name}[.]/ansible.modules./" -i "$dest"
|
|
done
|
|
for mod_util in "${mod_utils[@]}"; do
|
|
# some mod_utils have subdirs, some do not
|
|
split=(${mod_util//// })
|
|
python_name="ansible_collections[.]${split[0]}[.]${split[1]}[.]plugins[.]module_utils[.]"
|
|
sed -e "s/${python_name}/ansible.module_utils.${role}_lsr./" -i "$dest"
|
|
done
|
|
for plugin in "${collection_plugins[@]}"; do
|
|
python_name="$(dirname "$plugin")"
|
|
dest_python_name="%{collection_namespace}/%{collection_name}/plugins${python_name/#*plugins/}"
|
|
src_python_name="ansible_collections.${python_name////[.]}"
|
|
dest_python_name="ansible_collections.${dest_python_name////.}"
|
|
sed -e "s/${src_python_name}/${dest_python_name}/" -i "$dest"
|
|
done
|
|
done
|
|
|
|
# Replacing "linux-system-roles.rolename" with "rhel-system-roles.rolename" in each role
|
|
# Replacing "fedora.linux_system_roles." with "redhat.rhel_system_roles" in each role
|
|
# This is for the "roles calling other roles" case
|
|
# for podman, change the FQCN - using a non-FQCN module name doesn't seem to work,
|
|
# even for the legacy role format
|
|
for rolename in %{rolenames}; do
|
|
find "$rolename" -type f -exec \
|
|
sed -e "s/linux-system-roles[.]${rolename}\\>/%{roleinstprefix}${rolename}/g" \
|
|
-e "s/fedora[.]linux_system_roles[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-e "s/containers[.]podman[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-e "s/community[.]general[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-e "s/ansible[.]posix[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-i {} \;
|
|
done
|