cloud-infra: fix generate-change-metadata.sh 96/8296/3
authorCian Johnston <cian.johnston@est.tech>
Wed, 7 Apr 2021 16:14:04 +0000 (16:14 +0000)
committerCian Johnston <cian.johnston@est.tech>
Thu, 8 Apr 2021 08:40:26 +0000 (08:40 +0000)
After upgrading Gerrit, it appears that the endpoint being previously
used for querying change metadata changed format slightly. In the hope
of safeguarding against future upgrades, modifying the dependent change
metadata extraction piece to instead use command-line gerrit queries
over SSH.

Signed-off-by: Cian Johnston <cian.johnston@est.tech>
Change-Id: I94ca3df2d1033b44bd909e1393947312c76b56f4

jjb/cloud-infra/scripts/generate-change-metadata.sh

index 8b969dc55d662f61020aefa6c9c16d6170e7fff3..7517232223f6f36a5f7a0fea44dde353282250c2 100755 (executable)
@@ -42,8 +42,15 @@ function determine_dependency() {
 
   echo "Info  : Processing change $DEPENDENT_CHANGE_ID"
   declare -a DEPENDENT_CHANGE_METADATA
-  readarray -t DEPENDENT_CHANGE_METADATA < <(curl -s "https://gerrit.nordix.org/changes/?q=$DEPENDENT_CHANGE_ID&o=CURRENT_REVISION" 2>&1 \
-      | grep "project\|status\|current_revision\|ref\".*," | sed -e 's/\s//g' -e 's/,//g' -e 's/"//g'| cut -d: -f2)
+  # NOTE (cian): upgrades to Gerrit appear to change the output of the previously-used endpoint
+  # https://gerrit.nordix.org/changes/?q=$DEPENDENT_CHANGE_ID&o=CURRENT_REVISION so moving to
+  # gerrit SSH-based queries instead
+  GIT_BASE_SSH_CMD=$(echo "${GIT_BASE_SSH}" | sed -e 's#://# #g' | sed -e 's#:# -p #g')
+  readarray -t DEPENDENT_CHANGE_METADATA < <(
+    ${GIT_BASE_SSH_CMD} gerrit query --format=json change:${DEPENDENT_CHANGE_ID} --current-patch-set |\
+      head -1 |\
+      jq -r '[.project, .status, .currentPatchSet.revision, .currentPatchSet.ref] | join("\n")'
+  )
 
   # NOTE (fdegir): check if the dependeny change exists
   # and ignore if it doesn't