mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-05-13 13:02:00 +00:00
utils/*galaxy*: Make galaxy scripts more generic
The namespace and colleciton name have been hard coded. Now variables are used for them. The project prefix and collection prefix are now passed to galaxyify-playbook.py.
This commit is contained in:
@@ -1,36 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
namespace="freeipa"
|
||||
collection="ansible_freeipa"
|
||||
collection_prefix="${namespace}.${collection}"
|
||||
|
||||
galaxy_version=$(git describe --tags | sed -e "s/^v//")
|
||||
echo $galaxy_version | grep "-" -q || galaxy_version="${galaxy_version}"
|
||||
sed -i -e "s/version: .*/version: \"$galaxy_version\"/" galaxy.yml
|
||||
|
||||
find . -name "*~" -exec rm {} \;
|
||||
|
||||
sed -i -e "s/ansible.module_utils.ansible_freeipa_module/ansible_collections.freeipa.ansible_freeipa.plugins.module_utils.ansible_freeipa_module/" plugins/modules/*.py
|
||||
sed -i -e "s/ansible.module_utils.ansible_freeipa_module/ansible_collections.${collection_prefix}.plugins.module_utils.ansible_freeipa_module/" plugins/modules/*.py
|
||||
|
||||
cd plugins/module_utils && {
|
||||
ln -s ../../roles/ipa*/module_utils/*.py .
|
||||
ln -s ../../roles/*/module_utils/*.py .
|
||||
cd ../..
|
||||
}
|
||||
|
||||
cd plugins/modules && {
|
||||
sed -i -e "s/ansible.module_utils.ansible_ipa_/ansible_collections.freeipa.ansible_freeipa.plugins.module_utils.ansible_ipa_/" ../../roles/ipa*/library/*.py
|
||||
ln -s ../../roles/ipa*/library/*.py .
|
||||
sed -i -e "s/ansible.module_utils.ansible_ipa_/ansible_collections.${collection_prefix}.plugins.module_utils.ansible_ipa_/" ../../roles/*/library/*.py
|
||||
ln -s ../../roles/*/library/*.py .
|
||||
cd ../..
|
||||
}
|
||||
|
||||
[ ! -x plugins/action_plugins ] && mkdir plugins/action_plugins
|
||||
cd plugins/action_plugins && {
|
||||
ln -s ../../roles/ipa*/action_plugins/*.py .
|
||||
ln -s ../../roles/*/action_plugins/*.py .
|
||||
cd ../..
|
||||
}
|
||||
|
||||
for x in roles/ipa*/tasks/*.yml; do
|
||||
python utils/galaxyify-playbook.py "$x"
|
||||
for x in roles/*/tasks/*.yml; do
|
||||
python utils/galaxyify-playbook.py "$x" "ipa" "$collection_prefix"
|
||||
done
|
||||
|
||||
for x in $(find playbooks -name "*.yml" -print); do
|
||||
python utils/galaxyify-playbook.py "$x"
|
||||
python utils/galaxyify-playbook.py "$x" "ipa" "$collection_prefix"
|
||||
done
|
||||
|
||||
#git diff
|
||||
@@ -43,4 +47,3 @@ rm plugins/modules/ipareplica_*
|
||||
rm plugins/modules/ipaclient_*
|
||||
rm plugins/action_plugins/ipaclient_*
|
||||
git reset --hard
|
||||
|
||||
|
||||
@@ -2,11 +2,14 @@ import sys
|
||||
import re
|
||||
|
||||
|
||||
def galaxify_playbook(playbook_in):
|
||||
p1 = re.compile('(ipa.*:)$')
|
||||
p2 = re.compile('(.*:) (ipa.*)$')
|
||||
def galaxify_playbook(playbook_in, project_prefix, collection_prefix):
|
||||
p1 = re.compile('(%s.*:)$' % project_prefix)
|
||||
p2 = re.compile('(.*:) (%s.*)$' % project_prefix)
|
||||
lines = []
|
||||
|
||||
pattern1 = r'%s.\1' % collection_prefix
|
||||
pattern2 = r'\1 %s.\2' % collection_prefix
|
||||
|
||||
with open(playbook_in) as in_f:
|
||||
changed = False
|
||||
changeable = False
|
||||
@@ -22,14 +25,13 @@ def galaxify_playbook(playbook_in):
|
||||
elif stripped.startswith("include_role:"):
|
||||
include_role = True
|
||||
elif include_role and stripped.startswith("name:"):
|
||||
line = p2.sub(r'\1 freeipa.ansible_freeipa.\2', line)
|
||||
line = p2.sub(pattern2, line)
|
||||
changed = True
|
||||
elif changeable and stripped.startswith("- role:"):
|
||||
line = p2.sub(r'\1 freeipa.ansible_freeipa.\2', line)
|
||||
line = p2.sub(pattern2, line)
|
||||
changed = True
|
||||
elif changeable and not stripped.startswith(
|
||||
"freeipa.ansible_freeipa."):
|
||||
line = p1.sub(r'freeipa.ansible_freeipa.\1', line)
|
||||
elif changeable and not stripped.startswith(collection_prefix):
|
||||
line = p1.sub(pattern1, line)
|
||||
changed = True
|
||||
|
||||
lines.append(line)
|
||||
@@ -40,4 +42,4 @@ def galaxify_playbook(playbook_in):
|
||||
out_f.write(line)
|
||||
|
||||
|
||||
galaxify_playbook(sys.argv[1])
|
||||
galaxify_playbook(sys.argv[1], sys.argv[2], sys.argv[3])
|
||||
|
||||
Reference in New Issue
Block a user