Resolves: RHEL-33364, import and build for rhel-10-beta
This commit is contained in:
parent
e04320c455
commit
db0bce09fe
2
.gitignore
vendored
2
.gitignore
vendored
@ -0,0 +1,2 @@
|
||||
/auto-maintenance-e2a233f5a0cb68363798bf014b16552cca681bd0.tar.gz
|
||||
/redhat.sap_install-1.3.5.tar.gz
|
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
#gating rhel
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-*
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
1690
redhat.sap_install-1.3.4-add_tests.patch
Normal file
1690
redhat.sap_install-1.3.4-add_tests.patch
Normal file
File diff suppressed because it is too large
Load Diff
128
redhat.sap_install-1.3.4-add_tools.patch
Normal file
128
redhat.sap_install-1.3.4-add_tools.patch
Normal file
@ -0,0 +1,128 @@
|
||||
commit 83db825f7f30445408efa6061631d8dd0590e891
|
||||
Author: Than Ngo <than@redhat.com>
|
||||
Date: Thu Jan 25 16:17:21 2024 +0100
|
||||
|
||||
add missing tools folders
|
||||
|
||||
Signed-off-by: Than Ngo <than@redhat.com>
|
||||
|
||||
diff --git a/roles/sap_general_preconfigure/tools/beautify-assert-output.sh b/roles/sap_general_preconfigure/tools/beautify-assert-output.sh
|
||||
new file mode 100755
|
||||
index 0000000..f48087c
|
||||
--- /dev/null
|
||||
+++ b/roles/sap_general_preconfigure/tools/beautify-assert-output.sh
|
||||
@@ -0,0 +1,34 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+# default font color: Light Cyan, which should be readable on both bright and dark background
|
||||
+__FONT_COLOR=36m
|
||||
+
|
||||
+if [[ ${1}. == "font_light_gray". ]]; then
|
||||
+ __FONT_COLOR=37m
|
||||
+elif [[ ${1}. == "font_no_color". ]]; then
|
||||
+ __FONT_COLOR=30m
|
||||
+fi
|
||||
+
|
||||
+if [[ ${2}. == "reset." ]]; then
|
||||
+ awk 'BEGIN{printf ("\033['${__FONT_COLOR}'Resetting font color\n")}'
|
||||
+ exit
|
||||
+fi
|
||||
+
|
||||
+awk '{sub (" \"msg\": ", "")}
|
||||
+ /TASK/{task_line=$0}
|
||||
+ /fatal:/{fatal_line=$0; nfatal[host]++}
|
||||
+ /...ignoring/{nfatal[host]--; if (nfatal[host]<0) nfatal[host]=0}
|
||||
+ /^[a-z]/&&/: \[/{gsub ("\\[", ""); gsub ("]", ""); gsub (":", ""); host=$2}
|
||||
+ /SAP note/{print "\033['${__FONT_COLOR}'[" host"] "$0}
|
||||
+ /FAIL:/{nfail[host]++; print "\033[31m[" host"] "$0}
|
||||
+ /WARN:/{nwarn[host]++; print "\033[33m[" host"] "$0}
|
||||
+ /PASS:/{npass[host]++; print "\033[32m[" host"] "$0}
|
||||
+ /INFO:/{print "\033[34m[" host"] "$0}
|
||||
+ /changed/&&/unreachable/{print "\033['${__FONT_COLOR}'[" host"] "$0}
|
||||
+ END{print ("---"); for (var in npass) {printf ("[%s] ", var); if (nfatal[var]>0) {
|
||||
+ printf ("\033[31mFATAL ERROR!!! Playbook might have been aborted!!!\033['${__FONT_COLOR}' Last TASK and fatal output:\n"); print task_line, fatal_line
|
||||
+ exit 199
|
||||
+ }
|
||||
+ else printf ("\033[31mFAIL: %d \033[33mWARN: %d \033[32mPASS: %d\033['${__FONT_COLOR}'\n", nfail[var], nwarn[var], npass[var])}
|
||||
+ if (nfail[var] != 0) exit (nfail[var])
|
||||
+ }'
|
||||
diff --git a/roles/sap_hana_preconfigure/tools/beautify-assert-output.sh b/roles/sap_hana_preconfigure/tools/beautify-assert-output.sh
|
||||
new file mode 100755
|
||||
index 0000000..f48087c
|
||||
--- /dev/null
|
||||
+++ b/roles/sap_hana_preconfigure/tools/beautify-assert-output.sh
|
||||
@@ -0,0 +1,34 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+# default font color: Light Cyan, which should be readable on both bright and dark background
|
||||
+__FONT_COLOR=36m
|
||||
+
|
||||
+if [[ ${1}. == "font_light_gray". ]]; then
|
||||
+ __FONT_COLOR=37m
|
||||
+elif [[ ${1}. == "font_no_color". ]]; then
|
||||
+ __FONT_COLOR=30m
|
||||
+fi
|
||||
+
|
||||
+if [[ ${2}. == "reset." ]]; then
|
||||
+ awk 'BEGIN{printf ("\033['${__FONT_COLOR}'Resetting font color\n")}'
|
||||
+ exit
|
||||
+fi
|
||||
+
|
||||
+awk '{sub (" \"msg\": ", "")}
|
||||
+ /TASK/{task_line=$0}
|
||||
+ /fatal:/{fatal_line=$0; nfatal[host]++}
|
||||
+ /...ignoring/{nfatal[host]--; if (nfatal[host]<0) nfatal[host]=0}
|
||||
+ /^[a-z]/&&/: \[/{gsub ("\\[", ""); gsub ("]", ""); gsub (":", ""); host=$2}
|
||||
+ /SAP note/{print "\033['${__FONT_COLOR}'[" host"] "$0}
|
||||
+ /FAIL:/{nfail[host]++; print "\033[31m[" host"] "$0}
|
||||
+ /WARN:/{nwarn[host]++; print "\033[33m[" host"] "$0}
|
||||
+ /PASS:/{npass[host]++; print "\033[32m[" host"] "$0}
|
||||
+ /INFO:/{print "\033[34m[" host"] "$0}
|
||||
+ /changed/&&/unreachable/{print "\033['${__FONT_COLOR}'[" host"] "$0}
|
||||
+ END{print ("---"); for (var in npass) {printf ("[%s] ", var); if (nfatal[var]>0) {
|
||||
+ printf ("\033[31mFATAL ERROR!!! Playbook might have been aborted!!!\033['${__FONT_COLOR}' Last TASK and fatal output:\n"); print task_line, fatal_line
|
||||
+ exit 199
|
||||
+ }
|
||||
+ else printf ("\033[31mFAIL: %d \033[33mWARN: %d \033[32mPASS: %d\033['${__FONT_COLOR}'\n", nfail[var], nwarn[var], npass[var])}
|
||||
+ if (nfail[var] != 0) exit (nfail[var])
|
||||
+ }'
|
||||
diff --git a/roles/sap_netweaver_preconfigure/tools/beautify-assert-output.sh b/roles/sap_netweaver_preconfigure/tools/beautify-assert-output.sh
|
||||
new file mode 100755
|
||||
index 0000000..f48087c
|
||||
--- /dev/null
|
||||
+++ b/roles/sap_netweaver_preconfigure/tools/beautify-assert-output.sh
|
||||
@@ -0,0 +1,34 @@
|
||||
+#!/bin/bash
|
||||
+
|
||||
+# default font color: Light Cyan, which should be readable on both bright and dark background
|
||||
+__FONT_COLOR=36m
|
||||
+
|
||||
+if [[ ${1}. == "font_light_gray". ]]; then
|
||||
+ __FONT_COLOR=37m
|
||||
+elif [[ ${1}. == "font_no_color". ]]; then
|
||||
+ __FONT_COLOR=30m
|
||||
+fi
|
||||
+
|
||||
+if [[ ${2}. == "reset." ]]; then
|
||||
+ awk 'BEGIN{printf ("\033['${__FONT_COLOR}'Resetting font color\n")}'
|
||||
+ exit
|
||||
+fi
|
||||
+
|
||||
+awk '{sub (" \"msg\": ", "")}
|
||||
+ /TASK/{task_line=$0}
|
||||
+ /fatal:/{fatal_line=$0; nfatal[host]++}
|
||||
+ /...ignoring/{nfatal[host]--; if (nfatal[host]<0) nfatal[host]=0}
|
||||
+ /^[a-z]/&&/: \[/{gsub ("\\[", ""); gsub ("]", ""); gsub (":", ""); host=$2}
|
||||
+ /SAP note/{print "\033['${__FONT_COLOR}'[" host"] "$0}
|
||||
+ /FAIL:/{nfail[host]++; print "\033[31m[" host"] "$0}
|
||||
+ /WARN:/{nwarn[host]++; print "\033[33m[" host"] "$0}
|
||||
+ /PASS:/{npass[host]++; print "\033[32m[" host"] "$0}
|
||||
+ /INFO:/{print "\033[34m[" host"] "$0}
|
||||
+ /changed/&&/unreachable/{print "\033['${__FONT_COLOR}'[" host"] "$0}
|
||||
+ END{print ("---"); for (var in npass) {printf ("[%s] ", var); if (nfatal[var]>0) {
|
||||
+ printf ("\033[31mFATAL ERROR!!! Playbook might have been aborted!!!\033['${__FONT_COLOR}' Last TASK and fatal output:\n"); print task_line, fatal_line
|
||||
+ exit 199
|
||||
+ }
|
||||
+ else printf ("\033[31mFAIL: %d \033[33mWARN: %d \033[32mPASS: %d\033['${__FONT_COLOR}'\n", nfail[var], nwarn[var], npass[var])}
|
||||
+ if (nfail[var] != 0) exit (nfail[var])
|
||||
+ }'
|
File diff suppressed because it is too large
Load Diff
244
rhel-system-roles-sap.spec
Normal file
244
rhel-system-roles-sap.spec
Normal file
@ -0,0 +1,244 @@
|
||||
# disable collection_artifact by default
|
||||
%bcond_with collection_artifact
|
||||
|
||||
# disable collection by default since version 3.6.0 (1.3.5)
|
||||
%bcond_with collection
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} > 8
|
||||
%bcond_without html
|
||||
%else
|
||||
# pandoc is not supported in rhel 7 and older,
|
||||
# which is needed for converting .md to .html.
|
||||
%bcond_with html
|
||||
%endif
|
||||
|
||||
%global collection_name sap_install
|
||||
%if 0%{?rhel}
|
||||
%define package_name rhel-system-roles-sap
|
||||
%global collection_namespace redhat
|
||||
%else
|
||||
%define package_name linux-system-roles-sap
|
||||
%global collection_namespace community
|
||||
%endif
|
||||
|
||||
# collection_version has to be increased by every rebuild
|
||||
# otherwise, it cannot be uploaded to Automation Hub and Galaxy
|
||||
# due to version conflict
|
||||
%define collection_version 1.3.5
|
||||
|
||||
%global mainid e2a233f5a0cb68363798bf014b16552cca681bd0
|
||||
%global commit_id_sap_install %{collection_version}
|
||||
%global rolename1 sap_general_preconfigure
|
||||
%global rolename2 sap_ha_install_hana_hsr
|
||||
%global rolename3 sap_hana_install
|
||||
%global rolename4 sap_hana_preconfigure
|
||||
%global rolename5 sap_ha_pacemaker_cluster
|
||||
%global rolename6 sap_hypervisor_node_preconfigure
|
||||
%global rolename7 sap_netweaver_preconfigure
|
||||
%global rolename8 sap_swpm
|
||||
%global rolename9 sap_vm_preconfigure
|
||||
%global src_owner linux-system-roles
|
||||
%global github_repo_sap_install redhat.sap_install
|
||||
%global rolename_rhel %{rolename1} %{rolename2} %{rolename3} %{rolename4} %{rolename5} %{rolename6} %{rolename7} %{rolename8} %{rolename9}
|
||||
%global rolenames %{rolename_rhel}
|
||||
|
||||
Name: %{package_name}
|
||||
Summary: System Roles to configure RHEL for running SAP NetWeaver- or SAP HANA-based products
|
||||
Version: 3.6.0
|
||||
Release: 5%{?dist}
|
||||
License: GPL-3.0-or-later
|
||||
Url: https://github.com/redhat-sap/community.sap_install
|
||||
Source0: https://github.com/linux-system-roles/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz
|
||||
Source1: https://github.com/redhat-sap/redhat.sap_install/archive/%{commit_id_sap_install}/%{github_repo_sap_install}-%{commit_id_sap_install}.tar.gz
|
||||
|
||||
# add collection files
|
||||
Patch1: redhat.sap_install-1.3.5-collections-files-324bfb8bab50d2baa1c4aacdb59e4e5c9e2ba74f.patch
|
||||
|
||||
# add tests files
|
||||
Patch2: redhat.sap_install-1.3.4-add_tests.patch
|
||||
|
||||
# add tools files
|
||||
Patch3: redhat.sap_install-1.3.4-add_tools.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
Requires: rhel-system-roles
|
||||
|
||||
%if %{with html}
|
||||
# Requirements for md2html.sh to build the documentation
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 9
|
||||
BuildRequires: rubygem-kramdown-parser-gfm
|
||||
%else
|
||||
BuildRequires: pandoc
|
||||
BuildRequires: asciidoc
|
||||
BuildRequires: highlight
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Requirements for galaxy_transform.py
|
||||
BuildRequires: python3-ruamel-yaml
|
||||
Requires: python3-jmespath
|
||||
Requires: python3-netaddr
|
||||
|
||||
# NOTE: ansible-core is in rhel-8.6 and newer, but not installable
|
||||
# in buildroot as it depended on modular Python.
|
||||
# It has been installable at buildtime in 8.8 and newer.
|
||||
%if %{with collection}
|
||||
%if 0%{?rhel} >= 8
|
||||
BuildRequires: ansible-core >= 2.11.0
|
||||
Requires: (ansible-core >= 2.11.0 or ansible >= 2.9.0)
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if %{undefined __ansible_provides}
|
||||
Provides: ansible-collection(%{collection_namespace}.%{collection_name}) = %{version}
|
||||
%endif
|
||||
# be compatible with the usual Fedora Provides:
|
||||
Provides: ansible-collection-%{collection_namespace}-%{collection_name} = %{version}-%{release}
|
||||
|
||||
# ansible-galaxy is available by ansible-core on RHEL 8.6 and newer at buildtime.
|
||||
%define ansible_collection_build() ansible-galaxy collection build
|
||||
%define ansible_collection_install() ansible-galaxy collection install -n -p %{buildroot}%{_datadir}/ansible/collections %{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz
|
||||
|
||||
%if 0%{?fedora} || 0%{?rhel} >= 8
|
||||
%{!?ansible_collection_files:%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/}
|
||||
%else
|
||||
%if %{?ansible_collection_files:0}%{!?ansible_collection_files:1}
|
||||
%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%description
|
||||
Collection of Ansible roles which configures a RHEL system according
|
||||
to applicable SAP notes so that any SAP software can be installed.
|
||||
|
||||
%if %{with collection_artifact}
|
||||
%package collection-artifact
|
||||
Summary: Collection artifact to import to Automation Hub / Ansible Galaxy
|
||||
|
||||
%description collection-artifact
|
||||
Collection artifact for %{name}. This package contains %{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%setup -q -a1 -n auto-maintenance-%{mainid}
|
||||
|
||||
pushd %{github_repo_sap_install}-%{commit_id_sap_install}/
|
||||
%patch -P1 -p1
|
||||
%patch -P2 -p1
|
||||
%patch -P3 -p1
|
||||
# workaround for md2html error
|
||||
sed -i -e "s|for POWER ||g" roles/sap_hana_preconfigure/README.md
|
||||
popd
|
||||
|
||||
# remove zero file and symlinks
|
||||
find . -type f -size 0 -delete
|
||||
find . -type l -delete
|
||||
|
||||
# fix python and bash shebangs
|
||||
find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!/usr/bin/python3=' {} +
|
||||
find -type f \( -iname "*.sh" \) -exec sed -i '1s=^#! */bin/bash=#!/usr/bin/bash=' {} +
|
||||
|
||||
# remove json files, these are already present in the collection subdirectory
|
||||
rm -f FILES.json MANIFEST.json
|
||||
|
||||
%build
|
||||
%if %{with html}
|
||||
readmes=""
|
||||
for role in %{rolenames}; do
|
||||
readmes="${readmes} %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role/README.md"
|
||||
done
|
||||
sh md2html.sh $readmes %{github_repo_sap_install}-%{commit_id_sap_install}/README.md
|
||||
%endif
|
||||
|
||||
%if %{with collection}
|
||||
# create dest-path
|
||||
mkdir .collections
|
||||
|
||||
for role in %{rolenames} ; do
|
||||
LANG=en_US.utf-8 LC_ALL=en_US.utf-8 python3 lsr_role2collection.py --role "$role" \
|
||||
--src-path %{github_repo_sap_install}-%{commit_id_sap_install}/roles/"$role" \
|
||||
--src-owner %{src_owner} \
|
||||
--dest-path .collections \
|
||||
--namespace %{collection_namespace} \
|
||||
--collection %{collection_name} \
|
||||
--new-role "$new_role"
|
||||
done
|
||||
|
||||
cp -p galaxy.yml .collections/ansible_collections/%{collection_namespace}/%{collection_name}
|
||||
# update README.md
|
||||
cp %{github_repo_sap_install}-%{commit_id_sap_install}/README.md .collections/ansible_collections/%{collection_namespace}/%{collection_name}
|
||||
|
||||
# Build the collection
|
||||
pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/
|
||||
%ansible_collection_build
|
||||
popd
|
||||
|
||||
%endif
|
||||
|
||||
%install
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles \
|
||||
$RPM_BUILD_ROOT%{_pkgdocdir}
|
||||
|
||||
# create file selection for documents
|
||||
echo "%dir %{_pkgdocdir}" > files_section.txt
|
||||
cp %{github_repo_sap_install}-%{commit_id_sap_install}/README.md $RPM_BUILD_ROOT%{_pkgdocdir}/
|
||||
|
||||
%if %{with html}
|
||||
cp %{github_repo_sap_install}-%{commit_id_sap_install}/README.html $RPM_BUILD_ROOT%{_pkgdocdir}/
|
||||
%endif
|
||||
echo "%{_pkgdocdir}/README.*" >> files_section.txt
|
||||
|
||||
for role in %{rolenames} ; do
|
||||
mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/$role
|
||||
cp -pR %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role $RPM_BUILD_ROOT%{_datadir}/ansible/roles/
|
||||
install -m 644 %{github_repo_sap_install}-%{commit_id_sap_install}/LICENSE \
|
||||
%{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role/README.md \
|
||||
$RPM_BUILD_ROOT%{_pkgdocdir}/$role/
|
||||
%if %{with html}
|
||||
install -m 644 %{github_repo_sap_install}-%{commit_id_sap_install}/roles/$role/README.html \
|
||||
$RPM_BUILD_ROOT%{_pkgdocdir}/$role/
|
||||
%endif
|
||||
echo "%dir %{_pkgdocdir}/$role" >> files_section.txt
|
||||
done
|
||||
|
||||
# install collection files
|
||||
%if %{with collection}
|
||||
pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/
|
||||
%ansible_collection_install
|
||||
popd
|
||||
%else
|
||||
cp -pR %{github_repo_sap_install}-%{commit_id_sap_install}/collections $RPM_BUILD_ROOT%{_datadir}/ansible/
|
||||
%endif
|
||||
|
||||
# install collection_artifact
|
||||
%if %{with collection_artifact}
|
||||
# Copy collection artifact to /usr/share/ansible/collections/ for collection-artifact
|
||||
pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/
|
||||
mv %{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz $RPM_BUILD_ROOT%{_datadir}/ansible/collections/
|
||||
popd
|
||||
%endif
|
||||
|
||||
%files -f files_section.txt
|
||||
%dir %{_datadir}/ansible
|
||||
%dir %{_datadir}/ansible/roles
|
||||
%doc %{_pkgdocdir}/*/README.md
|
||||
%license %{_pkgdocdir}/*/LICENSE
|
||||
%{_datadir}/ansible/roles/*
|
||||
|
||||
%if %{with html}
|
||||
%{_pkgdocdir}/*/README.html
|
||||
%endif
|
||||
%if %{with collection}
|
||||
%{ansible_collection_files}
|
||||
%else
|
||||
%{_datadir}/ansible/collections
|
||||
%endif
|
||||
%if %{with collection_artifact}
|
||||
%files collection-artifact
|
||||
%{_datadir}/ansible/collections/%{collection_namespace}-%{collection_name}-%{collection_version}.tar.gz
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu May 02 2024 Than Ngo <than@redhat.com> - 3.6.0-5
|
||||
- Resolves: RHEL-33364, import and build for rhel-10-beta
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
||||
SHA512 (auto-maintenance-e2a233f5a0cb68363798bf014b16552cca681bd0.tar.gz) = 3d5c784e668605eb8b7862227b456da05ff5dedf84411131a27118b501b6a9bbe8894c4f29e6de4230fe534ef6b2de4653c56a904857d9eb11b452d31aed143c
|
||||
SHA512 (redhat.sap_install-1.3.5.tar.gz) = 7c15aff5d0fa2c21200d73d901bf659175a952de4de0ae2f7cd6909d75134f769d9ac466ce2a39e2bfafc7177fb55f484bb8232d8095f25b5deb6086c5ef1287
|
Loading…
Reference in New Issue
Block a user