...
- Fist make sure the backup file that you want to restore is in the S3 bucket that belongs to that service. A service can only download files from its own bucket.
- Once the backup in place in S3 we are ready to authenticate and get an administrator's session token:
Code Block curl -i -k -H sessionToken:YourSessionToken -H Accept:application/json -H Content-Type:application/json -d '{ "email": "<admin username>", "password": "<admin password>" }' http://localhost:8080/services-authentication-0.6-SNAPSHOT/auth/v1/session
- Now use the administrator's token to start the restore daemon. You must provide the file name of the backup file found on S3 to the daemon:
Request
ResponseCode Block curl -i -k -H sessionToken:YourSessionToken -H Accept:application/json -H Content-Type:application/json -d '{ "url": "BackupDaemonJob6696-911306061719227050.zip" }' http://localhost:8080/services-repository-0.6-SNAPSHOT/repo/v1/startRestoreDaemon
Code Block HTTP/1.1 201 Created Server: Apache-Coyote/1.1 Content-Type: application/json Transfer-Encoding: chunked Date: Thu, 18 Aug 2011 23:31:28 GMT { "id":"4", "type":"RESTORE", "status":"STARTED", "progresssMessage":"Starting...", "progresssCurrent":0, "progresssTotal":0, "errorMessage":null, "errorDetails":null, "backupUrl":null, "totalTimeMS":0, "startedBy":"platform@sagebase.org", "startedOn":1313710288153 }
- Once the daemon is started its progress can be monitored in the same way as we monitored the backup daemon, using the 'id' provided by the /startRestoreDaemon:
Request
ResponseCode Block curl -i -k -H sessionToken:YourSessionToken -H Accept:application/json -H Content-Type:application/json http://localhost:8080/services-repository-0.6-SNAPSHOT/repo/v1/daemonStatus/4
Just like in our backup example, the restore failed as indicated by the 'status'='FAILED'. Again it looks like the service did not have permission to download the S3 file. Upon closer inspection we find that we have a cut and paste error with the file name. Once our error is identified, we can start another restore daemon with the following results:Code Block HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: application/json Transfer-Encoding: chunked Date: Thu, 18 Aug 2011 23:37:16 GMT { "id":"4", "type":"RESTORE", "status":"FAILED", "progresssMessage":"Starting to download the file from S3...", "progresssCurrent":0, "progresssTotal":0, "errorMessage":"Access Denied", "errorDetails":"Status Code: 403, AWS Request ID: 5A6F56E7416E1203, AWS Error Code: AccessDenied, AWS Error Message: Access Denied, S3 Extended Request ID: ...", "totalTimeMS":781, "startedBy":"platform@sagebase.org", "startedOn":1313710288153 }
Response
This time we can see that the restore 'status'='COMPLETED', and that the entire restore took ~47 seconds to complete. We have successfully migrated all data from the staging to our local repository service.Code Block HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: application/json Transfer-Encoding: chunked Date: Thu, 18 Aug 2011 23:59:13 GMT { "id":"5", "type":"RESTORE", "status":"COMPLETED", "progresssMessage":"Finished: RESTORE", "progresssCurrent":1164611, "progresssTotal":1164611, "errorMessage":null, "errorDetails":null, "backupUrl":"https://s3.amazonaws.com/devdata.sagebase.org/BackupDaemonJob6696-5911306061719227050.zip", "totalTimeMS":46800, "startedBy":"platform@sagebase.org", "startedOn":1313711855784 }