From bce316cb1b0a20c41ec9d9e70c899d8cf165421b Mon Sep 17 00:00:00 2001 From: Adam Miller Date: Oct 08 2015 21:57:47 +0000 Subject: fedmsg function and make-update fedmsgs --- diff --git a/scripts/build-functions.sh b/scripts/build-functions.sh index 12b4bd6..1b3d5cc 100644 --- a/scripts/build-functions.sh +++ b/scripts/build-functions.sh @@ -55,20 +55,15 @@ function log() echo "$(date --utc) build${DIST}: ${message}" | tee -a "${logfile}" >&2 } -function send_fedmsg() -{ - local log="${1}" - local topic="${2}" - # Emit a message using bodhi's cert (since we should be running as "masher"). - echo "{\"log\": \"${log}\", \"branch\": \"$BRANCHED\", \"arch\": \"$ARCH\"}" | fedmsg-logger \ - --cert-prefix bodhi \ - --modname compose \ - --topic "${DIST}.${topic}" \ - --json-input -} +fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH") +fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH") + +FEDMSG_MODNAME="compose" +FEDMSG_CERTPREFIX="bodhi" +. fedmsg-functions.sh log "started" -send_fedmsg start start +send_fedmsg ${fedmsg_json_start} ${DIST} start log "blocking retired packages" if [ "$ENVIRONMENT" == "production" ]; then @@ -111,14 +106,14 @@ fi log "mock setup /etc/hosts" $MOCK -r $MOCKCONFIG --uniqueext=$DATE --copyin /etc/hosts /etc/hosts >/dev/null 2>&1 # this reports to fail, but actually works -send_fedmsg start mash.start +send_fedmsg ${fedmsg_json_start} ${DIST} mash.start log "starting mash" # Drop privs here so that we run as the masher UID $MOCK -r $MOCKCONFIG --uniqueext=$DATE --chroot "chown mockbuild:mockbuild /var/cache/mash" || exit 1 $MOCK -r $MOCKCONFIG --uniqueext=$DATE --unpriv --chroot "mash $MASHOPTS -p $TREEPREFIX/development/$BRANCHED -o ${MASHDIR} --compsfile $logdir/${COMPSFILE} $BRANCHED$EXPANDARCH > $logdir/mash.log 2>&1" || exit 1 -send_fedmsg done mash.complete +send_fedmsg ${fedmsg_json_done} ${DIST} mash.complete log "finished mash" log "starting hardlink" @@ -158,7 +153,7 @@ fi log "finished atomic tree creation" } -send_fedmsg start pungify.start +send_fedmsg ${fedmsg_json_start} ${DIST} pungify.start log "starting critppath generation" #only run critpath on primary arch @@ -175,7 +170,7 @@ for basearch in armhfp i386 x86_64 ; do wait log "finished pungify" -send_fedmsg done pungify.complete +send_fedmsg ${fedmsg_json_done} ${DIST} pungify.complete log "starting build_composeinfo" echo "Running build_composeinfo" @@ -198,7 +193,7 @@ echo "Compose finished at $(date --utc)" >> $logdir/finish echo >> $logdir/finish log "finished compose" -send_fedmsg start rsync.start +send_fedmsg ${fedmsg_json_start} ${DIST} rsync.start log "started compose sync" # data @@ -213,7 +208,7 @@ if [ "$?" = "0" ]; then export mail=0 fi -send_fedmsg done rsync.complete +send_fedmsg ${fedmsg_json_done} ${DIST} rsync.complete log "starting sending email report" if [ "$mail" = "0" ]; then @@ -225,7 +220,7 @@ fi log "finished sending email report" [ -z "$ARCH" ] && { -send_fedmsg start image.start +send_fedmsg ${fedmsg_json_start} ${DIST} image.start log "started checking out spin-kickstarts" pushd ../ @@ -242,7 +237,7 @@ log "finished starting building live/arm/cloud images" popd popd -send_fedmsg done image.complete +send_fedmsg ${fedmsg_json_done} ${DIST} image.complete } for koji in arm ppc s390 @@ -257,6 +252,6 @@ do scripts/srpm-excluded-arch.py -a $arches --path ${MASHDIR}/$BRANCHED$EXPANDARCH/source/SRPMS/\*/ >$logdir/excludearch-$koji.log done -send_fedmsg done complete +send_fedmsg ${fedmsg_json_done} ${DIST} complete exit 0 diff --git a/scripts/fedmsg-functions.sh b/scripts/fedmsg-functions.sh new file mode 100644 index 0000000..1dfc268 --- /dev/null +++ b/scripts/fedmsg-functions.sh @@ -0,0 +1,37 @@ +# fedmsg-functions +# +# This is a bash shell script that is meant to be sourced by other scripts +# and aims to deliver functions common to sending messages to fedmsg[0] +# in rel-eng shell scripts. +# +# [0] - http://www.fedmsg.com/en/latest/ + + +# NOTES: +# - Scripts that source this should define at least the following: +# FEDMSG_MODNAME +# FEDMSG_CERTPREFIX +# +# Example: +# +# FEDMSG_MODNAME="compose" +# FEDMSG_CERTPREFIX="bodhi" +# source fedmsg-functions.sh +# +# fedmsg_json_start=$(printf '{"log": "start", "branch": "f24", "arch": "x86_64"}') +# send_fedmsg ${fedmsg_json_start} f24 start + +function send_fedmsg() +{ + jsoninput="${1}" + dist="${2}" + topic="${3}" + + # Emit a message using bodhi's cert (since we should be running as "masher"). + printf ${jsoninput} | fedmsg-logger \ + --cert-prefix ${FEDMSG_CERTPREFIX} \ + --modname ${FEDMSG_MODNAME} \ + --topic "${dist}.${topic}" \ + --json-input +} + diff --git a/scripts/make-updates b/scripts/make-updates index b513284..58c5327 100755 --- a/scripts/make-updates +++ b/scripts/make-updates @@ -21,12 +21,20 @@ SHORTVERSION=$VERSION SHORTCOMPOSE=$(echo $VERSION|sed -e 's|.*_||g') } +FEDMSG_MODNAME="compose" +FEDMSG_CERTPREFIX="bodhi" +fedmsg_json_start=$(printf '{"log": "start", "branch": "%s"}' "${BRANCH}") +fedmsg_json_done=$(printf '{"log": "done", "branch": "%s"}' "${BRANCH}") +. fedmsg-functions.sh + FULLPATH=$(pwd) pushd $KICKSTARTS git reset --hard git checkout f$VERSION git pull --rebase +send_fedmsg ${fedmsg_json_start} ${BRANCH} compose.make-updates.start +send_fedmsg ${fedmsg_json_start} ${BRANCH} compose.cloudimg-build.start $FULLPATH/build-cloud-images "$VERSION" "$DATE" "$BRANCH" "$COMPOSE" popd @@ -39,6 +47,8 @@ git pull --rebase mock -r fedora-$VERSION-compose-x86_64 --init || exit 1 mock -r fedora-$VERSION-compose-x86_64 --install lorax rpm-ostree || exit 1 mock -r fedora-$VERSION-compose-x86_64 --shell "mkdir -p ${DESTDIR}/Cloud_Atomic/x86_64/iso; mkdir -p ${DESTDIR}/logs" + +send_fedmsg ${fedmsg_json_start} ${BRANCH} compose.atomic-lorax.start mock -r fedora-$VERSION-compose-x86_64 --shell "lorax --nomacboot -p Fedora -v ${SHORTVERSION} -r ${SHORTCOMPOSE} \ -s http://infrastructure.fedoraproject.org/pub/fedora/linux/releases/$VERSION/Everything/x86_64/os/ \ -i fedora-productimg-atomic \ @@ -56,6 +66,7 @@ mock -r fedora-$VERSION-compose-x86_64 --shell "lorax --nomacboot -p Fedora -v $ ${DESTDIR}/Cloud_Atomic/x86_64/os/ " || exit 1 mock -r fedora-$VERSION-compose-x86_64 --shell "cp -l ${DESTDIR}/Cloud_Atomic/x86_64/os/images/boot.iso ${DESTDIR}/Cloud_Atomic/x86_64/iso/Fedora-Cloud_Atomic-x86_64-${VERSION}-${DATE}.iso" || exit 1 mock -r fedora-$VERSION-compose-x86_64 --shell "pushd ${DESTDIR}/Cloud_Atomic/x86_64/iso/ ;sha256sum -b --tag *iso >Fedora-Cloud_Atomic-${VERSION}-x86_64-CHECKSUM; popd" || exit 1 +send_fedmsg ${fedmsg_json_done} ${BRANCH} compose.atomic-lorax.done popd @@ -69,6 +80,7 @@ do break fi done +send_fedmsg ${fedmsg_json_done} ${BRANCH} compose.cloudimg-build.done sg releng "mkdir -p $FINALDEST" pushd $FINALDEST/ @@ -87,6 +99,7 @@ sg releng "sudo /usr/bin/cp -l /mnt/fedora_koji/koji/scratch/$USER/task_*/Fedora +send_fedmsg ${fedmsg_json_start} ${BRANCH} compose.cloudimg-checksum.start pushd $FINALDEST/Cloud-Images for arch in i386 x86_64; do pushd $arch/Images; sg releng "sha256sum --tag -b *qcow2 *raw.xz *box> Fedora-Cloud-Images-$arch-$VERSION-CHECKSUM"; popd; done popd @@ -98,11 +111,16 @@ popd pushd $FINALDEST/Docker/x86_64 sg releng "sha256sum --tag -b *tar.xz> Fedora-Docker-x86_64-$VERSION-CHECKSUM" popd +send_fedmsg ${fedmsg_json_done} ${BRANCH} compose.cloudimg-checksum.done + +send_fedmsg ${fedmsg_json_start} ${BRANCH} compose.cloudimg-staging.start # stage the composed tree to final locateion sg releng "mkdir $MIRRORDEST" sg releng "chmod 700 $MIRRORDEST" for type in Cloud_Atomic Docker Cloud-Images Cloud-Images-Untested; do sg releng "rsync -avhH $FINALDEST/$type/ $MIRRORDEST/$type/"; done sg releng "chmod 755 $MIRRORDEST" +send_fedmsg ${fedmsg_json_done} ${BRANCH} compose.cloudimg-staging.done +send_fedmsg ${fedmsg_json_done} ${BRANCH} compose.make-updates.done