From 4971401cec6fa0e2d9f1483b7bf045fc2966b91f Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Mon, 22 Feb 2016 16:35:58 +0000 Subject: [PATCH] Promote the new make-git-checkout-seed to prod. --- .../files/make-git-checkout-seed.sh | 34 ++++++--- .../files/make-git-checkout-seed.sh.staging | 73 ------------------- roles/git/make_checkout_seed/tasks/main.yml | 5 -- 3 files changed, 22 insertions(+), 90 deletions(-) delete mode 100644 roles/git/make_checkout_seed/files/make-git-checkout-seed.sh.staging diff --git a/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh b/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh index 26fd055f6c..6ed32da9a3 100644 --- a/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh +++ b/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh @@ -3,14 +3,13 @@ # mkdir /srv/git_seed # cron job to invoke file daily # Need to setup OUTPUT_DIR to be served by apache -# modified by doteast -# modified by alda # Where the git repos live. These are bare repos ORIGIN_DIR=/srv/git/repositories # Where we'll create the repos to tar up WORK_DIR=/srv/git_seed + # Subdirectory makes cleanup easier SEED_DIR=$WORK_DIR/git-checkout @@ -31,26 +30,37 @@ DATE=`date +'%Y%m%d'` echo "$TIMESTAMP" > $SEED_DIR/TIMESTAMP -for repo in $ORIGIN_DIR/*.git ; do - working_tree=$SEED_DIR/$(basename $repo .git) +for repo in $ORIGIN_DIR/*.git ; do + bname=$(basename $repo .git) + working_tree=$SEED_DIR/$bname +# uncomment to skip processing dead.package repos +# if [ -e $working_tree/dead.package ]; then +# continue +# fi if [ -d $working_tree ] ; then pushd $working_tree &> /dev/null - sed -i "s@url = .*@url = $repo@" $working_tree/.git/config + sed -i "s@url = .*@url = $repo@" $working_tree/.git/config git pull --all &> /dev/null - sed -i "s@url = .*@url = git://pkgs.fedoraproject.org/$(basename $repo .git)@" $working_tree/.git/config + sed -i "s@url = .*@url = git://pkgs.fedoraproject.org/$bname@" $working_tree/.git/config popd &>/dev/null - if [ -e $working_tree/$(basename $repo .git).spec ]; then - cp $working_tree/$(basename $repo .git).spec $SPEC_DIR/ + if [ -e $working_tree/dead.package ]; then + rm -f $working_tree/$bname.spec + rm -f $SPEC_DIR/$bname.spec + elif [ -e $working_tree/$bname.spec ]; then + cp $working_tree/$bname.spec $SPEC_DIR/ fi else pushd $SEED_DIR &>/dev/null git clone $repo &> /dev/null popd &>/dev/null - sed -i "s@url = .*@url = git://pkgs.fedoraproject.org/$(basename $repo .git)@" $working_tree/.git/config - if [ -e $working_tree/$(basename $repo .git).spec ]; then - cp $working_tree/$(basename $repo .git).spec $SPEC_DIR/ - fi + sed -i "s@url = .*@url = git://pkgs.fedoraproject.org/$bname@" $working_tree/.git/config + if [ -e $working_tree/dead.package ]; then + rm -f $working_tree/$bname.spec + rm -f $SPEC_DIR/$bname.spec + elif [ -e $working_tree/$bname.spec ]; then + cp $working_tree/$bname.spec $SPEC_DIR/ fi + fi done tar -cf - -C$WORK_DIR $(basename $SEED_DIR)|xz -2 > $OUTPUT_DIR/.git-seed-$DATE.tar.xz diff --git a/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh.staging b/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh.staging deleted file mode 100644 index 6ed32da9a3..0000000000 --- a/roles/git/make_checkout_seed/files/make-git-checkout-seed.sh.staging +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# Puppet notes -- script is file -# mkdir /srv/git_seed -# cron job to invoke file daily -# Need to setup OUTPUT_DIR to be served by apache - -# Where the git repos live. These are bare repos -ORIGIN_DIR=/srv/git/repositories - -# Where we'll create the repos to tar up -WORK_DIR=/srv/git_seed - -# Subdirectory makes cleanup easier -SEED_DIR=$WORK_DIR/git-checkout - -# subdirectory to collect rpm speciles -SPEC_DIR=$WORK_DIR/rpm-specs - -# Where to store the seed tarball for download -OUTPUT_DIR=/srv/cache/lookaside/ - -# Instead of starting fresh each time, we'll try to use git pull to keep things synced -#rm -rf $WORK_DIR/* -mkdir -p $SEED_DIR -mkdir -p $SPEC_DIR - -# Give people an indication of when this checkout was last synced -TIMESTAMP=`date --rfc-3339=seconds` -DATE=`date +'%Y%m%d'` -echo "$TIMESTAMP" > $SEED_DIR/TIMESTAMP - - -for repo in $ORIGIN_DIR/*.git ; do - bname=$(basename $repo .git) - working_tree=$SEED_DIR/$bname -# uncomment to skip processing dead.package repos -# if [ -e $working_tree/dead.package ]; then -# continue -# fi - if [ -d $working_tree ] ; then - pushd $working_tree &> /dev/null - sed -i "s@url = .*@url = $repo@" $working_tree/.git/config - git pull --all &> /dev/null - sed -i "s@url = .*@url = git://pkgs.fedoraproject.org/$bname@" $working_tree/.git/config - popd &>/dev/null - if [ -e $working_tree/dead.package ]; then - rm -f $working_tree/$bname.spec - rm -f $SPEC_DIR/$bname.spec - elif [ -e $working_tree/$bname.spec ]; then - cp $working_tree/$bname.spec $SPEC_DIR/ - fi - else - pushd $SEED_DIR &>/dev/null - git clone $repo &> /dev/null - popd &>/dev/null - sed -i "s@url = .*@url = git://pkgs.fedoraproject.org/$bname@" $working_tree/.git/config - if [ -e $working_tree/dead.package ]; then - rm -f $working_tree/$bname.spec - rm -f $SPEC_DIR/$bname.spec - elif [ -e $working_tree/$bname.spec ]; then - cp $working_tree/$bname.spec $SPEC_DIR/ - fi - fi -done - -tar -cf - -C$WORK_DIR $(basename $SEED_DIR)|xz -2 > $OUTPUT_DIR/.git-seed-$DATE.tar.xz -tar -cf - -C$WORK_DIR $(basename $SPEC_DIR)|xz -2 > $OUTPUT_DIR/.rpm-specs-$DATE.tar.xz -rm $OUTPUT_DIR/git-seed*tar.xz -rm $OUTPUT_DIR/rpm-specs*tar.xz -mv $OUTPUT_DIR/.git-seed-$DATE.tar.xz $OUTPUT_DIR/git-seed-$DATE.tar.xz -mv $OUTPUT_DIR/.rpm-specs-$DATE.tar.xz $OUTPUT_DIR/rpm-specs-$DATE.tar.xz -ln -s git-seed-$DATE.tar.xz $OUTPUT_DIR/git-seed-latest.tar.xz -ln -s rpm-specs-$DATE.tar.xz $OUTPUT_DIR/rpm-specs-latest.tar.xz diff --git a/roles/git/make_checkout_seed/tasks/main.yml b/roles/git/make_checkout_seed/tasks/main.yml index 461bb56f52..daf2f7f955 100644 --- a/roles/git/make_checkout_seed/tasks/main.yml +++ b/roles/git/make_checkout_seed/tasks/main.yml @@ -4,13 +4,8 @@ - name: create the destination directory file: dest=/srv/git_seed owner=root group=root mode=0755 state=directory -- name: install the staging version of the script and schedule its execution - copy: src=make-git-checkout-seed.sh.staging dest=/usr/local/bin/make-git-checkout-seed.sh mode=0755 - when: env == 'staging' - - name: install the production version of the script and schedule its execution copy: src=make-git-checkout-seed.sh dest=/usr/local/bin/make-git-checkout-seed.sh mode=0755 - when: env != 'staging' - name: install cron job. cron: >