Initial ansible-collection-redhat-rhel_mgmt

Created from community.general rev. 89ffb04dfff8995f94e9139e7792a116f6467e14

Resolves: rhbz1843859
This commit is contained in:
Pavel Cahyna 2021-08-05 17:05:24 +02:00
parent d84d6354cd
commit a569bf3443
4 changed files with 136 additions and 0 deletions

1
.gitignore vendored
View File

@ -0,0 +1 @@
/ansible-collection-fedora-linux_mgmt.tar.gz

View File

@ -0,0 +1,110 @@
%if 0%{?rhel} && ! 0%{?epel}
%bcond_with ansible
%else
%bcond_without ansible
%endif
%global collection_namespace_orig fedora
%global collection_name_orig linux_mgmt
%if 0%{?rhel}
%global collection_namespace redhat
%global collection_name rhel_mgmt
%else
%global collection_namespace %{collection_namespace_orig}
%global collection_name %{collection_name_orig}
%endif
Name: ansible-collection-%{collection_namespace}-%{collection_name}
Url: https://github.com/linux-system-roles/
Summary: Ansible Collection of general system management and utility modules and other plugins
Version: 1.0.0
Release: 1%{?dist}
License: GPLv3+
%global collection_version %{version}
%global archivename ansible-collection-%{collection_namespace_orig}-%{collection_name_orig}
%global extractdir %{archivename}
# Helper macros originally from macros.ansible by Igor Raits <ignatenkobrain>
# Not available on RHEL, so we must define those macros locally here without using ansible-galaxy
# Not used (yet). Could be made to point to AH in RHEL - but what about CentOS Stream?
#%%{!?ansible_collection_url:%%define ansible_collection_url() https://galaxy.ansible.com/%%{collection_namespace}/%%{collection_name}}
%{!?ansible_collection_files:%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/}
%if %{with ansible}
BuildRequires: ansible >= 2.9.10
Requires: ansible >= 2.9.10
%endif
%if %{undefined ansible_collection_build}
%if %{without ansible}
# We don't have ansible-galaxy.
%define ansible_collection_build() tar -cf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz .
%else
%define ansible_collection_build() ansible-galaxy collection build
%endif
%endif
%if %{undefined ansible_collection_install}
%if %{without ansible}
# Simply copy everything instead of galaxy-installing the built artifact.
%define ansible_collection_install() mkdir -p %{buildroot}%{ansible_collection_files}/%{collection_name}; (cd %{buildroot}%{ansible_collection_files}/%{collection_name}; tar -xf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz)
%else
%define ansible_collection_install() ansible-galaxy collection install -n -p %{buildroot}%{_datadir}/ansible/collections %{collection_namespace}-%{collection_name}-%{version}.tar.gz
%endif
%endif
Source: %{archivename}.tar.gz
BuildArch: noarch
BuildRequires: python3
BuildRequires: python3dist(ruamel.yaml)
# utility for build
# originally from: https://github.com/linux-system-roles/auto-maintenance
# rev. 20d31bf5d8e7eb67ce48af39e36c9f79d87490e3
# MIT license: https://github.com/linux-system-roles/auto-maintenance/blob/master/LICENSE
Source1: galaxy_transform.py
%if %{undefined __ansible_provides}
Provides: ansible-collection(%{collection_namespace}.%{collection_name}) = %{collection_version}
%endif
%description
%{summary}.
Targeted at GNU/Linux systems.
%prep
%autosetup -n %{extractdir}
# Replacing original (Galaxy) collection name by downstream (Automation Hub) name
%if "%{collection_namespace_orig}" != "%{collection_namespace}" || "%{collection_name_orig}" != "%{collection_name}"
find -type f -exec \
sed "s/%{collection_namespace_orig}[.]%{collection_name_orig}/%{collection_namespace}.%{collection_name}/g" -i {} \;
%endif
# borrowed from from ansible-collection-ansible-netcommon
find -type f ! -executable -type f -name '*.py' -print -exec sed -i -e '1{\@^#!.*@d}' '{}' +
%{SOURCE1} %{collection_namespace} %{collection_name} %{collection_version} > galaxy.yml.new
mv galaxy.yml.new galaxy.yml
%build
%ansible_collection_build
%install
%ansible_collection_install
%files
%dir %{_datadir}/ansible
%license COPYING
%{ansible_collection_files}
%changelog
* Thu Aug 05 2021 Pavel Cahyna <pcahyna@redhat.com> - 1.0.0-1
- Initial version

24
galaxy_transform.py Executable file
View File

@ -0,0 +1,24 @@
#!/usr/bin/python3
# Changes namespace, name, and version in Galaxy metadata.
# Useful for releasing to Automation Hub, where Collections live
# in namespaces separated from Ansible Galaxy.
import sys
from ruamel.yaml import YAML
filepath = "galaxy.yml"
buf = open(filepath).read()
yaml = YAML(typ="rt")
yaml.default_flow_style = False
yaml.preserve_quotes = True
yaml.indent(mapping=2, sequence=4, offset=2)
code = yaml.load(buf)
code["namespace"] = sys.argv[1]
code["name"] = sys.argv[2]
code["version"] = sys.argv[3]
yaml.dump(code, sys.stdout)

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (ansible-collection-fedora-linux_mgmt.tar.gz) = d1f404b89001a8530c07d4fb5641f7660a8b34b17dddd71018f07b400cb1a5aadedc57f2038180dd6aced470ac24d4b65e85477bba3fcaeeb1fa6b709e3ca0d4