#!/bin/bash -xe # Copyright 2017 SUSE Linux GmbH # # 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. MIRROR_VOLUME=$1 if [[ ${NO_TIMEOUT:-0} -eq 1 ]]; then echo "Running interactively" TIMEOUT="" else TIMEOUT="timeout -k 2m 30m" fi BASE="/afs/.openstack.org/mirror/opensuse" MIRROR="rsync://mirror.us.leaseweb.net/opensuse" OBS_MIRROR="rsync://provo-mirror.opensuse.org/opensuse/repositories" OBS_REPOS=('Virtualization:/containers/openSUSE_Leap_42.3' 'Virtualization:/containers/openSUSE_Leap_15.0' 'Virtualization:/containers:/images:/openSUSE-Leap-15.0' 'Cloud:/OpenStack:/Queens/openSUSE_Leap_42.3' 'Cloud:/OpenStack:/Queens/openSUSE_Leap_15.0' 'Cloud:/OpenStack:/Rocky/openSUSE_Leap_42.3' 'Cloud:/OpenStack:/Rocky/openSUSE_Leap_15.0' 'Cloud:/OpenStack:/Stein/openSUSE_Leap_15.0' 'Cloud:/OpenStack:/Master/openSUSE_Leap_15.0') K5START="k5start -t -f /etc/opensuse.keytab service/opensuse-mirror -- $TIMEOUT" # NOTE(hwoarang): Ensure old distros are not mirrored aymore for REPO in \ distribution/leap/15.0/jeos distribution/leap/15.0/live \ repositories/Cloud:/OpenStack:/Master/openSUSE_Leap_42.3 \ tumbleweed update/tumbleweed ; do if [ -d $BASE/$REPO ]; then $K5START rm -rf $BASE/$REPO fi done # NOTE(hwoarang): 15.0 is newer than 42.3. for DISTVER in 42.3 15.0; do REPO=distribution/leap/$DISTVER/repo if ! [ -f $BASE/$REPO ]; then $K5START mkdir -p $BASE/$REPO fi date --iso-8601=ns echo "Running rsync distribution $DISTVER ..." $K5START rsync -rlptDvz \ --delete --stats \ --delete-excluded \ --exclude="iso" \ $MIRROR/$REPO/ $BASE/$REPO/ REPO=update/leap/$DISTVER if ! [ -f $BASE/$REPO ]; then $K5START mkdir -p $BASE/$REPO fi date --iso-8601=ns echo "Running rsync updates $DISTVER ..." $K5START rsync -rlptDvz \ --delete --stats \ --delete-excluded \ --exclude="src/" \ --exclude="nosrc/" \ $MIRROR/$REPO/ $BASE/$REPO/ done date --iso-8601=ns for obs_repo in ${OBS_REPOS[@]}; do REPO=repositories/${obs_repo}/ if ! [ -f $BASE/$REPO ]; then $K5START mkdir -p $BASE/$REPO fi echo "Running rsync ${obs_repo} ..." $K5START rsync -rlptDvz \ --delete --stats \ --delete-excluded \ --exclude="src/" \ --exclude="nosrc/" \ $OBS_MIRROR/$obs_repo/ $BASE/$REPO done date --iso-8601=ns | $K5START tee $BASE/timestamp.txt echo "rsync completed successfully, running vos release." k5start -t -f /etc/afsadmin.keytab service/afsadmin -- vos release -v $MIRROR_VOLUME date --iso-8601=ns echo "Done."