delete script should not accept RLVER=8

This commit is contained in:
Louis Abel 2023-05-22 02:12:07 -07:00
parent ed38b67626
commit 73662e8a89
Signed by: label
GPG Key ID: B37E62D143879B36
3 changed files with 24 additions and 123 deletions

View File

@ -29,6 +29,7 @@ COMPOSE_ROOT="/mnt/compose"
# relative to ${ENV}_ROOT
CATEGORY_STUB="mirror/pub/rocky"
SIG_CATEGORY_STUB="mirror/pub/sig"
VAULT_STUB="mirror/vault/rocky"
# Override: Required
#RELEASE_DIR="${CATEGORY_STUB}/${REVISION}${APPEND_TO_DIR}"
@ -132,9 +133,26 @@ function rsync_delete_staging_with_excludes() {
sudo -l && rsync -vrlptDSHog --chown=10004:10005 --progress --human-readable \
--exclude "${EXCLUDE}" \
--exclude Minimal \
--delete \
compose/ "${TARGET}"
}
function rsync_delete_subdirectory() {
local SUBDIR="${1}"
local TARGET="${2}"
sudo -l && rsync -vrlptDSHog --chown=10004:10005 --progress --human-readable \
--delete \
"compose/${SUBDIR}/" "${TARGET}"
}
function rsync_delete_generic() {
local SOURCE="${1}"
local TARGET="${2}"
sudo -l && rsync -vrlptDSHog --chown=10004:10005 --progress --human-readable \
--delete \
"${SOURCE}/" "${TARGET}"
}
function rsync_no_delete_prod() {
local REV="${1}"
local TARGET="${2}"
@ -288,6 +306,8 @@ export -f rsync_no_delete_prod
export -f rsync_delete_staging
export -f rsync_delete_staging_with_excludes
export -f rsync_delete_prod
export -f rsync_delete_subdirectory
export -f rsync_delete_generic
# dry rsync
export -f rsync_no_delete_staging_dry
export -f rsync_no_delete_staging_with_excludes_dry

View File

@ -1,123 +0,0 @@
#!/bin/bash
# This should only be ran during straight updates during a minor release cadence.
# In the case of point releases, this will need to be changed accordingly so that
# way it can be ran properly.
#
# The point of this script is to basically allow all old versions of a package
# or set of packages to be available during the life of a point release. As it
# currently stands, CentOS has started doing this for both 8 and 8-stream. RHEL
# also does this (and has always done this, except they take it a step further
# and provide everything, even if it's not installable).
#
# Compose dir example: /mnt/repos-staging/mirror/pub/rocky/8.4-RC2
# Source common variables
export RLVER=8
# shellcheck disable=SC2046,1091,1090
source "$(dirname "$0")/common"
echo "** Updating source repos"
for y in "${ALL_REPOS[@]}"; do
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/source/tree"
ret_val=$?
if [ "$ret_val" -eq 0 ]; then
createrepo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/source/tree" \
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}" \
--workers 12
sed -i '/<open-size><\/open-size>/d' \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/source/tree/repodata/repomd.xml"
test -f /root/bin/sign-repo.sh && /root/bin/sign-repo.sh \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/source/tree/repodata/repomd.xml"
else
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/source/tree does not exist"
fi
done
# Sync up some stuff
echo "** Updating arch repos as necessary **"
for x in "${ARCHES[@]}"; do
echo "${x}: Sync up repos that do not use comps/groups"
# regular repos, no comps
for y in "${NONMODS_REPOS[@]}"; do
# os and debug/tree directories
for z in os debug/tree kickstart; do
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}"
ret_val=$?
if [ "$ret_val" -eq 0 ]; then
createrepo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}" \
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}" \
--workers 12
sed -i '/<open-size><\/open-size>/d' \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}/repodata/repomd.xml"
test -f /root/bin/sign-repo.sh && /root/bin/sign-repo.sh \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z}/repodata/repomd.xml"
else
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/${z} does not exist"
fi
done
done
# repos with comps/groups involved, but only debug
for y in "${MODS_REPOS[@]}"; do
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree"
ret_val=$?
if [ "$ret_val" -eq 0 ]; then
createrepo --update "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree" \
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}" \
--workers 12 --retain-old-md-by-age 1d
sed -i '/<open-size><\/open-size>/d' \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree/repodata/repomd.xml"
test -f /root/bin/sign-repo.sh && /root/bin/sign-repo.sh \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree/repodata/repomd.xml"
else
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/debug/tree does not exist"
fi
done
echo "** Update all repos with comps/groups"
for y in "${MODS_REPOS[@]}"; do
echo "${y}: ${x}"
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os"
ret_val=$?
if [ "$ret_val" -eq 0 ]; then
createrepo --update "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os" \
--groupfile="/mnt/compose/8/latest-Rocky-8/work/${x}/comps/comps-${y}.${x}.xml" \
--xz --revision="${REVISION}" \
"--distro=cpe:/o:rocky:rocky:${REVISION:0:1},Rocky Linux ${REVISION:0:1}" \
--workers=12 --checksum=sha256 --retain-old-md-by-age 1d
sed -i '/<open-size><\/open-size>/d' \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os/repodata/repomd.xml"
sed -i '/<open-size><\/open-size>/d' \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/kickstart/repodata/repomd.xml"
test -f /root/bin/sign-repo.sh && /root/bin/sign-repo.sh \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os/repodata/repomd.xml"
else
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os does not exist"
fi
done
echo "** Update modules"
for y in "${MODS[@]}"; do
echo "Modules: ${y} ${x}"
cp "/mnt/compose/8_metadata/${x}/${y}-modules.yaml" /tmp/modules.yaml
test -d "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os"
ret_val=$?
if [ "$ret_val" -eq 0 ]; then
modifyrepo --mdtype=modules /tmp/modules.yaml \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os/repodata" \
--compress --compress-type=xz
# This might not be necessary, but it does not hurt incase repomd is modified
sed -i '/<open-size><\/open-size>/d' \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os/repodata/repomd.xml"
test -f /root/bin/sign-repo.sh && /root/bin/sign-repo.sh \
"${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os/repodata/repomd.xml"
else
echo "${STAGING_ROOT}/${RELEASE_DIR}/${y}/${x}/os does not exist"
fi
rm /tmp/modules.yaml
sleep 1
done
echo "** Fix variants"
treeinfoFixer "${x}"
done

View File

@ -12,6 +12,10 @@ if [[ $# -eq 0 ]]; then
exit 1
fi
if [[ "${RLVER}" -eq "8" ]]; then
echo "This is only used for Rocky Linux 9+ releases."
fi
# Major Version (eg, 8)
MAJ=${RLVER}