From 318b1d7c1a02442a408ff66fe9c3d1df3f4eaf69 Mon Sep 17 00:00:00 2001 From: Maria Haider Date: Wed, 6 Sep 2023 13:28:12 +0200 Subject: [PATCH] more overlay files --- .../opt/mdqp/post.d/40-create-transitive | 39 +++++++++++++++++++ .../opt/mdqp/post.d/90-cleanup-stale-files | 6 +++ .../opt/mdqp/post.d/99-check-consistency | 35 +++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100755 natmd-test-common/overlay/opt/mdqp/post.d/40-create-transitive create mode 100755 natmd-test-common/overlay/opt/mdqp/post.d/90-cleanup-stale-files create mode 100755 natmd-test-common/overlay/opt/mdqp/post.d/99-check-consistency diff --git a/natmd-test-common/overlay/opt/mdqp/post.d/40-create-transitive b/natmd-test-common/overlay/opt/mdqp/post.d/40-create-transitive new file mode 100755 index 00000000..aebe5541 --- /dev/null +++ b/natmd-test-common/overlay/opt/mdqp/post.d/40-create-transitive @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +set -e + +base_url="http://localhost:8080" +base_dir="/opt/mdqp/work/signed_metadata" + +tmpfile=$(mktemp /tmp/"$(basename "$0")".XXXXXX) + + +for expression in "role-sp" "role-idp"; do + echo "Fetching up ${expression}" + + case $expression in + role-sp) + url="role/sp.xml" + file="/role/sp.xml" + ;; + role-idp) + url="role/idp.xml" + file="/role/idp.xml" + ;; + + *) + echo "Unsupported expression ${expression}" + exit 1 + ;; + esac + + curl ${base_url}/${url} -o "${tmpfile}" + if ! grep -q entityID "${tmpfile}" ; then + echo "No entityID found in file for ${expression}" + exit 1 + fi + full_path=${base_dir}${file} + mkdir -p "$(dirname ${full_path})" + mv "${tmpfile}" "${full_path}" + +done diff --git a/natmd-test-common/overlay/opt/mdqp/post.d/90-cleanup-stale-files b/natmd-test-common/overlay/opt/mdqp/post.d/90-cleanup-stale-files new file mode 100755 index 00000000..df757f60 --- /dev/null +++ b/natmd-test-common/overlay/opt/mdqp/post.d/90-cleanup-stale-files @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e + +# Cleanup stale files (removed files that the main script missout of removing (race)) +find /opt/mdqp/work/seen_metadata/ -type f -mtime +2 -print -delete diff --git a/natmd-test-common/overlay/opt/mdqp/post.d/99-check-consistency b/natmd-test-common/overlay/opt/mdqp/post.d/99-check-consistency new file mode 100755 index 00000000..b967ace8 --- /dev/null +++ b/natmd-test-common/overlay/opt/mdqp/post.d/99-check-consistency @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +set -e + + +metadata_dir="/opt/mdqp/work/incoming_metadata/" +signed_dir="/opt/mdqp/work/signed_metadata/entities/" + +loaded_entites_in_pyff=$(curl -s 172.16.0.2:8080/api/status | jq .store.size) +entities_on_disk=$(find ${metadata_dir} -type f -printf "%f\n" |sort |uniq | wc -l) + +exit_status=0 +if [ "${loaded_entites_in_pyff}" -ne "${entities_on_disk}" ]; then + echo "Pyff has ${loaded_entites_in_pyff} entites loaded but there are ${entities_on_disk} entities in ${metadata_dir}. Please investigate pyffs logs." + exit_status=1 +fi + +incoming_files=$(find ${metadata_dir}/* -type f | wc -l) +signed_files=$(find ${signed_dir} -type f ! -name 'index.html' | wc -l) + +if [ "${incoming_files}" -ne "${signed_files}" ]; then + exit_status=1 + echo "The incoming metadata dir (${metadata_dir}) contains ${incoming_files} and the signed metadata dir (${signed_dir}) contains ${signed_files}. That ain't right. Please investigate." + echo "The following files might help you investigate:" + entities_file=$(mktemp) + + cd /opt/mdqp/work + grep entityID signed_metadata/entities/%7Bsha1%7D* | sed -e 's/.*entityID="\(.*\)" ID=.*/\1.xml/' -e 's/".*.xml/.xml/' -e 's@https://@@' -e 's@http://@@' | tr ':/?=' '----' | sort > "${entities_file}" + find incoming_metadata/ -type f -printf '%f\n' | sort | comm -3 - "${entities_file}" + if [ -f "${entities_file}" ]; then + rm "${entities_file}" + fi + +fi +exit ${exit_status}