custom/oldsdk/Get-CVSQLInstanceBackupHistory.ps1
Add-AEnums function Get-CVSQLInstanceBackupHistory { <# .SYNOPSIS Method to retrieve backup history data for specific SQL instance. .DESCRIPTION Method to retrieve backup history data for specific SQL instance. .PARAMETER Name The SQL instance Name. .PARAMETER InstanceObject The SQL InstanceObject. .PARAMETER JobDetail Include full job details. .EXAMPLE Get-CVSQLInstanceBackupHistory .EXAMPLE Get-CVSQLInstanceBackupHistory -Name carbonWinCS1\commvault .EXAMPLE Get-CVSQLInstanceBackupHistory -Name CARBONWINCS1\COMMVAULT -JobDetail .EXAMPLE Get-CVSQLInstanceBackupHistory -Name CARBONWINCS1\COMMVAULT -JobDetail | Select-Object -ExpandProperty JobDetail .EXAMPLE Get-CVSQLInstance -Name carbonWinCS1\commvault | Get-CVSQLInstanceBackupHistory .OUTPUTS Outputs [PSCustomObject] containing SQL instance backup history details. .NOTES Author: Gary Stoops Company: Commvault #> [CmdletBinding(DefaultParameterSetName = 'ByName')] [OutputType([PSCustomObject])] param( [Parameter(Mandatory = $True, ParameterSetName = 'ByName')] [ValidateNotNullorEmpty()] [String] $Name, [Parameter(Mandatory = $True, ParameterSetName = 'ByObject', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] [ValidateNotNullorEmpty()] [System.Object] $InstanceObject, [Switch] $JobDetail ) begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" try { $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name $endpointSave = $sessionObj.requestProps.endpoint } catch { throw $_ } } process { Write-Debug -Message "$($MyInvocation.MyCommand): process" try { $sessionObj.requestProps.endpoint = $endpointSave if ($PSCmdlet.ParameterSetName -eq 'ByName') { $instanceObj = Get-CVSQLInstance -Name $Name if ($null -ne $instanceObj) { $InstanceObject = $instanceObj } else { Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): instance not found having name [$Name]" return } } $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{instanceId}', $InstanceObject.insId) $headerObj = Get-CVRESTHeader $sessionObj $body = '' $payload = @{} $payload.Add('headerObject', $headerObj) $payload.Add('body', $body) $validate = 'jobs' $response = Submit-CVRESTRequest $payload $validate if ($response.IsValid) { foreach ($job in $response.Content.jobs) { $backupTime = $job |` Select-Object @{Name='BackupTime';Expression={[timezone]::CurrentTimeZone.ToLocalTime(([datetime]'1/1/1970').AddSeconds($_.endTime))}}|` Select-Object -ExpandProperty BackupTime [PSCustomObject] $custom = New-Object PSObject $custom | Add-Member -NotePropertyName 'Client' -NotePropertyValue $InstanceObject.cName $custom | Add-Member -NotePropertyName 'Instance' -NotePropertyValue $InstanceObject.insName $custom | Add-Member -NotePropertyName 'JobId' -NotePropertyValue $job.jobId if ($JobDetail -and $job.noDBs -gt 0) { $sessionObj = Get-CVSessionDetail 'GetSQLInstanceJobDetail' $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{instanceId}', $job.insId) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $job.jobId) $headerObj = Get-CVRESTHeader $sessionObj $body = '' $payload = @{} $payload.Add('headerObject', $headerObj) $payload.Add('body', $body) $validate = 'dbBackups' $response2 = Submit-CVRESTRequest $payload $validate if ($response2.IsValid) { $custom | Add-Member -NotePropertyName 'JobDetail' -NotePropertyValue $response2.Content.dbBackups } else { $custom | Add-Member -NotePropertyName 'JobDetail' -NotePropertyValue $null Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): job details for instance [$Name] are not available" } } else { $custom | Add-Member -NotePropertyName 'JobDetail' -NotePropertyValue $null } $custom | Add-Member -NotePropertyName 'BackupSize' -NotePropertyValue $job.bkpSize $custom | Add-Member -NotePropertyName 'BackupTime' -NotePropertyValue $backupTime Write-Output $custom } } else { Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): backup history for instance [$Name] is not available" } } catch { throw $_ } } end { Write-Debug -Message "$($MyInvocation.MyCommand): end" } } |