system-config/playbooks/roles/reprepro/files/reprepro-mirror-update
Ian Wienand 6ee7a5a116 mirror-update/reprepro : use common functions
This converts the reprepro mirror script to use the common functions
for timestamps and vos release.  This function ssh's to the AFS server
and runs vos release directly there, avoiding many issues with
kerberos timeouts.  This has been working successfully for the rsync
mirrors.  This will also send stats back so we can keep an eye on the
timing.

Change-Id: I1be29f2d9ecaad03b22c87819e5ae8d16c4f177e
2020-10-28 16:55:02 +11:00

58 lines
1.9 KiB
Bash

#!/bin/bash -e
# Copyright 2016 IBM Corp.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
source /usr/share/mirror-update/functions.sh
# For initial clones, and debugging, set this for more verbose output
# that doesn't time out.
if [[ ${NO_TIMEOUT:-0} -eq 1 ]]; then
echo_ts "Running interactively"
TIMEOUT=""
set -x
else
TIMEOUT="timeout -k 2m 90m"
fi
REPREPRO_CONFIG=$1
MIRROR_VOLUME=$2
BASE=$(cat ${REPREPRO_CONFIG}/options | grep base | cut -d' ' -f2)
CONFIG_KEY=$(basename $REPREPRO_CONFIG)
UNREF_FILE=/var/run/reprepro/${MIRROR_VOLUME}.${CONFIG_KEY}.unreferenced-files
K5START="k5start -t -f /etc/reprepro.keytab service/reprepro -- ${TIMEOUT} "
REPREPRO="$K5START reprepro --confdir $REPREPRO_CONFIG"
echo_ts "Obtaining reprepro tokens and running reprepro update"
$REPREPRO update
if [ -f $UNREF_FILE ] ; then
echo_ts "Cleaning up files made unreferenced on the last run"
$REPREPRO deleteifunreferenced < $UNREF_FILE
fi
echo_ts "Saving list of newly unreferenced files for next time"
k5start -t -f /etc/reprepro.keytab service/reprepro -- bash -c "reprepro --confdir $REPREPRO_CONFIG dumpunreferenced > $UNREF_FILE"
echo_ts "Checking state of mirror"
$REPREPRO checkpool fast
$REPREPRO check
date --iso-8601=ns | $K5START tee $BASE/timestamp.txt
echo_ts "reprepro completed successfully, running vos release."
vos_release $MIRROR_VOLUME
echo_ts "Done."