Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function refreshAccessToken() {
  4. echo "getting access token..."
  5. ACCESSTOKEN=`curl -s "http://metadata/computeMetadata/v1/instance/service-accounts/default/token" -H "X-Google-Metadata-Request: True" | jq ".access_token" | sed 's/"//g'`
  6. echo "retrieved access token $ACCESSTOKEN"
  7. }
  8.  
  9. START=`date +%s%N`
  10.  
  11. DB_INSTANCE=$1
  12. GCS_FILE=$2
  13. SLEEP_SECONDS=$3
  14.  
  15. refreshAccessToken
  16.  
  17. CURL_URL="https://www.googleapis.com/sql/v1beta1/projects/myproject/instances/$DB_INSTANCE/import"
  18. CURL_OPTIONS="-s --header 'Content-Type: application/json' --header 'Authorization: OAuth $ACCESSTOKEN' --header 'x-goog-project-id:myprojectId' --header 'x-goog-api-version:1'"
  19. CURL_PAYLOAD="--data '{ "importContext": { "database": "mydbname", "kind": "sql#importContext", "uri": [ "$GCS_FILE" ]}}'"
  20. CURL_COMMAND="curl --request POST $CURL_URL $CURL_OPTIONS $CURL_PAYLOAD"
  21.  
  22. echo "executing $CURL_COMMAND"
  23.  
  24. CURL_RESPONSE=`eval $CURL_COMMAND`
  25. echo "$CURL_RESPONSE"
  26. OPERATION=`echo $CURL_RESPONSE | jq ".operation" | sed 's/"//g'`
  27.  
  28. echo "Import operation $OPERATION started..."
  29. CURL_URL="https://www.googleapis.com/sql/v1beta1/projects/myproject/instances/$DB_INSTANCE/operations/$OPERATION"
  30. STATE="RUNNING"
  31. while [[ $STATE == "RUNNING" ]]
  32. do
  33. echo "waiting for $SLEEP_SECONDS seconds for the import to finish..."
  34. sleep $SLEEP_SECONDS
  35. refreshAccessToken
  36. CURL_OPTIONS="-s --header 'Content-Type: application/json' --header 'Authorization: OAuth $ACCESSTOKEN' --header 'x-goog-project-id:myprojectId' --header 'x-goog-api-version:1'"
  37. CURL_COMMAND="curl --request GET $CURL_URL $CURL_OPTIONS"
  38. CURL_RESPONSE=`eval $CURL_COMMAND`
  39. STATE=`echo $CURL_RESPONSE | jq ".state" | sed 's/"//g'`
  40. END=`date +%s%N`
  41. ELAPSED=`echo "scale=8; ($END - $START) / 1000000000" | bc`
  42. echo "Import process $OPERATION for $GCS_FILE : $STATE, elapsed time $ELAPSED"
  43. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement