@@ -14,35 +14,59 @@ if [[ -z "$USERNAME" || -z "$PASSWORD" ]]; then
1414 exit 1
1515fi
1616
17- echo " Authenticating to Splunk AppInspect API..."
17+ echo " π Authenticating to Splunk AppInspect API..."
1818TOKEN=$( curl -s -u " $USERNAME :$PASSWORD " \
1919 --url ' https://api.splunk.com/2.0/rest/login/splunk' | jq -r .data.token)
2020
2121if [[ -z " $TOKEN " || " $TOKEN " == " null" ]]; then
22- echo " Error: Failed to retrieve token."
22+ echo " β Error: Failed to retrieve token."
2323 exit 1
2424fi
2525
26- echo " Token retrieved successfully. Submitting app for validation..."
27- REPORT_HREF =$( curl -s -X POST \
26+ echo " β
Token retrieved successfully. Submitting app for validation..."
27+ RESPONSE =$( curl -s -X POST \
2828 -H " Authorization: bearer $TOKEN " \
29- -H " Cache-Control: no-cache" \
3029 -F " app_package=@$APP_PACKAGE " \
31- --url " https://appinspect.splunk.com/v1/app/validate" | jq -r .links[1].href )
30+ " https://appinspect.splunk.com/v1/app/validate" )
3231
33- if [[ -z " $REPORT_HREF " || " $REPORT_HREF " == " null" ]]; then
34- echo " Error: Failed to submit the app or retrieve report href."
32+ REQUEST_ID=$( echo " $RESPONSE " | jq -r ' .request_id' )
33+
34+ if [[ -z " $REQUEST_ID " || " $REQUEST_ID " == " null" ]]; then
35+ echo " β Error: Failed to submit app or retrieve request ID."
36+ echo " $RESPONSE "
3537 exit 1
3638fi
3739
38- REPORT_URL=" https://appinspect.splunk.com$REPORT_HREF "
39- echo " App submitted. Report URL: $REPORT_URL "
40- echo " Waiting 30 seconds for processing..."
41- sleep 30
40+ STATUS_URL=" https://appinspect.splunk.com/v1/app/validate/status/$REQUEST_ID "
41+ REPORT_URL=" https://appinspect.splunk.com/v1/app/report/$REQUEST_ID "
4242
43- echo " Fetching report..."
44- curl -s -X GET \
45- -H " Authorization: bearer $TOKEN " \
46- --url " $REPORT_URL " > " $REPORT_PATH "
43+ echo " π€ App submitted. Request ID: $REQUEST_ID "
44+ echo " β³ Polling validation status..."
45+
46+ for i in {1..10}; do
47+ STATUS_RESPONSE=$( curl -s -H " Authorization: bearer $TOKEN " " $STATUS_URL " )
48+ STATUS=$( echo " $STATUS_RESPONSE " | jq -r .status)
49+
50+ echo " π Status check #$i : $STATUS "
51+
52+ if [[ " $STATUS " == " SUCCESS" ]]; then
53+ echo " β
Validation succeeded!"
54+ break
55+ elif [[ " $STATUS " == " FAILURE" ]]; then
56+ echo " β Validation failed."
57+ echo " $STATUS_RESPONSE "
58+ exit 1
59+ fi
60+
61+ sleep 5
62+ done
63+
64+ if [[ " $STATUS " != " SUCCESS" ]]; then
65+ echo " β Timeout: Validation did not complete within expected time."
66+ exit 1
67+ fi
68+
69+ echo " π₯ Downloading validation report..."
70+ curl -s -H " Authorization: bearer $TOKEN " " $REPORT_URL " > " $REPORT_PATH "
4771
48- echo " Report saved to $REPORT_PATH "
72+ echo " π Report saved to $REPORT_PATH "
0 commit comments