@@ -14,35 +14,59 @@ if [[ -z "$USERNAME" || -z "$PASSWORD" ]]; then
14
14
exit 1
15
15
fi
16
16
17
- echo " Authenticating to Splunk AppInspect API..."
17
+ echo " π Authenticating to Splunk AppInspect API..."
18
18
TOKEN=$( curl -s -u " $USERNAME :$PASSWORD " \
19
19
--url ' https://api.splunk.com/2.0/rest/login/splunk' | jq -r .data.token)
20
20
21
21
if [[ -z " $TOKEN " || " $TOKEN " == " null" ]]; then
22
- echo " Error: Failed to retrieve token."
22
+ echo " β Error: Failed to retrieve token."
23
23
exit 1
24
24
fi
25
25
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 \
28
28
-H " Authorization: bearer $TOKEN " \
29
- -H " Cache-Control: no-cache" \
30
29
-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" )
32
31
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 "
35
37
exit 1
36
38
fi
37
39
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 "
42
42
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 "
47
71
48
- echo " Report saved to $REPORT_PATH "
72
+ echo " π Report saved to $REPORT_PATH "
0 commit comments