HP Matrix 7.2 KVM Private Cloud Backup and Restore
Table Of Contents
- Abstract
 - Matrix Operating Environment with Matrix KVM Private Cloud Overview
 - Backup and restore strategy for Matrix OE with Matrix KVM Private Cloud
 - Matrix KVM Private Cloud backup and restore
 - Matrix KVM Private Cloud Images repository backup and restore
 - Matrix KVM Private Cloud High Availability (HA) cluster configuration backup and restore
 - Appendix A: KVM Private Cloud restore resynchronization actions
 - Appendix B: Images repository restore resynchronization actions
 - Appendix C: Alerts and Audit messages
 - Appendix D: HA Cluster details
 - Appendix E: Backup and Restore REST API
 - Appendix F: Sample Backup Script
 - Appendix G: Sample Restore Script
 - References
 - For more information
 

 $fullStatusUri = $hostname + $restoreResponse.uri 
 } 
 do 
 { 
 try 
 { 
 # create a new webrequest and add the proper headers (new header, auth is needed for 
authorization 
 $rawStatusResp = setup-request -uri $fullStatusUri -method "GET" -accept 
"application/json" -contentType "application/json" -authValue $authinfo 
 $statusResponse = $rawStatusResp | convertFrom-Json 
 $trimmedPercent = ($statusResponse.percentComplete) / 5 
 $progressBar = "[" + "=" * $trimmedPercent + " " * (20 - $trimmedPercent) + "]" 
 Write-Host "`rRestore progress: $progressBar " $statusResponse.percentComplete "%" -
NoNewline 
 } 
 catch [Net.WebException] 
 { 
 try 
 { 
 $errorResponse = $error[0].Exception.InnerException.Response.getResponseStream() 
 $sr = New-Object IO.StreamReader ($errorResponse) 
 $rawErrorStream = $sr.readtoend() 
 $error[0].Exception.InnerException.Response.close() 
 $errorObject = $rawErrorStream | convertFrom-Json 
 Write-Host $errorObject.message $errorObject.recommendedActions 
 } 
 catch [System.Exception] 
 { 
 Write-Host "`r`n" $error[1].Exception 
 } 
 return 
 } 
 if ($statusResponse.status -eq "SUCCEEDED") 
 { 
 Write-Host "`r`nRestore complete!" 
 return 
 } 
 if ($statusResponse.status -eq "FAILED") 
 { 
 Write-Host "`r`nRestore failed! System should now undergo a reset to factory defaults." 
 } 
 Start-Sleep 10 
 } while ($statusResponse.status -eq "IN_PROGRESS") 
 return 
} 
##### Recovers Uri to the restore resource if connection lost ##### 
function recover-restoreID ([string]$hostname) 
{ 
 <# 
 .DESCRIPTION 
 Uses GET requests to check the status of the restore process. 
 .PARAMETER hostname 
 The appliance to end the request to. 
 .INPUTS 
 None, does not accept piping 
 .OUTPUTS 
 The Uri of the restore task in string form. 
 .EXAMPLE 
 $reacquiredUri = recover-restoredID $hostname 
 #> 
 $idUri = "/rest/restores/" 
 $fullIdUri = $hostname + $idUri 
 try 
 { 
 $rawIdResp = setup-request -uri $fullIdUri -method "GET" -contentType "application/json" -
accept "application/json" -authValue "foo" 
 $idResponse = $rawIdResp | convertFrom-Json 
 } 
 catch [Net.WebException] 
 { 
 $_.Exception.message 
 return 










