Created 08-28-2017 08:44 PM
how to capture the last request ID from API , in order to trace the status ( as IN_PROCESS )
for example we run some API to restart a service , then I want to run API that will capture the last request ID
example of request "id"
{ "href" : "http://192.23.45.2.ur.com:8080/api/v1/clusters/HDP01/requests/17",
"Requests" : { "id" : 17,
"status" : "Accepted" }
Created 08-29-2017 05:29 AM
To list all the requests use the following API and see what is the maximum request ID (which will be the recent one, Higher the requestID more recent one it is):
# curl -sH "X-Requested-By: ambari" -u admin:admin -i http://localhost:8080/api/v1/clusters/Sandbox/requests?fields=Requests/request_status | grep -A 1 id | awk '{print $NF}' > /tmp/requests_details.txt; sed -e '1,2d' -e s'/--//g' -e 's/\n//g' -e 's/"//g' -e '/^$/d' /tmp/requests_details.txt | awk 'NR%2{printf "%s ",$0;next;}1'
Example Output:
185, COMPLETED 186, COMPLETED 187, COMPLETED 188, FAILED 189, COMPLETED 190, COMPLETED 191, COMPLETED 193, COMPLETED 195, COMPLETED 196, COMPLETED 197, COMPLETED 198, COMPLETED 199, COMPLETED 200, COMPLETED 201, COMPLETED 202, COMPLETED 203, COMPLETED 204, COMPLETED 206, ABORTED
.
.
Then if you want to see only the IN_PROGRESS requests then you can make the following API call.
# curl -sH "X-Requested-By: ambari" -u admin:admin -i http://localhost:8080/api/v1/clusters/Sandbox/requests?fields=Requests/request_status | grep -A 1 id | awk '{print $NF}' > /tmp/requests_details.txt; sed -e '1,2d' -e s'/--//g' -e 's/\n//g' -e 's/"//g' -e '/^$/d' /tmp/requests_details.txt | awk 'NR%2{printf "%s ",$0;next;}1' | grep -i 'IN_PROGRESS'
Example Output:
# curl -sH "X-Requested-By: ambari" -u admin:admin -i http://localhost:8080/api/v1/clusters/Sandbox/requests?fields=Requests/request_status | grep -A 1 id | awk '{print $NF}' > /tmp/requests_details.txt; sed -e '1,2d' -e s'/--//g' -e 's/\n//g' -e 's/"//g' -e '/^$/d' /tmp/requests_details.txt | awk 'NR%2{printf "%s ",$0;next;}1' | grep -i 'IN_PROGRESS' 207, IN_PROGRESS
.
Created 08-29-2017 05:29 AM
To list all the requests use the following API and see what is the maximum request ID (which will be the recent one, Higher the requestID more recent one it is):
# curl -sH "X-Requested-By: ambari" -u admin:admin -i http://localhost:8080/api/v1/clusters/Sandbox/requests?fields=Requests/request_status | grep -A 1 id | awk '{print $NF}' > /tmp/requests_details.txt; sed -e '1,2d' -e s'/--//g' -e 's/\n//g' -e 's/"//g' -e '/^$/d' /tmp/requests_details.txt | awk 'NR%2{printf "%s ",$0;next;}1'
Example Output:
185, COMPLETED 186, COMPLETED 187, COMPLETED 188, FAILED 189, COMPLETED 190, COMPLETED 191, COMPLETED 193, COMPLETED 195, COMPLETED 196, COMPLETED 197, COMPLETED 198, COMPLETED 199, COMPLETED 200, COMPLETED 201, COMPLETED 202, COMPLETED 203, COMPLETED 204, COMPLETED 206, ABORTED
.
.
Then if you want to see only the IN_PROGRESS requests then you can make the following API call.
# curl -sH "X-Requested-By: ambari" -u admin:admin -i http://localhost:8080/api/v1/clusters/Sandbox/requests?fields=Requests/request_status | grep -A 1 id | awk '{print $NF}' > /tmp/requests_details.txt; sed -e '1,2d' -e s'/--//g' -e 's/\n//g' -e 's/"//g' -e '/^$/d' /tmp/requests_details.txt | awk 'NR%2{printf "%s ",$0;next;}1' | grep -i 'IN_PROGRESS'
Example Output:
# curl -sH "X-Requested-By: ambari" -u admin:admin -i http://localhost:8080/api/v1/clusters/Sandbox/requests?fields=Requests/request_status | grep -A 1 id | awk '{print $NF}' > /tmp/requests_details.txt; sed -e '1,2d' -e s'/--//g' -e 's/\n//g' -e 's/"//g' -e '/^$/d' /tmp/requests_details.txt | awk 'NR%2{printf "%s ",$0;next;}1' | grep -i 'IN_PROGRESS' 207, IN_PROGRESS
.