From 7a00c292248878683578b24321ba6e27e2376bb1 Mon Sep 17 00:00:00 2001 From: gstoops Date: Tue, 21 Jul 2020 15:29:17 -0400 Subject: [PATCH 01/21] Adding Blackout Window support to 'Commvault.Policies' module --- .../Commvault.Policies.psd1 | Bin 8066 -> 8558 bytes .../Commvault.Policies.psm1 | 736 +++++++++++++++++- .../Commvault.RESTSession.psd1 | Bin 8200 -> 8200 bytes .../Commvault.RESTSession.psm1 | 14 +- 4 files changed, 741 insertions(+), 9 deletions(-) diff --git a/Modules/Commvault.Policies/Commvault.Policies.psd1 b/Modules/Commvault.Policies/Commvault.Policies.psd1 index 94ed16a399df30194da475fead7bd58cf90636f0..edbd7883c7ef26e2d263010bb5cada74c97055dd 100644 GIT binary patch delta 462 zcmZp&f9JHpi;3Bg!C6&P?sbq05aRE81;T?S`{Fa{@v9EL=O zWQJ^pe1=k>XgEVALmop4kXO#2&HywINCuOr-Z24aKne*K1OY9`1zK4Kq=|AC5uS7f zdLxk`3Ftjy%=BbP2dd9!C<3bX00u!iLk5sl#NY!YL9WVS2m%HV$gE;muuT3eB -[CmdletBinding(DefaultParameterSetName = 'Default')] + [CmdletBinding(DefaultParameterSetName = 'Default')] [OutputType([PSCustomObject])] param( [Parameter(Mandatory = $False)] @@ -639,7 +639,7 @@ function Get-CVStoragePolicy { } foreach ($policy in $policiesToProcess) { if ($AllProperties) { - $sessionObj = Get-CVSessionDetail 'GetStoragePolicyDetails' + $sessionObj = Get-CVSessionDetail 'GetStoragePolicyDetail' if ($PSCmdlet.ParameterSetName -eq 'ByName' -or $PSCmdlet.ParameterSetName -eq 'ByObject') { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{storagePolicyId}', $policy.storagePolicyAndCopy.storagePolicyId) @@ -695,4 +695,736 @@ function Get-CVStoragePolicy { throw $_ } } +} + + +function Get-CVBlackoutWindow { +<# +.SYNOPSIS + Method to retrieve blackout window rules from the CommServe. + +.DESCRIPTION + Method to retrieve blackout window rules from the CommServe. + Output can be filtered by rule Id, Name, CommcellId, ClientId, AppTypeId, InstanceId, BackupsetId, SubclientId, ClientgroupId, CompanyId, or SchedulePolicyId. + +.PARAMETER Name + Specify blackout window rules to be output by Name. + +.PARAMETER Id + Specify blackout window rule to be output by Id. + +.PARAMETER CommcellId + Specify blackout window rule subset by CommcellId (default = 2). + +.PARAMETER ClientId + Specify blackout window rule subset by ClientId. + +.PARAMETER AppTypeId + Specify blackout window rule subset by AppTypeId. + +.PARAMETER InstanceId + Specify blackout window rule subset by InstanceId. + +.PARAMETER BackupsetId + Specify blackout window rule subset by BackupsetId. + +.PARAMETER SubclientId + Specify blackout window rule subset by SubclientId. + +.PARAMETER ClientgroupId + Specify blackout window rule subset by ClientgroupId. + +.PARAMETER CompanyId + Specify blackout window rule subset by CompanyId. + +.PARAMETER SchedulePolicyId + Specify blackout window rule subset by SchedulePolicyId. + +.EXAMPLE + Get-CVBlackoutWindow + +.EXAMPLE + Get-CVBlackoutWindow -Name CommCell-BWR-1 + +.EXAMPLE + Get-CVBlackoutWindow -Id 3 + +.EXAMPLE + Get-CVBlackoutWindow -ClientgroupId 4 + +.EXAMPLE + Get-CVBlackoutWindow -ClientId 2 + +.EXAMPLE + Get-CVBlackoutWindow -AppTypeId 81 + +.EXAMPLE + Get-CVBlackoutWindow -InstanceId 9 + +.OUTPUTS + Outputs [PSCustomObject] containing blackout window rules. + +.NOTES + Author: Gary Stoops + Company: Commvault +#> + [CmdletBinding(DefaultParameterSetName = 'ByList')] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $False, ParameterSetName = 'ByName', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [String] $Name, + + [Parameter(Mandatory = $False, ParameterSetName = 'ById', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $Id, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $CommcellId = 2, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $ClientId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $AppTypeId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $InstanceId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $BackupsetId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $SubclientId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $ClientgroupId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $CompanyId = 0, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $SchedulePolicyId = 0 + ) + + begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" + + try { + if ($PSCmdlet.ParameterSetName -eq 'ById') { + $sessionObj = Get-CVSessionDetail 'GetBlackoutWindowDetail' + } + else { + $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name + } + $endpointSave = $sessionObj.requestProps.endpoint + $outputCount = 0 + } + catch { + throw $_ + } + } + + process { Write-Debug -Message "$($MyInvocation.MyCommand): process" + + try { + $sessionObj.requestProps.endpoint = $endpointSave + + if ($PSCmdlet.ParameterSetName -eq 'ById') { + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{ruleId}', $Id) + } + else { + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{commcellId}', $CommcellId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{clientId}', $ClientId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{appTypeId}', $AppTypeId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{instanceId}', $InstanceId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{backupsetId}', $BackupsetId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{subclientId}', $SubclientId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{clientgroupId}', $ClientgroupId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{companyId}', $CompanyId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{schedulePolicyId}', $SchedulePolicyId) + } + + $validate = 'operationWindow' + + $headerObj = Get-CVRESTHeader $sessionObj + $body = '' + $payload = @{ } + $payload.Add("headerObject", $headerObj) + $payload.Add("body", $body) + + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + foreach ($rule in $response.Content.operationWindow) { + if ($PSCmdlet.ParameterSetName -eq 'ByName') { + if ($Name -eq $rule.name) { + Write-Output $rule + $outputCount++ + } + } + else { # 'ByList' + Write-Output $rule + $outputCount++ + } + } + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + + try { + if ($outputCount -eq 0) { + if ($PSCmdlet.ParameterSetName -eq 'ById') { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): blackout window rule not found having Id [$Id]" + } + elseif ($PSCmdlet.ParameterSetName -eq 'ByName') { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): blackout window rule not found having name [$name]" + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): no blackout window rules found" + } + } + } + catch { + throw $_ + } + } +} + + +function Remove-CVBlackoutWindow { +<# +.SYNOPSIS + Method to remove/delete an blackout window rule from the CommServe. + +.DESCRIPTION + Method to remove/delete an blackout window rule from the CommServe. + +.PARAMETER Id + Specify blackout window rule to be removed by Id. + +.PARAMETER Force + Switch to Force override of default 'WhatIf' confirmation behavior. + +.EXAMPLE + Remove-CVBlackoutWindow -Id 42 + +.OUTPUTS + Outputs [PSCustomObject] containing remove rule result. + +.NOTES + Author: Gary Stoops + Company: Commvault +#> + [CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = 'High')] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $Id, + + [Switch] $Force + ) + + 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 + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{ruleId}', $Id) + + $headerObj = Get-CVRESTHeader $sessionObj + $body = '' + $payload = @{ } + $payload.Add("headerObject", $headerObj) + $payload.Add("body", $body) + $validate = '' + + if ($Force -or $PSCmdlet.ShouldProcess($Id)) { + $response = Submit-CVRESTRequest $payload $validate + } + else { + $response = Submit-CVRESTRequest $payload $validate -DryRun + } + + if ($response.IsValid) { + Write-Output $response.Content + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): remove workflow request failed for Id [$Id]" + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + + +function Set-CVBlackoutWindow { +<# +.SYNOPSIS + Method to set/update a blackout window rule. + +.DESCRIPTION + Method to set/update a blackout window rule. + +.PARAMETER Properties + Piped-in Properties set. + +.PARAMETER Force + Switch to Force override of default 'WhatIf' confirmation behavior. + +.EXAMPLE + PS C:\>$props = Get-CVBlackoutWindow -Name 'My Blackout Rule' + PS C:\>$props.name = 'Your Blackout Rule' + PS C:\>$props | Set-CVBlackoutWindow -Force + +.EXAMPLE + PS C:\>$props = Get-CVBlackoutWindow -Id 7 + PS C:\>$props.operations = @(8, 512, 524888) + PS C:\>$props | Set-CVBlackoutWindow -Force + +.OUTPUTS + Outputs [PSCustomObject] containing job submission result. + +.NOTES + Author: Gary Stoops + Company: Commvault +#> + [CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = 'Medium')] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [System.Object] $Properties, + + [Switch] $Force + ) + + 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 ($Force -or $PSCmdlet.ShouldProcess($Properties.name)) { + ProcessBlackoutWindowUpdate $sessionObj $Properties $False + } + else { + ProcessBlackoutWindowUpdate $sessionObj $Properties $True + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + + +function Add-CVBlackoutWindow { +<# +.SYNOPSIS + Method to add/create an blackout window rule. + +.DESCRIPTION + Method to add/create an blackout window rule. + +.PARAMETER Properties + Piped-in Properties set. + +.PARAMETER Force + Switch to Force override of default 'WhatIf' confirmation behavior. + +.EXAMPLE + PS C:\>$props = Get-CVBlackoutWindow -Name 'My Blackout Rule' + PS C:\>$props.name='Your Blackout Rule' + PS C:\>$props | Add-CVBlackoutWindow -Force + +.OUTPUTS + Outputs [PSCustomObject] containing job submission result. + +.NOTES + Author: Gary Stoops + Company: Commvault +#> + [CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = 'Medium')] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [System.Object] $Properties, + + [Switch] $Force + ) + + 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 ($Force -or $PSCmdlet.ShouldProcess($Properties.name)) { + ProcessBlackoutWindowUpdate $sessionObj $Properties $False + } + else { + ProcessBlackoutWindowUpdate $sessionObj $Properties $True + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + + +function Enable-CVBlackoutWindowIgnoreHigherLevelRules { +<# +.SYNOPSIS + Method to enable 'ignore CommCell higher-level blackout window rules' by entity. + +.DESCRIPTION + Method to enable 'ignore CommCell higher-level blackout window rules' by entity. + +.PARAMETER ClientId + Specify entity by ClientId. + +.PARAMETER AppTypeId + Specify entity by AppTypeId. + +.PARAMETER InstanceId + Specify entity by InstanceId. + +.PARAMETER BackupsetId + Specify entity by BackupsetId. + +.PARAMETER SubclientId + Specify entity by SubclientId. + +.PARAMETER Force + Switch to Force override of default 'WhatIf' confirmation behavior. + +.EXAMPLE + Enable-CVBlackoutWindowIgnoreHigherLevelRules -SubclientId 4 + +.OUTPUTS + Outputs [PSCustomObject] containing result code. + +.NOTES + Author: Gary Stoops + Company: Commvault +#> + [CmdletBinding()] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $ClientId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $AppTypeId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $InstanceId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $BackupsetId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $SubclientId, + + [Switch] $Force + ) + + 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 + ProcessBlackoutWindowIgnoreHigherLevelRules $sessionObj $ClientId $AppTypeId $InstanceId $BackupsetId $SubclientId $Force.IsPresent + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + + +function Disable-CVBlackoutWindowIgnoreHigherLevelRules { +<# +.SYNOPSIS + Method to disable 'ignore CommCell higher-level blackout window rules' by entity. + +.DESCRIPTION + Method to disable 'ignore CommCell higher-level blackout window rules' by entity. + +.PARAMETER ClientId + Specify entity by ClientId. + +.PARAMETER AppTypeId + Specify entity by AppTypeId. + +.PARAMETER InstanceId + Specify entity by InstanceId. + +.PARAMETER BackupsetId + Specify entity by BackupsetId. + +.PARAMETER SubclientId + Specify entity by SubclientId. + +.PARAMETER Force + Switch to Force override of default 'WhatIf' confirmation behavior. + +.EXAMPLE + Disable-CVBlackoutWindowIgnoreHigherLevelRules -SubclientId 4 + +.OUTPUTS + Outputs [PSCustomObject] containing result code. + +.NOTES + Author: Gary Stoops + Company: Commvault +#> + [CmdletBinding()] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $ClientId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $AppTypeId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $InstanceId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $BackupsetId, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $SubclientId, + + [Switch] $Force + ) + + 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 + ProcessBlackoutWindowIgnoreHigherLevelRules $sessionObj $ClientId $AppTypeId $InstanceId $BackupsetId $SubclientId $Force.IsPresent + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + + +function ProcessBlackoutWindowUpdate([System.Object] $Session, [System.Object] $Properties, [bool] $DryRun) { + <# + ruleEnabled : True + doNotSubmitJob : False + endDate : 1588230000 + level : 1 + name : GRS-LaptopClientsBoR + ruleId : 1 + startDate : 1588057200 + operations : {1} + company : @{_type_=61; providerId=0; providerDomainName=Commcell} + entity : @{schedulePolicyId=0; subclientId=0; clientGroupId=4; applicationId=0; clientName=Laptop Clients; backupsetId=0; commCellName=carbonwincs1; instanceId=0; schedulePolicyName=; clientId=0; subclientName=; backupsetName=; + instanceName=; clientGroupName=Laptop Clients; _type_=0; appName=} + dayTime : {@{startTime=28800; endTime=64800; dayOfWeek=System.Object[]}} { + #> + $body = @{} + $opWin = @{} + if (HasProperty $Properties 'ruleEnabled') { + $opWin.Add('ruleEnabled', $Properties.ruleEnabled) + } + if (HasProperty $Properties 'doNotSubmitJob') { + $opWin.Add('doNotSubmitJob', $Properties.doNotSubmitJob) + } + if (HasProperty $Properties 'endDate') { + $opWin.Add('endDate', $Properties.endDate) + } + if (HasProperty $Properties 'level') { + $opWin.Add('level', $Properties.level) + } + if (HasProperty $Properties 'name') { + $opWin.Add('name', $Properties.name) + } + if (HasProperty $Properties 'ruleId') { + $opWin.Add('ruleId', $Properties.ruleId) + } + if (HasProperty $Properties 'startDate') { + $opWin.Add('startDate', $Properties.startDate) + } + if (HasProperty $Properties 'operations') { + $opWin.Add('operations', $Properties.operations) + } + if (HasProperty $Properties 'company') { + $opWin.Add('company', $Properties.company) + } + if (HasProperty $Properties 'dayTime') { + $opWin.Add('dayTime', $Properties.dayTime) + } + + $entity = $Properties.entity + $body.Add('operationWindow', $opWin) + $body.Add('entity', $entity) + $body = ($body | ConvertTo-Json -Depth 10) + + $headerObj = Get-CVRESTHeader $sessionObj + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = '' + + if (-not $DryRun) { + $response = Submit-CVRESTRequest $payload $validate + } + else { + $response = Submit-CVRESTRequest $payload $validate -DryRun + } + + Write-Output $response.Content +} + + +function ProcessBlackoutWindowIgnoreHigherLevelRules { + [CmdletBinding(SupportsShouldProcess = $True, ConfirmImpact = 'High')] + [OutputType([PSCustomObject])] + param( + [System.Object] $Session, + [Int32] $ClientId, + [Int32] $AppTypeId, + [Int32] $InstanceId, + [Int32] $BackupsetId, + [Int32] $SubclientId, + [bool] $Force + ) + + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{clientId}', $ClientId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{appTypeId}', $AppTypeId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{instanceId}', $InstanceId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{backupsetId}', $BackupsetId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{subclientId}', $SubclientId) + + $headerObj = Get-CVRESTHeader $sessionObj + $body = '' + $payload = @{ } + $payload.Add("headerObject", $headerObj) + $payload.Add("body", $body) + + $validate = 'error' + + if ($Force -or $PSCmdlet.ShouldProcess($sessionObj.requestProps.endpoint)) { + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + if ($response.Content.error.errorCode -eq 0) { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand.Name): request was successful" + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand.Name): request failed: [$($response.Content.error)]" + } + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand.Name): request failed: [$($response.Content)]" + } + } + else { + $response = Submit-CVRESTRequest $payload $validate -DryRun + } +} + + +function HasProperty($Object, $PropertyName) +{ + $PropertyName -in $Object.PSobject.Properties.Name } \ No newline at end of file diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index 7f0730c6c8a9161850c61a38495312de542cdd3e..5ea1b4dcfd5b336457c5617fb0156d56193c1c19 100644 GIT binary patch delta 14 VcmeBh=y2E&!Nh2>Ig)9;EC3~;1g-!8 delta 14 VcmeBh=y2E&!Nh33Ig)9;EC3~&1g!u7 diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index f51aace..cf0aeb1 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -924,7 +924,7 @@ function GetAPIDetail ([String] $Request) { 'Set-CVBlackoutWindow' = @{ - Description = 'This operation updates an operation rule' + Description = 'Update an existing blackwout window rule' Endpoint = 'OperationWindow' Method = 'Put' Body = '' @@ -932,7 +932,7 @@ function GetAPIDetail ([String] $Request) { 'Add-CVBlackoutWindow' = @{ - Description = 'This operation creates an operation rule' + Description = 'Create a new blackwout window rule' Endpoint = 'OperationWindow' Method = 'Post' Body = '' @@ -940,24 +940,24 @@ function GetAPIDetail ([String] $Request) { 'Remove-CVBlackoutWindow' = @{ - Description = 'This operation deletes a blackout rule from the CommServe' + Description = 'Delete an existing blackwout window rule' Endpoint = 'OperationWindow/{ruleId}' Method = 'Delete' Body = '' } - 'Enable-CVIgnoreHigherLevelBlackoutWindowRules' = @{ + 'Enable-CVBlackoutWindowIgnoreHigherLevelRules' = @{ Description = 'Enable ignore higher-level blackout window rules feature' - Endpoint = 'OperationWindow/Ignore/Action/Enable?&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}' + Endpoint = 'OperationWindow/IgnoreHigherLevelRules/Action/Enable?&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}' Method = 'Put' Body = '' } - 'Disable-CVIgnoreHigherLevelBlackoutWindowRules' = @{ + 'Disable-CVBlackoutWindowIgnoreHigherLevelRules' = @{ Description = 'Disable ignore higher-level blackout window rules feature' - Endpoint = 'OperationWindow/Ignore/Action/Disable?&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}' + Endpoint = 'OperationWindow/IgnoreHigherLevelRules/Action/Disable?&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}' Method = 'Put' Body = '' } From a8e1c416cd1627e41f85f9792cf57b45ae8983f5 Mon Sep 17 00:00:00 2001 From: gstoops Date: Thu, 13 Aug 2020 09:10:42 -0400 Subject: [PATCH 02/21] Add PointInTime support to Restore-CVSQLDatabase and some light housekeeping --- .../Commvault.FileSystem.psd1 | Bin 8108 -> 8108 bytes .../Commvault.FileSystem.psm1 | 4 ++-- .../Commvault.RESTSession.psd1 | Bin 8200 -> 8200 bytes .../Commvault.RESTSession.psm1 | 9 ++------ .../Commvault.SQLServer.psd1 | Bin 8894 -> 8896 bytes .../Commvault.SQLServer.psm1 | 21 ++++++++++++++++-- .../Commvault.TypeDefinitions.psd1 | Bin 7908 -> 7908 bytes .../Commvault.TypeDefinitions.psm1 | 6 ----- .../Commvault.VirtualServer.psd1 | Bin 8856 -> 8856 bytes .../Commvault.VirtualServer.psm1 | 4 ++-- 10 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 b/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 index a38d0645cec06a45bdf58a08070c71561fbbb04e..9b538f49c981475990dd2a830cca5bab547b97e3 100644 GIT binary patch delta 14 VcmZ2uzs7z;5EG;6=3u5sSpX;{1djj! delta 14 VcmZ2uzs7z;5EG-x=3u5sSpX;>1dadz diff --git a/Modules/Commvault.FileSystem/Commvault.FileSystem.psm1 b/Modules/Commvault.FileSystem/Commvault.FileSystem.psm1 index 7ed2615..f72116a 100644 --- a/Modules/Commvault.FileSystem/Commvault.FileSystem.psm1 +++ b/Modules/Commvault.FileSystem/Commvault.FileSystem.psm1 @@ -225,7 +225,7 @@ function Search-CVClientFileSystem { [String] $BackupSetId, [Parameter(Mandatory = $False)] - [CVCopyPrecedence] $CopyPrecedence = 'Primary', + [Int32] $CopyPrecedence, [Parameter(Mandatory = $False)] [ValidateNotNullorEmpty()] @@ -358,7 +358,7 @@ function Search-CVClientFileSystem { if ($null -ne $subclientObj) { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{subclientId}', $subclientObj.subclientId) } $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{path}', $Path) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{backupsetId}', $BackupSetId) - $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{copyPrecedence}', $CopyPrecedence.value__) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{copyPrecedence}', $CopyPrecedence) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $JobId) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{proxy}', $Proxy) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{ma}', $MediaAgent) diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index 5ea1b4dcfd5b336457c5617fb0156d56193c1c19..0dd385d46058b7f283ca6edcc23717661984d94e 100644 GIT binary patch delta 14 VcmeBh=y2E&!Nh2}Ig)9;EC3~^1g`)9 delta 14 VcmeBh=y2E&!Nh2>Ig)9;EC3~;1g-!8 diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index cf0aeb1..a7af4a5 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -987,7 +987,6 @@ function GetAPIDetail ([String] $Request) { Description = 'Get information about SQL clones' Endpoint = 'sql/clones?client={clientId}&instance={instanceId}' - #Endpoint = 'sql/clones?client={clientId}&instance={instanceId}&propertyLevel={propertyLevel}&search_term={searchTerm}&cloneName={cloneName}&sourceInstance={sourceInstance}&destinationInstance={destinationInstance}&sourceDB={sourceDatabase}&sort={sort}&offset={offset}&limit={limit}' Method = 'Get' Body = '' } @@ -1028,16 +1027,14 @@ function GetAPIDetail ([String] $Request) { Description = 'Get backup history for a specific SQL database' Endpoint = 'sql/instance/{instanceId}/database/{databaseId}/history/backup' - #Endpoint = 'sql/instance/{instanceId}/database/{databaseId}/history/backup?latest={latest}&from={fromTime}&to={toTime}' Method = 'Get' Body = '' } - 'Get-CVSQLDatabaseBackupJob' = @{ + 'GetSQLDatabaseJobDetail' = @{ Description = 'Get SQL database backup job details for a specific instance/database/job' Endpoint = 'v2/sql/instances/{instanceId}/databases/{databaseId}/jobs/{jobId}' - #Endpoint = 'sql/instance/{instanceId}/database/{databaseId}/history/backup/{jobId}' Method = 'Get' Body = '' } @@ -1062,16 +1059,14 @@ function GetAPIDetail ([String] $Request) { Description = 'Get backup history for a specific SQL instance' EndPoint = 'sql/instance/{instanceId}/history/backup' - #EndPoint = 'sql/instance/{instanceId}/history/backup?latest={latest}&from={fromTime}&to={toTime}' Method = 'Get' Body = '' } - 'Get-CVSQLInstanceBackupJob' = @{ + 'GetSQLInstanceJobDetail' = @{ Description = 'Get SQL instance backup job details for a specific instance/job' Endpoint = 'v2/sql/instances/{instanceId}/jobs/{jobId}' - #Endpoint = 'sql/instance/{instanceId}/history/backup/{jobId}' Method = 'Get' Body = '' } diff --git a/Modules/Commvault.SQLServer/Commvault.SQLServer.psd1 b/Modules/Commvault.SQLServer/Commvault.SQLServer.psd1 index 77b7a84f3c3990898f56081274b76ea7db4fe2c0..2d89ce0a5acbb96da54aaf3a973f42018d1fdfda 100644 GIT binary patch delta 16 Xcmdnzdcbvq9}}}7gTZEhrhEkeGAsoE delta 14 VcmX@$y3cik9}}bH=0K)=1pq3*1lRxo diff --git a/Modules/Commvault.SQLServer/Commvault.SQLServer.psm1 b/Modules/Commvault.SQLServer/Commvault.SQLServer.psm1 index 28b239a..08b0e25 100644 --- a/Modules/Commvault.SQLServer/Commvault.SQLServer.psm1 +++ b/Modules/Commvault.SQLServer/Commvault.SQLServer.psm1 @@ -1067,7 +1067,7 @@ function Get-CVSQLDatabaseBackupHistory { $custom | Add-Member -NotePropertyName 'JobId' -NotePropertyValue $backup.jobId if ($JobDetail) { - $sessionObj = Get-CVSessionDetail 'Get-CVSQLDatabaseBackupJob' + $sessionObj = Get-CVSessionDetail 'GetSQLDatabaseJobDetail' $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{instanceId}', $backup.insId) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{databaseId}', $backup.dbId) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $backup.jobId) @@ -1414,6 +1414,12 @@ function Restore-CVSQLDatabase { .PARAMETER DatabaseObject Specify the database files to be restored by piping DatabaseObject. +.PARAMETER PointInTime + Specify the database files to be restored by PointInTime. + +.PARAMETER CopyPrecedence + Specify the database files to be restored by the CopyPrecedence applicable to your environment. + .PARAMETER DestClientName Restore out-of-place the SQL database files to DestClientName. @@ -1465,6 +1471,13 @@ function Restore-CVSQLDatabase { [ValidateNotNullorEmpty()] [System.Object] $DatabaseObject, + [Parameter(Mandatory = $False)] + [ValidateNotNullorEmpty()] + [Int32] $PointInTime, + + [Parameter(Mandatory = $False)] + [Int32] $CopyPrecedence, + [Switch] $OutofPlace, [Switch] $OverwriteExisting, [Switch] $Force @@ -1550,7 +1563,11 @@ function Restore-CVSQLDatabase { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{databaseId}', $DatabaseObject.dbId) $body = @{} + if ($PointInTime -gt 0) { + $body.Add('pointInTimeValue', $PointInTime) + } $body.Add('overwriteFiles', $OverwriteExisting.IsPresent) + $body.Add('copyPrecedence', $CopyPrecedence) $destEntity = @{} if ($OutofPlace) { @@ -2229,7 +2246,7 @@ function Get-CVSQLInstanceBackupHistory { $custom | Add-Member -NotePropertyName 'JobId' -NotePropertyValue $job.jobId if ($JobDetail -and $job.noDBs -gt 0) { - $sessionObj = Get-CVSessionDetail 'Get-CVSQLInstanceBackupJob' + $sessionObj = Get-CVSessionDetail 'GetSQLInstanceJobDetail' $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{instanceId}', $job.insId) $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $job.jobId) diff --git a/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psd1 b/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psd1 index 563a5239b86c2f0d86cd433b3a77a08179c63a1d..e9db8f70b8a501c10ffa0efdb8baf77a1b49d789 100644 GIT binary patch delta 14 VcmaE2`^0ub8WW?%=5(f782~Q=1xWw^ delta 14 VcmaE2`^0ub8WW@W=5(f782~Q)1xNq@ diff --git a/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psm1 b/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psm1 index 1a6be51..4397559 100644 --- a/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psm1 +++ b/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psm1 @@ -45,12 +45,6 @@ enum CVBackupType { Synthetic_Full = 4 } -enum CVCopyPrecedence { - Primary = 1 - Secondary = 2 - Cloud = 3 -} - enum CVSQLBackupType { full = 1 incremental = 2 diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 index 54099dae83061d3293d67eeb3d639107873e90ef..0495a6988cd13e7f95f12efe2d3a7834f98ceadf 100644 GIT binary patch delta 14 VcmbQ?I>U8C0u!Uj=0qlQ1pp@;1aANU delta 14 VcmbQ?I>U8C0u!V0=0qlQ1pp@&1a1HT diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 index 9a8cd73..34f16fb 100644 --- a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 +++ b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 @@ -1258,7 +1258,7 @@ function Restore-CVVirtualMachine { [Int32] $JobId, [Parameter(Mandatory = $False)] - [CVCopyPrecedence] $CopyPrecedence = 'Primary', + [Int32] $CopyPrecedence, [Parameter(Mandatory = $False)] [CVVSARestoreType] $RestoreType = 'FullVirtualMachine', @@ -1520,7 +1520,7 @@ function Restore-CVVirtualMachine { $parameters.Add('passUnconditionalOverride', $OverwriteExisting.IsPresent) $parameters.Add('powerOnVmAfterRestore', $PowerOnAfterRestore.IsPresent) if ($JobId -gt 0) { $parameters.Add('jobId', $JobId) } - #$parameters.Add('copyPrecedence', $CopyPrecedence.value__) #GRSTODO: job fails with this specified + #$parameters.Add('copyPrecedence', $CopyPrecedence) #GRSTODO: job fails with this specified if ($RestoreType -eq 'FullVirtualMachine') { if ($OutofPlace) { From 8390e4f382ca159e0e467e29e843d55748e49f76 Mon Sep 17 00:00:00 2001 From: gstoops Date: Thu, 27 Aug 2020 15:11:22 -0400 Subject: [PATCH 03/21] Added paging support to Get-CVJob command --- .../Commvault.JobManager.psd1 | Bin 8572 -> 8572 bytes .../Commvault.JobManager.psm1 | 43 ++++++++++++++++-- .../Commvault.RESTSession.psd1 | Bin 8200 -> 8200 bytes .../Commvault.RESTSession.psm1 | 42 ++++++++++++++--- .../Commvault.VirtualServer.psd1 | Bin 8856 -> 8856 bytes .../Commvault.VirtualServer.psm1 | 4 +- 6 files changed, 78 insertions(+), 11 deletions(-) diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psd1 b/Modules/Commvault.JobManager/Commvault.JobManager.psd1 index 5fabc61f88a30438bdf945b631ba9ed85391ba91..c32c1a3c61adf12399dd696029f202bbb1c46a1d 100644 GIT binary patch delta 14 Vcmez4^v7vK5EG-t=3pjGc>pj$1quKF delta 14 Vcmez4^v7vK5EG;M=3pjGc>pjw1qlEE diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index 14287c5..60d6e7b 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -18,6 +18,7 @@ function Get-CVJob { .DESCRIPTION Get the list of all jobs. Based on parameters this commandlet filters the output. + This method is implemented with Powershell paging support. .PARAMETER ClientName Filter output based on ClientName. @@ -37,8 +38,29 @@ function Get-CVJob { .PARAMETER Details Retrieves the details for a job. +.PARAMETER First + Get list of jobs with paging support -First 20 (20 per page). + +.PARAMETER Skip + Get list of jobs with paging support -First 20 -Skip 5 (20 per page, skip first 5 jobs). + +.PARAMETER IncludeTotalCount + Include total count of result record set. + .EXAMPLE Get-CVJob + +.EXAMPLE + Get-CVJob -CompletedTime 8 -IncludeTotalCount + +.EXAMPLE + Get-CVJob -CompletedTime 72 -IncludeTotalCount -First 5 + +.EXAMPLE + Get-CVJob -CompletedTime 240 -IncludeTotalCount -First 10 -Skip 0 + +.EXAMPLE + Get-CVJob -CompletedTime 240 -IncludeTotalCount -First 10 -Skip 20 .EXAMPLE Get-CVJob -Details @@ -68,7 +90,7 @@ function Get-CVJob { Author: Gary Stoops Company: Commvault #> - [CmdletBinding(DefaultParameterSetName = 'Default')] + [CmdletBinding(SupportsPaging = $True, DefaultParameterSetName = 'Default')] [OutputType([PSCustomObject])] param( [Parameter(Mandatory = $False, ParameterSetName = 'ById', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] @@ -183,7 +205,18 @@ function Get-CVJob { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{completedJobLookupTime}', $null) } - $headerObj = Get-CVRESTHeader $sessionObj + if ($PSCmdlet.PagingParameters.First -eq [Uint64]::MaxValue) { # MaxValue is system default + if ($PSCmdlet.PagingParameters.IncludeTotalCount.IsPresent) { + $headerObj = Get-CVRESTHeader $sessionObj -Limit 0 -Offset 0 + } + else { + $headerObj = Get-CVRESTHeader $sessionObj + } + } + else { + $headerObj = Get-CVRESTHeader $sessionObj -Limit $PSCmdlet.PagingParameters.First -Offset $PSCmdlet.PagingParameters.Skip + } + $body = '' $payload = @{ } $payload.Add('headerObject', $headerObj) @@ -240,6 +273,10 @@ function Get-CVJob { } end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + if ($PSCmdlet.PagingParameters.IncludeTotalCount) { + [double] $accuracy = 1.0 + $PSCmdlet.PagingParameters.NewTotalCount($response.Content.totalRecordsWithoutPaging, $accuracy) + } } } @@ -1603,4 +1640,4 @@ function PrepareSendLogFilesBodyJson ($PrepInputs) { catch { throw $_ } -} \ No newline at end of file +} diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index 0dd385d46058b7f283ca6edcc23717661984d94e..bdb927932bc11c76cd8e974d2c17e4f013426e26 100644 GIT binary patch delta 16 XcmeBh=y2E&#>8yIV6ZuoX}v4}EHwn! delta 16 XcmeBh=y2E&#>8yMV7WPxX}v4}EMo-V diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index a7af4a5..b31a566 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -269,9 +269,25 @@ function Get-CVSessionDetail { #Method takes session object and returns the filled header function Get-CVRESTHeader { - [CmdletBinding()] + [CmdletBinding(DefaultParameterSetName = 'Default')] [OutputType([HashTable])] - param ([HashTable] $SessionObject, [String] $PagingInfo) + param ( + [Parameter(Position = 0, Mandatory = $True)] + [ValidateNotNullorEmpty()] + [HashTable] $SessionObject, + + [Parameter(Mandatory = $False, ParameterSetName = 'ByPagingInfo')] + [ValidateNotNullorEmpty()] + [String] $PagingInfo, + + [Parameter(Mandatory = $False, ParameterSetName = 'ByLimit')] + [ValidateNotNullorEmpty()] + [uint64] $Limit, + + [Parameter(Mandatory = $False, ParameterSetName = 'ByLimit')] + [ValidateNotNullorEmpty()] + [uint64] $Offset + ) begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" @@ -286,7 +302,8 @@ function Get-CVRESTHeader { process { Write-Debug -Message "$($MyInvocation.MyCommand): process" try { - if ($null -eq $PagingInfo -or $PagingInfo.Length -eq 0) { # TR - 190508-795 + + if ($PSCmdlet.ParameterSetName -eq 'Default') { if ($SessionObject.requestProps.ContainsKey('ContentType')) { $output.Add("header", @{Accept = $SessionObject.requestProps.ContentType; Authtoken = $SessionObject.sessionToken }) } @@ -294,10 +311,23 @@ function Get-CVRESTHeader { $output.Add("header", @{Accept = 'application/json'; Authtoken = $SessionObject.sessionToken }) } } - else { - $output.Add("header", @{Accept = 'application/json'; Authtoken = $SessionObject.sessionToken; pagingInfo = $PagingInfo }) + elseif ($PSCmdlet.ParameterSetName -eq 'ByPagingInfo') { # paging support with pagingInfo header '{startPage},{pageSize}' + if ($SessionObject.requestProps.ContainsKey('ContentType')) { + $output.Add("header", @{Accept = $SessionObject.requestProps.ContentType; Authtoken = $SessionObject.sessionToken; pagingInfo = $PagingInfo }) + } + else { + $output.Add("header", @{Accept = 'application/json'; Authtoken = $SessionObject.sessionToken; pagingInfo = $PagingInfo }) + } } - + elseif ($PSCmdlet.ParameterSetName -eq 'ByLimit') { # paging support with limit/offset header combo + if ($SessionObject.requestProps.ContainsKey('ContentType')) { + $output.Add("header", @{Accept = $SessionObject.requestProps.ContentType; Authtoken = $SessionObject.sessionToken; limit = $Limit; offset = $Offset }) + } + else { + $output.Add("header", @{Accept = 'application/json'; Authtoken = $SessionObject.sessionToken; limit = $Limit; offset = $Offset }) + } + } + if ($SessionObject.requestProps.ContainsKey('ContentType')) { $output.Add("ContentType", $SessionObject.requestProps.ContentType) } diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 index 0495a6988cd13e7f95f12efe2d3a7834f98ceadf..97006bfd651d9f8602b7eba99abe3630e5a93f64 100644 GIT binary patch delta 14 VcmbQ?I>U8C0u!U@=0qlQ1pp@^1aJTV delta 14 VcmbQ?I>U8C0u!Uj=0qlQ1pp@;1aANU diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 index 34f16fb..d08ca6d 100644 --- a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 +++ b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 @@ -305,7 +305,7 @@ function Get-CVVirtualMachine { else { # ByDefault # query with startPage=0, pageSize=0 to get totalRecords $pagingInfo = '0,0' - $headerObj = Get-CVRESTHeader $sessionObj $pagingInfo + $headerObj = Get-CVRESTHeader $sessionObj -PagingInfo $pagingInfo $body = '' $payload = @{} $payload.Add('headerObject', $headerObj) @@ -331,7 +331,7 @@ function Get-CVVirtualMachine { $pagingObj.startPage++ - $headerObj = Get-CVRESTHeader $sessionObj $pagingInfo + $headerObj = Get-CVRESTHeader $sessionObj -PagingInfo $pagingInfo $payload.Clear() $payload.Add('headerObject', $headerObj) $payload.Add('body', $body) From c8eae77638e73854413da98992755e83c0a5697e Mon Sep 17 00:00:00 2001 From: ypolishetty Date: Mon, 1 Mar 2021 01:37:01 -0500 Subject: [PATCH 04/21] Fix for Get-CVJob and Get-CVSubclient commands 1) Added Error Handling for Get-CVJob Command in case of invalid ClientName is sent. 2) Added New Get-CVId command to be used by Get-CVSubclient for faster processing. --- .../Commvault.CommCell.psd1 | Bin 8426 -> 8452 bytes .../Commvault.CommCell.psm1 | 159 +++++++++++++++++- .../Commvault.JobManager.psd1 | Bin 8572 -> 8572 bytes .../Commvault.JobManager.psm1 | 5 +- .../Commvault.RESTSession.psd1 | Bin 8200 -> 8200 bytes .../Commvault.RESTSession.psm1 | 9 + README.md | 15 +- 7 files changed, 185 insertions(+), 3 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psd1 b/Modules/Commvault.CommCell/Commvault.CommCell.psd1 index 932a74a264d5bea234b608b60a217a9b4333f571..b097113e8b5450eddb248e287b5a84e7f7ea82ef 100644 GIT binary patch delta 29 lcmaFm*y6Ooi;3Bg!C + [CmdletBinding()] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [String] $ClientName, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [String] $AgentName, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [String] $BackupSetName, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [String] $InstanceName, + + [Parameter(Mandatory = $False, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [String] $SubclientName + ) + + 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 + $ClientName = [System.Web.HTTPUtility]::UrlEncode($ClientName) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{clientName}', $ClientName) + + if (-not [String]::IsNullOrEmpty($AgentName)) { + $AgentName = [System.Web.HTTPUtility]::UrlEncode($AgentName) + $sessionObj.requestProps.endpoint += '&agent=' + $AgentName + } + + if (-not [String]::IsNullOrEmpty($BackupSetName)) { + $BackupSetName = [System.Web.HTTPUtility]::UrlEncode($BackupSetName) + if ([String]::IsNullOrEmpty($AgentName)) { + $AgentName = Read-Host 'AgentName' + $AgentName = [System.Web.HTTPUtility]::UrlEncode($AgentName) + $sessionObj.requestProps.endpoint += '&agent=' + $AgentName + } + $sessionObj.requestProps.endpoint += '&backupset=' + $BackupSetName + } + + if (-not [String]::IsNullOrEmpty($InstanceName)) { + $InstanceName = [System.Web.HTTPUtility]::UrlEncode($InstanceName) + if ([String]::IsNullOrEmpty($AgentName)) { + $AgentName = Read-Host 'AgentName' + $AgentName = [System.Web.HTTPUtility]::UrlEncode($AgentName) + $sessionObj.requestProps.endpoint += '&agent=' + $AgentName + } + $sessionObj.requestProps.endpoint += '&instanceName=' + $InstanceName + } + + if (-not [String]::IsNullOrEmpty($SubclientName)) { + $SubclientName = [System.Web.HTTPUtility]::UrlEncode($SubclientName) + if ([String]::IsNullOrEmpty($AgentName)) { + $AgentName = Read-Host 'AgentName' + $AgentName = [System.Web.HTTPUtility]::UrlEncode($AgentName) + $sessionObj.requestProps.endpoint += '&agent=' + $AgentName + } + if ([String]::IsNullOrEmpty($BackupSetName)) { + $BackupSetName = Read-Host 'BackupSetName' + $BackupSetName = [System.Web.HTTPUtility]::UrlEncode($BackupSetName) + $sessionObj.requestProps.endpoint += '&backupset=' + $BackupSetName + } + $sessionObj.requestProps.endpoint += '&subclient=' + $SubclientName + } + + Write-Debug $sessionObj.requestProps.endpoint + + $headerObj = Get-CVRESTHeader $sessionObj + $body = '' + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = $null + + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + Write-Output $response.Content + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): unable to retrieve Id for the Client" + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + function Set-CVClientGroup { <# diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psd1 b/Modules/Commvault.JobManager/Commvault.JobManager.psd1 index c32c1a3c61adf12399dd696029f202bbb1c46a1d..427b95a1221ac6c0ef024e8a96d5f12125b85a6e 100644 GIT binary patch delta 14 Vcmez4^v7vK5EG;2=3pjGc>pj+1q%QG delta 14 Vcmez4^v7vK5EG-t=3pjGc>pj$1quKF diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index 60d6e7b..b46d4b2 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -172,10 +172,13 @@ function Get-CVJob { } else { if (-not [String]::IsNullOrEmpty($ClientName)) { - $clientObj = Get-CVClient -Client $ClientName + $clientObj = Get-CVId -ClientName $ClientName if ($null -ne $clientObj) { $sessionObj.requestProps.endpoint += '&clientId=' + $clientObj.clientId } + else { + return + } } if (-not [String]::IsNullOrEmpty($SubclientName)) { diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index bdb927932bc11c76cd8e974d2c17e4f013426e26..76ba8c30844a42560cc6c06b9c408f056a5cdddd 100644 GIT binary patch delta 14 VcmeBh=y2E&!Nh2|Ig)9;EC3~U1g8K1 delta 14 VcmeBh=y2E&!Nh2=Ig)9;EC3~O1f~E0 diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index b31a566..854c578 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -744,6 +744,15 @@ function GetAPIDetail ([String] $Request) { Body = '' } + + 'Get-CVId' = @{ + + Description = 'Gets Id of a given entity' + Endpoint = 'GetId?clientName={clientName}' + Method = 'Get' + Body = '' + + } #--------------- Commvault.FileSystem --------------- diff --git a/README.md b/README.md index f22d45d..545463a 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,15 @@ Login to Commcell: Sample Package Function Table ----------------------------- +Available From V11 SP20: +- Function: Get-CVBlackoutWindow in Module: Commvault.Policies +- Function: Set-CVBlackoutWindow in Module: Commvault.Policies +- Function: Enable-CVBlackoutWindowIgnoreHigherLevelRules in Module: Commvault.Policies +- Function: Disable-CVBlackoutWindowIgnoreHigherLevelRules in Module: Commvault.Policies +- Function: Add-CVBlackoutWindow in Module: Commvault.Policies +- Function: Remove-CVBlackoutWindow in Module: Commvault.Policies + +Available From V11 SP16: - Function: Get-CVClient in Module: Commvault.CommCell - Function: Get-CVClientGroup in Module: Commvault.CommCell - Function: Get-CVVersionInfo in Module: Commvault.CommCell @@ -68,6 +77,7 @@ Sample Package Function Table - Function: Get-CVSchedulePolicy in Module: Commvault.Policies - Function: Disable-CVSchedulePolicy in Module: Commvault.Policies - Function: Connect-CVServer in Module: Commvault.RESTSession +- Function: Disconnect-CVServer in Module: Commvault.RESTSession - Function: Submit-CVRESTRequest in Module: Commvault.RESTSession - Function: Get-CVRESTHeader in Module: Commvault.RESTSession - Function: Get-CVCommCellGlobals in Module: Commvault.RESTSession @@ -90,17 +100,20 @@ Sample Package Function Table - Function: Get-CVDiskSpace in Module: Commvault.StorageResources - Function: Get-CVSubclientMediaAgent in Module: Commvault.StorageResources - Function: Get-CVLibrary in Module: Commvault.StorageResources +- Function: New-CVLibrary in Module: Commvault.StorageResources - Function: Get-CVMediaAgent in Module: Commvault.StorageResources - Function: Get-CVVirtualMachine in Module: Commvault.VirtualServer - Function: Add-CVVirtualMachine in Module: Commvault.VirtualServer +- Function: Add-CVVirtualMachineGroupContent in Module: Commvault.VirtualServer - Function: Dismount-CVVirtualMachine in Module: Commvault.VirtualServer - Function: Restore-CVVirtualMachine in Module: Commvault.VirtualServer - Function: Mount-CVVirtualMachine in Module: Commvault.VirtualServer - Function: Remove-CVVirtualMachine in Module: Commvault.VirtualServer -- Function: Restore-CVVirtualMachineOutofPlace in Module: Commvault.VirtualServer - Function: Get-CVVirtualMachineLiveMount in Module: Commvault.VirtualServer - Function: Backup-CVVirtualMachine in Module: Commvault.VirtualServer - Function: Get-CVVirtualMachineBackupTime in Module: Commvault.VirtualServer +- Function: Get-CVWorkflow in Module: Commvault.Workflow +- Function: Start-CVWorkflow in Module: Commvault.Workflow Uninstallation -------------- From b6cc48f9efd21dd113f240eb0df8244dad5277d2 Mon Sep 17 00:00:00 2001 From: ypolishetty Date: Mon, 1 Mar 2021 02:31:23 -0500 Subject: [PATCH 05/21] Using Get-CVClient command instead of Get-CVId Using Get-CVClient command instead of Get-CVId as Get-CVId doesn't yet return null object if ClientName passed is not found. --- Modules/Commvault.JobManager/Commvault.JobManager.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index b46d4b2..21f313c 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -172,7 +172,7 @@ function Get-CVJob { } else { if (-not [String]::IsNullOrEmpty($ClientName)) { - $clientObj = Get-CVId -ClientName $ClientName + $clientObj = Get-CVClient -Client $ClientName if ($null -ne $clientObj) { $sessionObj.requestProps.endpoint += '&clientId=' + $clientObj.clientId } From e983dcecebfc7bb8a55fb6ef3acc329ebd22b7c4 Mon Sep 17 00:00:00 2001 From: ypolishetty Date: Mon, 1 Mar 2021 11:17:22 -0500 Subject: [PATCH 06/21] Adding Error Handling for Get-CVId Command --- .../Commvault.CommCell.psd1 | Bin 8452 -> 8452 bytes .../Commvault.CommCell.psm1 | 7 ++++++- .../Commvault.JobManager.psm1 | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psd1 b/Modules/Commvault.CommCell/Commvault.CommCell.psd1 index b097113e8b5450eddb248e287b5a84e7f7ea82ef..8a999fcfd7fc4a73cac6979196e41b1fca493ad9 100644 GIT binary patch delta 14 VcmZp1YH`}&!^CK~*_Ua%8~`M=1e5>( delta 14 VcmZp1YH`}&!^CK?*_Ua%8~`M)1d{*& diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 index bffae06..f594f36 100644 --- a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 +++ b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 @@ -859,7 +859,12 @@ function Get-CVId { $response = Submit-CVRESTRequest $payload $validate if ($response.IsValid) { - Write-Output $response.Content + if ($response.Content.clientId -eq -32000) { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): client not found having name [$ClientName]" + } + else { + Write-Output $response.Content + } } else { Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): unable to retrieve Id for the Client" diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index 21f313c..b46d4b2 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -172,7 +172,7 @@ function Get-CVJob { } else { if (-not [String]::IsNullOrEmpty($ClientName)) { - $clientObj = Get-CVClient -Client $ClientName + $clientObj = Get-CVId -ClientName $ClientName if ($null -ne $clientObj) { $sessionObj.requestProps.endpoint += '&clientId=' + $clientObj.clientId } From 86fd7238ba0e15e35c2b69ff1554a6772e5ed32a Mon Sep 17 00:00:00 2001 From: ypolishetty Date: Mon, 1 Mar 2021 20:51:16 -0500 Subject: [PATCH 07/21] Updating README with Get-CVId module --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 545463a..6b91053 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ Available From V11 SP16: - Function: Get-CVVersionInfo in Module: Commvault.CommCell - Function: Get-CVAlert in Module: Commvault.CommCell - Function: Get-CVSubclient in Module: Commvault.CommCell +- Function: Get-CVId in Module: Commvault.CommCell - Function: Set-CVClient in Module: Commvault.CommCell - Function: Set-CVClientGroup in Module: Commvault.CommCell - Function: Backup-CVClientFileSystem in Module: Commvault.FileSystem From 044a293386416634f4834b2119367bbb9e0204c6 Mon Sep 17 00:00:00 2001 From: ypolishetty Date: Wed, 3 Mar 2021 20:32:57 -0500 Subject: [PATCH 08/21] Removing New-CVLibrary From README.md This Cmdlet doesn't exist. Hence removing. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6b91053..de48b37 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,6 @@ Available From V11 SP16: - Function: Get-CVDiskSpace in Module: Commvault.StorageResources - Function: Get-CVSubclientMediaAgent in Module: Commvault.StorageResources - Function: Get-CVLibrary in Module: Commvault.StorageResources -- Function: New-CVLibrary in Module: Commvault.StorageResources - Function: Get-CVMediaAgent in Module: Commvault.StorageResources - Function: Get-CVVirtualMachine in Module: Commvault.VirtualServer - Function: Add-CVVirtualMachine in Module: Commvault.VirtualServer From 2c0c8e8fff73916bf1a5f1b5328b6a3f78459368 Mon Sep 17 00:00:00 2001 From: rsn Date: Tue, 30 Mar 2021 13:50:38 +0530 Subject: [PATCH 09/21] Skip fetching guid when adding VM Content by Name/Pattern --- .../Commvault.VirtualServer.psd1 | Bin 8856 -> 8856 bytes .../Commvault.VirtualServer.psm1 | 27 ++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 index 97006bfd651d9f8602b7eba99abe3630e5a93f64..7914b40ea515a2e3306b0d01370fbe51dec6afd4 100644 GIT binary patch delta 14 VcmbQ?I>U8C0u!Uz=0qlQ1pp@~1aSZW delta 14 VcmbQ?I>U8C0u!U@=0qlQ1pp@^1aJTV diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 index d08ca6d..346b8ea 100644 --- a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 +++ b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 @@ -2076,20 +2076,31 @@ function PrepareContentBodyJson ([HashTable] $EntityObj) { $entities = $EntityObj.Entity -split "," if ($entities) { foreach ($entity in $entities) { - $vmProps = Get-CVVirtualMachine -Name $entity -ClientId $EntityObj.clientId - if ($null -ne $vmProps -and $null -ne $vmProps.strGUID) { - $uuid = $vmProps.strGUID - } - else { - Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): virtual machine GUID not found for entity [$entity]" - continue + $uuid = $null + if ($EntityObj.EntityType.value__ -ne "VMName") + { + $vmProps = Get-CVVirtualMachine -Name $entity -ClientId $EntityObj.clientId + if ($null -ne $vmProps -and $null -ne $vmProps.strGUID) { + $uuid = $vmProps.strGUID + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): virtual machine GUID not found for entity [$entity]" + continue + } } $vmObj = [ordered]@{ } $vmObj.Add('allOrAnyChildren' , $True) $vmObj.Add('displayName' , $entity) $vmObj.Add('equalsOrNotEquals', $True) - $vmObj.Add('name' , $uuid) + if ($uuid -eq $null) + { + $vmObj.Add('name' , '') + } + else + { + $vmObj.Add('name' , $uuid) + } $vmObj.Add('type' , $EntityObj.EntityType.value__) $vmObj.Add('path' , '') $null = $childrenNode_arr.Add($vmObj) From 1c188d6e6fcc2ac02735e8541fc94d4fc0dbb597 Mon Sep 17 00:00:00 2001 From: Sowmyacv Date: Wed, 21 Apr 2021 19:00:57 +0530 Subject: [PATCH 10/21] Update Commvault.VirtualServer.psm1 Skip Fetching guid for adding subclient content -bug fixes --- Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 index 346b8ea..a2af35f 100644 --- a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 +++ b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 @@ -2077,7 +2077,7 @@ function PrepareContentBodyJson ([HashTable] $EntityObj) { if ($entities) { foreach ($entity in $entities) { $uuid = $null - if ($EntityObj.EntityType.value__ -ne "VMName") + if ($EntityObj.EntityType.value__ -ne 10) { $vmProps = Get-CVVirtualMachine -Name $entity -ClientId $EntityObj.clientId if ($null -ne $vmProps -and $null -ne $vmProps.strGUID) { @@ -2244,4 +2244,4 @@ function ValidatePagingParameters($PagingParameters, [UInt64] $TotalCount) { function HasProperty($Object, $PropertyName) { $PropertyName -in $Object.PSobject.Properties.Name -} \ No newline at end of file +} From fac47835af1a1407217526c88e5f08a99c16342f Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Wed, 19 Jan 2022 10:12:37 +0530 Subject: [PATCH 11/21] Added limit parameter in Get-CVJob --- .../Commvault.JobManager/Commvault.JobManager.psm1 | 14 ++++++++++++++ .../Commvault.RESTSession.psm1 | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index b46d4b2..f406b90 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -38,6 +38,9 @@ function Get-CVJob { .PARAMETER Details Retrieves the details for a job. +.PARAMETER limit + The number of results to be listed in a page. Used for changing the paging limits. By default, the limit is 100 results per page. + .PARAMETER First Get list of jobs with paging support -First 20 (20 per page). @@ -118,6 +121,10 @@ function Get-CVJob { [ValidateNotNullorEmpty()] [Int32] $CompletedTime = 24, # default 24 hours + [Parameter(Mandatory = $False, ParameterSetName = 'Default')] + [ValidateNotNullorEmpty()] + [Int32] $limit = 100, + [Switch] $Details ) @@ -207,6 +214,13 @@ function Get-CVJob { else { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{completedJobLookupTime}', $null) } + + if ($limit) { + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{limit}', $limit) + } + else { + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{limit}', $null) + } if ($PSCmdlet.PagingParameters.First -eq [Uint64]::MaxValue) { # MaxValue is system default if ($PSCmdlet.PagingParameters.IncludeTotalCount.IsPresent) { diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index 854c578..cce3d38 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -802,7 +802,7 @@ function GetAPIDetail ([String] $Request) { 'Get-CVJob' = @{ Description = 'Get the list of all jobs in CommServe' - Endpoint = 'Job?completedJobLookupTime={completedJobLookupTime}' + Endpoint = 'Job?completedJobLookupTime={completedJobLookupTime}&limit={limit}' Method = 'Get' Body = '' } From 8b8eea110e4ac052844de0d41295feeee90261ea Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Tue, 25 Jan 2022 18:11:22 +0530 Subject: [PATCH 12/21] Added limit parameter for Get-CVJob --- .../Commvault.JobManager.psm1 | 16 +++++++++++++++- .../Commvault.RESTSession.psm1 | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index b46d4b2..db1ba78 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -38,6 +38,9 @@ function Get-CVJob { .PARAMETER Details Retrieves the details for a job. +.PARAMETER limit + The number of results to be listed in a page. Used for changing the paging limits. By default, the limit is 100 results per page. + .PARAMETER First Get list of jobs with paging support -First 20 (20 per page). @@ -118,6 +121,10 @@ function Get-CVJob { [ValidateNotNullorEmpty()] [Int32] $CompletedTime = 24, # default 24 hours + [Parameter(Mandatory = $False, ParameterSetName = 'Default')] + [ValidateNotNullorEmpty()] + [Int32] $limit = 100, + [Switch] $Details ) @@ -207,6 +214,13 @@ function Get-CVJob { else { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{completedJobLookupTime}', $null) } + + if ($limit) { + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{limit}', $limit) + } + else { + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{limit}', $null) + } if ($PSCmdlet.PagingParameters.First -eq [Uint64]::MaxValue) { # MaxValue is system default if ($PSCmdlet.PagingParameters.IncludeTotalCount.IsPresent) { @@ -1643,4 +1657,4 @@ function PrepareSendLogFilesBodyJson ($PrepInputs) { catch { throw $_ } -} +} \ No newline at end of file diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index 854c578..cce3d38 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -802,7 +802,7 @@ function GetAPIDetail ([String] $Request) { 'Get-CVJob' = @{ Description = 'Get the list of all jobs in CommServe' - Endpoint = 'Job?completedJobLookupTime={completedJobLookupTime}' + Endpoint = 'Job?completedJobLookupTime={completedJobLookupTime}&limit={limit}' Method = 'Get' Body = '' } From ea6149b94c44f857b80ec6bad883a6acf669a796 Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Thu, 17 Feb 2022 09:55:27 +0530 Subject: [PATCH 13/21] Update Commvault.CommCell.psm1 Adding the support to update any client properties --- Modules/Commvault.CommCell/Commvault.CommCell.psm1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 index f594f36..83be1cf 100644 --- a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 +++ b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 @@ -1023,14 +1023,14 @@ function Set-CVClient { $clientProps = Get-CVClient -Name 'carbonwincs1' -AllProperties PS C:\>$clientProps.client.displayName='carbonwincs1-1' PS C:\>$clientProps.client.clientDescription = 'carbonwincs1-1 description modified with REST API Post request' - PS C:\>$clientProps.client | Set-CVClient -Name 'carbonwincs1' -Force + PS C:\>$clientProps | Set-CVClient -Name 'carbonwincs1' -Force .EXAMPLE $clientId = (Get-CVVirtualMachine -Name INSIELVM-92-pl).client.clientId PS C:\>$clientProps = Get-CVClient -Id $clientId -AllProperties PS C:\>$clientProps.client.displayName='INSIELVM-92-pl' PS C:\>$clientProps.client.clientDescription = 'INSIELVM-92-pl description modified with REST API Post request' - PS C:\>$clientProps.client | Set-CVClient -Id $clientId + PS C:\>$clientProps | Set-CVClient -Id $clientId .OUTPUTS Outputs [PSCustomObject] containing job submission result. @@ -1105,8 +1105,8 @@ function Set-CVClient { } } #> - $client = @{} - $client.Add('client', $Properties) + #$client = @{} + #$client.Add('client', $Properties) #$entity = @{} #$entity.Add('clientName', $clientObj.clientName) #[System.Collections.ArrayList] $entity_arr = @() @@ -1115,7 +1115,7 @@ function Set-CVClient { #$association.Add('entity', $entity_arr) $body = @{} - $body.Add('clientProperties', $client) + $body.Add('clientProperties', $Properties) #$body.Add('association', $association) $body = ($body | ConvertTo-Json -Depth 10) From 14db882e25a3c7f52390883ad3d572bb72633f39 Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Sun, 5 Jun 2022 21:51:57 +0530 Subject: [PATCH 14/21] Changing the subclientId in Backup-CVSQLSubclient --- Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index cce3d38..b27c5f1 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -1121,7 +1121,7 @@ function GetAPIDetail ([String] $Request) { 'Backup-CVSQLSubclient' = @{ Description = 'Backup SQL instance subclients' - Endpoint = 'v2/sql/instances/{instanceId}/backup?subclient={subclientId}' + Endpoint = 'v2/sql/instances/{instanceId}/backup?subClientId={subclientId}' Method = 'Post' Body = '' } From bd921e671e15cddce0f41f98c85a4f14624d7777 Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Wed, 27 Jul 2022 11:30:32 +0530 Subject: [PATCH 15/21] Enhancement : New commandlets --- .../Commvault.CommCell.psd1 | Bin 8452 -> 9462 bytes .../Commvault.CommCell.psm1 | 183 ++++++++++++++++++ .../Commvault.RESTSession.psm1 | 16 +- .../Commvault.VirtualServer.psm1 | 12 +- 4 files changed, 209 insertions(+), 2 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psd1 b/Modules/Commvault.CommCell/Commvault.CommCell.psd1 index 8a999fcfd7fc4a73cac6979196e41b1fca493ad9..1e4f6b23bed783285dd970229b3fc19e636dc8d0 100644 GIT binary patch delta 1404 zcmZp1`sO*|&*T_sj){MISQQw6aI&qG_~bc^Ho{;YP=uF(3nUJfyUpl2`GO3`WCbQ2 zX=4U;WI1H^f+wFA zQuTLaNC84!23LkWV2a8F;z}USX9#9U2Bxo6pj;_K4v-E2isb<1lY#Q;44TL(8=1Yi zUf3IM+vJlXSe-Qaw@4t^TRx&#lho$jq6kAavx=)TV)NK!eF;cr>5#x4dB-J^!M12g zYGBoWTtaqok)#t?%@#=&Y-%>&mW)Jr$5>hwo1)3l(#lxH8>P=q?vfUp93#VrReqza z`eXxHj>&UmT!89$CO?tEo_iqbBEV{TWO1pf1aykS!2z~P9($l(m46O5XSag29=4LD7CFVBumKjr<#hl6 delta 595 zcmez7+2SbGk;xgXF<=$fSt}>s zVU?I%z!n1LPvnT4Y{2d?*@#nQau2%_SnMEsJ)`pEiyY#U6FB6cs;0t4I41jX%0NZ6 zC$HdqH+deH9h7f8S&93{WF;OoF#j!&_~as+p#K*nwMmGEZVyg*Wo5p4KPsmRGz(h!H~%g9b% zCha!)i?jw`KV&nNe(Sn+{kyB6ku1^~DgoxuPA diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 index 83be1cf..1444292 100644 --- a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 +++ b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 @@ -532,6 +532,189 @@ function Get-CVClientGroup { } } +function Add-EntitytoSchedulePolicy { +<# +.SYNOPSIS + Method to add an entity to a schedule policy + +.DESCRIPTION + Method to add an entity to a schedule policy + +.LINK + https://documentation.commvault.com/11.24/essential/48824_rest_api_post_schedule_policy_add_entity.html + +.PARAMETER taskId + Schedule policy ID + +.OUTPUTS + Outputs [PSCustomObject] + +.EXAMPLE + PS C:\>$body = "subclientId=300" + PS C:\>$policy = Get-CVSchedulePolicy -Name testpolicy + PS C:\>$policy | Add-EntitytoSchedulePolicy -Body $body -Forc + + Output: + errorMessage errorCode + ------------ --------- + 0 +.NOTES + Author: Jnanesh D + Company: Commvault +#> + + [CmdletBinding(DefaultParameterSetName = 'Default')] + [OutputType([PSCustomObject])] + param( + + [Parameter(Mandatory= $True, ParameterSetName="ByObject", ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [System.Object] $taskObject, + + [Alias('RequestBody')] + [Parameter(Mandatory = $True)] + [ValidateNotNullorEmpty()] + [PSObject] $Body, + + [Switch] $Force, + + # Parameter help description + [Parameter(Mandatory= $True, ParameterSetName="ById")] + [ValidateNotNullorEmpty()] + [Int64] $taskId + + ) + begin{ + Write-Debug -Message "$($MyInvocation.MyCommand): process" + 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 "ById"){ + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{taskId}', $taskId) + } + else { + $taskId = $taskObject.task.taskId + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{taskId}', $taskId) + } + + $body = $Body + $payload = @{ } + $headerObj = Get-CVRESTHeader $sessionObj + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = 'errorMessage' + + if ($Force) { + $response = Submit-CVRESTRequest $payload $validate + Write-Output $response.Content + } + else { + $response = Submit-CVRESTRequest $payload $validate -DryRun + } + + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} + +function Set-CVSubclient { +<# +.SYNOPSIS + Method to create a new subclient. + +.DESCRIPTION + Method to create a new subclient. + +.PARAMETER Body + Request body for the subclient creation : Refer to https://documentation.commvault.com/11.24/essential/49174_rest_api_post_subclient.html. + +.EXAMPLE + PS C:\>$req = @" + { + "subClientProperties": { + "subClientEntity": { + "clientName": "Side1", + "appName": "File System", + "backupsetName": "DefaultBackupset", + "subclientName": "subclient001" + } + } + } + "@ + PS C:\>$propobj = $prop | ConvertFrom-Json + PS C:\>Set-CVSubclient -body $propobj + +.OUTPUTS + Outputs [PSCustomObject] + +.NOTES + Author: Jnanesh D + Company: Commvault +#> + [CmdletBinding(DefaultParameterSetName = 'Default',SupportsShouldProcess)] + [OutputType([PSCustomObject])] + param( + [Alias('RequestBody')] + [Parameter(Mandatory = $True)] + [ValidateNotNullorEmpty()] + [PSObject] $Body, + + [Switch] $Force + ) + + 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 + $body = ($Body | ConvertTo-Json -Depth 10) + $payload = @{ } + $headerObj = Get-CVRESTHeader $sessionObj + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = 'errorMessage' + + if ($Force -or $PSCmdlet.ShouldProcess($Body)) { + $response = Submit-CVRESTRequest $payload $validate + } + else { + $response = Submit-CVRESTRequest $payload $validate -DryRun + } + Write-Output $response.Content + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } + +} + function Get-CVSubclient { <# diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index b27c5f1..01fd9b5 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -735,6 +735,20 @@ function GetAPIDetail ([String] $Request) { Body = '' } + + 'Set-CVSubclient' = @{ + Description = 'Add new subclient' + Endpoint = 'Subclient' + Method = 'Post' + Body = '' + } + + 'Add-EntitytoSchedulePolicy' = @{ + Description = 'Add entity to schedule policy' + Endpoint = 'Task/{taskId}/Entity/Add' + Method = 'Post' + Body = '' + } 'GetSubclientProperties' = @{ @@ -1256,7 +1270,7 @@ function GetAPIDetail ([String] $Request) { 'Backup-CVVirtualMachine' = @{ Description = 'Starts backup job for specified virtual machine' - Endpoint = '/v2/vsa/vm/{vmGUID}/backup' + Endpoint = '/v2/vsa/vm/{vmGUID}/backup?backupLevel={backupType}' Method = 'Post' Body = '' } diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 index a2af35f..fc55073 100644 --- a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 +++ b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 @@ -550,6 +550,9 @@ function Backup-CVVirtualMachine { .PARAMETER Protected Use this switch to filter legacy, unprotected virtual machines when specifed by Name. +.PARAMETER BackupType + Backup Type for the backup of Virtual Machine , default is INCREMENTAL . Supported values are FULL, INCREMENTAL, DIFFERENTIAL, SYNTHETIC_FULL + .PARAMETER Force Switch to Force override of default 'WhatIf' confirmation behavior. @@ -559,6 +562,9 @@ function Backup-CVVirtualMachine { .EXAMPLE Backup-CVVirtualMachine -Name 2208 -ClientName V1-VSAQA +.EXAMPLE + Backup-CVVirtualMachine -Id 500b0375-4728-588f-3d69-2d64b5291bcf -BackupType FULL + .OUTPUTS Outputs [PSCustomObject] containing job submission result. @@ -587,6 +593,9 @@ function Backup-CVVirtualMachine { [ValidateNotNullorEmpty()] [System.Object] $ClientObject, + [Parameter(Mandatory = $False)] + [CVBackupType] $BackupType = 'INCREMENTAL', + [Switch] $Protected, [Switch] $Force ) @@ -643,6 +652,7 @@ function Backup-CVVirtualMachine { } $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{vmGUID}', $vmObj.strGUID) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{backupType}', [Convert]::ToString($BackupType)) $headerObj = Get-CVRESTHeader $sessionObj $body = '' @@ -2244,4 +2254,4 @@ function ValidatePagingParameters($PagingParameters, [UInt64] $TotalCount) { function HasProperty($Object, $PropertyName) { $PropertyName -in $Object.PSobject.Properties.Name -} +} \ No newline at end of file From 2838c0eaf20a05679ebe3ba8a3ee9215856beff1 Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Fri, 12 Aug 2022 20:49:40 +0530 Subject: [PATCH 16/21] Fixes for Get-CVVirtualMachine, Restore-VVirtualMachine, Get-cvclient --- .../Commvault.RESTSession.psm1 | 2 +- .../Commvault.VirtualServer.psm1 | 242 ++++-------------- 2 files changed, 51 insertions(+), 193 deletions(-) diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index 01fd9b5..0b056a8 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -658,7 +658,7 @@ function GetAPIDetail ([String] $Request) { 'Get-CVClient' = @{ Description = 'Get client list from CommServe' - Endpoint = 'Client' + Endpoint = 'Client?hiddenClients=true' Method = 'Get' Body = '' diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 index fc55073..18c54a5 100644 --- a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 +++ b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psm1 @@ -304,7 +304,7 @@ function Get-CVVirtualMachine { } else { # ByDefault # query with startPage=0, pageSize=0 to get totalRecords - $pagingInfo = '0,0' + $pagingInfo = '0,999999' $headerObj = Get-CVRESTHeader $sessionObj -PagingInfo $pagingInfo $body = '' $payload = @{} @@ -1211,9 +1211,8 @@ function Restore-CVVirtualMachine { .PARAMETER OutofPlace Switch to create an out-of-place virtual machine restore. -.PARAMETER DestHypervisorType - Specify DestHypervisorType: vmware or hyperv for out-of-place restore. - Note: DestHypervisorType defaults to 'vmare'. For hyperv out-of-place restore, this param must be provided on the command line. +.PARAMETER Requestbody + PSCustom object with request body which contains destination client and destination info or vmFileLevelRestoreOptions for out-of-place restore .PARAMETER Force Switch to Force override of default 'WhatIf' confirmation behavior. @@ -1228,7 +1227,25 @@ function Restore-CVVirtualMachine { Restore-CVVirtualMachine -Name TESTVM12 -ClientName VSAQAVCDR.vsatest.commvault.com -SubclientName VMGroup1 -PowerOnAfterRestore -OverwriteExisting .EXAMPLE - Restore-CVVirtualMachine -Name TESTVM12 -ClientName VSAQAVCDR.vsatest.commvault.com -SubclientName VMGroup1 -PowerOnAfterRestore -OverwriteExisting -OutofPlace + Restore-CVVirtualMachine -Name TESTVM12 -ClientName VSAQAVCDR.vsatest.commvault.com -SubclientName VMGroup1 -PowerOnAfterRestore -OverwriteExisting + +.EXAMPLE + PS C:\> $requestbody = @'{ + "destinationClient": { + "clientName": "testvsvc1.testlab.commvault.com_v2" + }, + "destinationInfo": [ + { + "vmware": { + "esxHost": "172.24.42.9", + "newName": "va-dummyVM2_DND", + "dataStore": "HDD_AutoDatastore", + "resourcePool": "/" + } + } + ] + } '@ | ConvertFrom-Json + Restore-CVVirtualMachine -Name va-dummyVM2_DND2 -outofPlace -Requestbody $requestbody -OverwriteExisting .OUTPUTS Outputs [PSCustomObject] containing job submission result. @@ -1273,148 +1290,21 @@ function Restore-CVVirtualMachine { [Parameter(Mandatory = $False)] [CVVSARestoreType] $RestoreType = 'FullVirtualMachine', - [Parameter(Mandatory = $False)] - [CVVSAHyperVisorType] $DestHypervisorType = 'vmware', - [Switch] $OutofPlace, [Switch] $PowerOnAfterRestore, [Switch] $OverwriteExisting, - [Switch] $Force - ) - - DynamicParam { - $paramDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary + [Switch] $Force, - Set-StrictMode -Off + #Parameters required when OutOfPlace is enabled + + [Parameter(Mandatory= $False)] + [System.Object] $Requestbody - if ($OutofPlace) { - if ($null -eq $RestoreType -or $RestoreType -eq 'FullVirtualMachine') { # default - $destHypervisorAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $destHypervisorAttr = New-Object System.Management.Automation.ParameterAttribute - $destHypervisorAttr.Mandatory = $true - $destHypervisorAttr.HelpMessage = 'restore destination hypervisor' - $destHypervisorAttrColl.Add($destHypervisorAttr) - $destHypervisorParam = New-Object System.Management.Automation.RuntimeDefinedParameter('DestHypervisor', [String], $destHypervisorAttrColl) - $paramDictionary.Add('DestHypervisor', $destHypervisorParam) - - if ($null -eq $DestHypervisorType -or $DestHypervisorType -eq 'vmware') { # default - $destHostAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $destHostAttr = New-Object System.Management.Automation.ParameterAttribute - $destHostAttr.Mandatory = $true - $destHostAttr.HelpMessage = 'out-of-place restore destination host' - $destHostAttrColl.Add($destHostAttr) - $destHostParam = New-Object System.Management.Automation.RuntimeDefinedParameter('DestHost', [String], $destHostAttrColl) - $paramDictionary.Add('DestHost', $destHostParam) - - $dataStoreAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $dataStoreAttr = New-Object System.Management.Automation.ParameterAttribute - $dataStoreAttr.Mandatory = $true - $dataStoreAttr.HelpMessage = 'out-of-place restore datastore' - $dataStoreAttrColl.Add($dataStoreAttr) - $dataStoreParam = New-Object System.Management.Automation.RuntimeDefinedParameter('DataStore', [String], $dataStoreAttrColl) - $paramDictionary.Add('DataStore', $dataStoreParam) - - $resourcePoolAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $resourcePoolAttr = New-Object System.Management.Automation.ParameterAttribute - $resourcePoolAttr.Mandatory = $true - $resourcePoolAttr.HelpMessage = 'out-of-place restore resource pool' - $resourcePoolAttrColl.Add($resourcePoolAttr) - $resourcePoolAttrAllowEmpty = New-Object System.Management.Automation.AllowEmptyStringAttribute - $resourcePoolAttrColl.Add($resourcePoolAttrAllowEmpty) - $resourcePoolParam = New-Object System.Management.Automation.RuntimeDefinedParameter('ResourcePool', [String], $resourcePoolAttrColl) - $paramDictionary.Add('ResourcePool', $resourcePoolParam) - - $vmFolderAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $vmFolderAttr = New-Object System.Management.Automation.ParameterAttribute - $vmFolderAttr.Mandatory = $true - $vmFolderAttr.HelpMessage = 'out-of-place restore VM folder path' - $vmFolderAttrColl.Add($vmFolderAttr) - $vmFolderAttrAllowEmpty = New-Object System.Management.Automation.AllowEmptyStringAttribute - $vmFolderAttrColl.Add($vmFolderAttrAllowEmpty) - $vmFolderParam = New-Object System.Management.Automation.RuntimeDefinedParameter('VMFolder', [String], $vmFolderAttrColl) - $paramDictionary.Add('VMFolder', $vmFolderParam) - - $vmDisplayNameAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $vmDisplayNameAttr = New-Object System.Management.Automation.ParameterAttribute - $vmDisplayNameAttr.Mandatory = $true - $vmDisplayNameAttr.HelpMessage = 'restore VM display name' - $vmDisplayNameAttrColl.Add($vmDisplayNameAttr) - $vmDisplayNameParam = New-Object System.Management.Automation.RuntimeDefinedParameter('VMDisplayName', [String], $vmDisplayNameAttrColl) - $paramDictionary.Add('VMDisplayName', $vmDisplayNameParam) - } - elseif ($DestHypervisorType -eq 'hyperv') { - $destClientAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $destClientAttr = New-Object System.Management.Automation.ParameterAttribute - $destClientAttr.Mandatory = $true - $destClientAttr.HelpMessage = 'out-of-place restore destination client' - $destClientAttrColl.Add($destClientAttr) - $destClientParam = New-Object System.Management.Automation.RuntimeDefinedParameter('DestClient', [String], $destClientAttrColl) - $paramDictionary.Add('DestClient', $destClientParam) - - $destFolderAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $destFolderAttr = New-Object System.Management.Automation.ParameterAttribute - $destFolderAttr.Mandatory = $true - $destFolderAttr.HelpMessage = 'out-of-place restore destination folder' - $destFolderAttrColl.Add($destFolderAttr) - $destFolderParam = New-Object System.Management.Automation.RuntimeDefinedParameter('DestFolder', [String], $destFolderAttrColl) - $paramDictionary.Add('DestFolder', $destFolderParam) - - $regWithFailoverAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $regWithFailoverAttr = New-Object System.Management.Automation.ParameterAttribute - $regWithFailoverAttr.Mandatory = $true - $regWithFailoverAttr.HelpMessage = 'register virtual machine with failover cluster? True or False' - $regWithFailoverAttrColl.Add($regWithFailoverAttr) - $regWithFailoverParam = New-Object System.Management.Automation.RuntimeDefinedParameter('RegWithFailover', [String], $regWithFailoverAttrColl) - $paramDictionary.Add('RegWithFailover', $regWithFailoverParam) - - $vmDisplayNameAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $vmDisplayNameAttr = New-Object System.Management.Automation.ParameterAttribute - $vmDisplayNameAttr.Mandatory = $true - $vmDisplayNameAttr.HelpMessage = 'out-of-place restore VM display name' - $vmDisplayNameAttrColl.Add($vmDisplayNameAttr) - $vmDisplayNameParam = New-Object System.Management.Automation.RuntimeDefinedParameter('VMDisplayName', [String], $vmDisplayNameAttrColl) - $paramDictionary.Add('VMDisplayName', $vmDisplayNameParam) - } - } - elseif ($RestoreType -eq 'VirtualMachineFiles') { # out-of-place restores for each virtual disk - $sourcePathAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $sourcePathAttr = New-Object System.Management.Automation.ParameterAttribute - $sourcePathAttr.Mandatory = $true - $sourcePathAttr.HelpMessage = 'source path of virtual machine files' - $sourcePathAttrColl.Add($sourcePathAttr) - $sourcePathParam = New-Object System.Management.Automation.RuntimeDefinedParameter('SourcePath', [String], $sourcePathAttrColl) - $paramDictionary.Add('SourcePath', $sourcePathParam) - - $destPathAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $destPathAttr = New-Object System.Management.Automation.ParameterAttribute - $destPathAttr.Mandatory = $true - $destPathAttr.HelpMessage = 'destination path of virtual machine files' - $destPathAttrColl.Add($destPathAttr) - $destPathParam = New-Object System.Management.Automation.RuntimeDefinedParameter('DestPath', [String], $destPathAttrColl) - $paramDictionary.Add('DestPath', $destPathParam) - - $userNameAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $userNameAttr = New-Object System.Management.Automation.ParameterAttribute - $userNameAttr.Mandatory = $true - $userNameAttr.HelpMessage = 'guest user name' - $userNameAttrColl.Add($userNameAttr) - $userNameParam = New-Object System.Management.Automation.RuntimeDefinedParameter('UserName', [String], $userNameAttrColl) - $paramDictionary.Add('UserName', $userNameParam) - - $passwordAttrColl = new-object System.Collections.ObjectModel.Collection[System.Attribute] - $passwordAttr = New-Object System.Management.Automation.ParameterAttribute - $passwordAttr.Mandatory = $true - $passwordAttr.HelpMessage = 'guest password' - $passwordAttrColl.Add($passwordAttr) - $passwordParam = New-Object System.Management.Automation.RuntimeDefinedParameter('Password', [SecureString], $passwordAttrColl) - $paramDictionary.Add('Password', $passwordParam) - } - } + ) - Set-StrictMode -Version Latest + - return $paramDictionary - } + #Set-StrictMode -Version Latest begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" @@ -1452,7 +1342,7 @@ function Restore-CVVirtualMachine { return } } - + if (-not [String]::IsNullOrEmpty($SubclientName)) { $subclientObj = $ClientObject | Get-CVSubclient -Name $SubclientName if ($null -eq $subclientObj) { @@ -1476,16 +1366,15 @@ function Restore-CVVirtualMachine { Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): virtual machine not found having name [$Name]" return } - } - - if ($vmObj.vmStatus -ne [CVVSAVMStatus]::PROTECTED) { - if ($vmObj.vmStatus -eq [CVVSAVMStatus]::BACKED_UP_WITH_ERROR -and (-not $Force.IsPresent)) { - [CVVSAVMStatus] $status = $vmObj.vmStatus - Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): virtual machine [$($vmObj.name)] has unsupported status [$status]" - return + + if ($vmObj.vmStatus -ne [CVVSAVMStatus]::PROTECTED) { + if ($vmObj.vmStatus -eq [CVVSAVMStatus]::BACKED_UP_WITH_ERROR -and (-not $Force.IsPresent)) { + [CVVSAVMStatus] $status = $vmObj.vmStatus + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): virtual machine [$($vmObj.name)] has unsupported status [$status]" + return + } } } - $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{vmGUID}', $vmObj.strGUID) <# request body parameters @@ -1535,53 +1424,23 @@ function Restore-CVVirtualMachine { if ($RestoreType -eq 'FullVirtualMachine') { if ($OutofPlace) { $parameters.Add('inPlaceRestore', $False) - $destinationClient = @{ } - $destinationClient.Add('clientName', $PSBoundParameters.DestHypervisor) - $parameters.Add('destinationClient', $destinationClient) - - $destinationInfo = @{ } - [System.Collections.ArrayList] $destnationInfo_arr = @() - if ($DestHypervisorType -eq 'vmware') { - $vmware = @{ } - $vmware.Add('esxHost', $PSBoundParameters.DestHost) - $vmware.Add('dataStore', $PSBoundParameters.Datastore) - if (-not [String]::IsNullOrEmpty($PSBoundParameters.ResourcePool)) { - $vmware.Add('resourcePool', $PSBoundParameters.ResourcePool) - } - if (-not [String]::IsNullOrEmpty($PSBoundParameters.VMFolder)) { - $vmware.Add('vmfolder', $PSBoundParameters.VMFolder) - } - $vmware.Add('newName', $PSBoundParameters.VMDisplayName) - $destinationInfo.Add('vmware', $vmware) - } - elseif ($DestHypervisorType -eq 'hyperv') { - $hyperv = @{ } - $hyperv.Add('server', $PSBoundParameters.DestClient) - $hyperv.Add('destinationPath', $PSBoundParameters.DestFolder) - $hyperv.Add('registerwithFailover', $PSBoundParameters.RegWithFailover) - $hyperv.Add('newName', $PSBoundParameters.VMDisplayName) - $destinationInfo.Add('hyperv', $hyperv) - } - - $null = $destnationInfo_arr.Add($destinationInfo) - $parameters.Add('destinationInfo', $destnationInfo_arr) + $parameters.Add('destinationClient', $Requestbody.destinationClient) + $parameters.Add('destinationInfo', $Requestbody.destinationInfo) } else { $parameters.Add('inPlaceRestore', $True) } } - elseif ($RestoreType -eq 'VirtualMachineFiles') { # out-of-place restores for each virtual disk - $vmFileLevelRestoreOptions = @{ } - [System.Collections.ArrayList] $sourcePath_arr = @() - $null = $sourcePath_arr.Add($PSBoundParameters.SourcePath) - $vmFileLevelRestoreOptions.Add('sourcePath', $sourcePath_arr) - $vmFileLevelRestoreOptions.Add('destPath', $PSBoundParameters.DestPath) - $guestCredentials = @{ } - $guestCredentials.Add('userName', $PSBoundParameters.UserName) - $guestCredentials.Add('password', $PSBoundParameters.Password) - $vmFileLevelRestoreOptions.Add('guestCredentials', $guestCredentials) - $parameters.Add('vmFileLevelRestoreOptions', $vmFileLevelRestoreOptions) + elseif($RestoreType -eq "VirtualMachineFiles"){ + if ($OutofPlace) { + $parameters.Add('inPlaceRestore', $False) + } + else{ + $parameters.Add('inPlaceRestore', $True) + } + $parameters.Add('vmFileLevelRestoreOptions', $Requestbody.vmFileLevelRestoreOptions) } + else { Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): restore type [$RestoreType] is not currently supported" } @@ -1592,7 +1451,6 @@ function Restore-CVVirtualMachine { $payload.Add('headerObject', $headerObj) $payload.Add('body', $body) $validate = 'taskId' - if ($Force -or $PSCmdlet.ShouldProcess($vmObj.name)) { $response = Submit-CVRESTRequest $payload $validate } @@ -1607,6 +1465,7 @@ function Restore-CVVirtualMachine { Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): restore request declined for virtual machine [$($vmObj.name)]" } } + catch { throw $_ } @@ -1615,7 +1474,6 @@ function Restore-CVVirtualMachine { end { Write-Debug -Message "$($MyInvocation.MyCommand): end" } } - function Add-CVVirtualMachine { <# From 227bdb6e1446ea34a4d6153be8bf1b13fcd7c85c Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Fri, 7 Oct 2022 21:45:28 +0530 Subject: [PATCH 17/21] Adding Latest code from CVS to github Few forms were not included in the github. --- .../Commvault.CommCell.psd1 | Bin 9462 -> 4151 bytes .../Commvault.CommCell.psm1 | 2 +- .../Commvault.FileSystem.psd1 | Bin 8108 -> 3930 bytes .../Commvault.JobManager.psd1 | Bin 8572 -> 4179 bytes .../Commvault.JobManager.psm1 | 160 +++++++++++++++--- .../Commvault.Policies.psd1 | Bin 8558 -> 4153 bytes .../Commvault.Policies.psm1 | 37 +++- .../Commvault.RESTSession.psd1 | Bin 8200 -> 3976 bytes .../Commvault.RESTSession.psm1 | 13 +- .../Commvault.SQLServer.psd1 | Bin 8896 -> 4320 bytes .../Commvault.StorageResources.psd1 | Bin 8114 -> 3933 bytes .../Commvault.TypeDefinitions.psd1 | Bin 7908 -> 3830 bytes .../Commvault.VirtualServer.psd1 | Bin 8856 -> 4302 bytes .../Commvault.Workflow.psd1 | Bin 7938 -> 3845 bytes 14 files changed, 180 insertions(+), 32 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psd1 b/Modules/Commvault.CommCell/Commvault.CommCell.psd1 index 1e4f6b23bed783285dd970229b3fc19e636dc8d0..de1b5d4b69a525eefb90966ea418ceca9ee9dc4c 100644 GIT binary patch literal 4151 zcmc&%TW{Mo7=72T_<%e(0b(`I(xfd=pq`zi2GZ29(`;`AEzvetiBw6-u2J;A?~s%w z*-f%#z&5`m;^lm|^Idol9nc4rmKmpJtg1J%NM7oFHTQ-udx@s`yS!)G|{54TN#ix6O!r8c401{4Kqe1 z!b?~SyCl05rdBbICQ8{#@3-`TmT_V7UdIW$=h_G*NtXGHYf|$H${QF*0c3j!Sf}wx z-225}ot8zRv@>!%y-bA#i~%C7EtnOvj5o{lmfjs6IeDWYl?GR=qEd>lCC@e_QZB8S zZ`z`x>rXfeffujO&d*<+vTn*Q&bw#59`C+NPG;S+i;I)jyNoe+^JE=u)1Arv{)=H8H*s~(BJbSgu(kR8mR3VTt7^X z$VIu~LQMTEBM)LobHnwDr?E#La^orB;^NKWG%sc19LzFdH&ke~g3}zkc6`>p*w(pb zCymvb>**3it$6JPeh^aRWe!gSGE_o;6L8Ghv@dbF5RyaRucgpGE6~8VDDyH7RP(NU z9D1pcT#o@Cw3K*{gWIq?Q~hVjXqoVsm=7Y+%BZ=e`1bOSt~A)PR{G0hcEoh&61C9W z8)}5*gzpu?npOnjElUXj{bE%?Jfs&XnQdZZ(NNi2ZfkLWLsPrtl%Pg|QW=wrk}VL$ z5@`o|9}aFNNB_3Ukg>1kSgVAikZEE%S;7~IEj84+Rgxdm@2}2}sh_9kXOHRzPt+Lw zHU!8YLgrJ^AW0YsY6*hP;PAXETSB4=ImawAHDeiZxe{7QpUs69&RaC!p3gGD_k?DOxrF@-*aO-Ew{Ys(Sv3aN01O?XhWCzwWei?JFiA*nPQtQ` z>yCMbL5@@b-rT9mr;Sl}n*t@M5&JFAAXzzQR(7qI9OAuW_g!^B?)pQpS4!uI%RdJW z01rWL<5C9@9g`&5H)4=iq^L?!_#{*CM9c;D;l-wZz6eOQQ{bmt53`j}N9U?4(FnXE z{>^cW=33=#-W>ZRpSdxj;2M(zriuhyPZddJU1y}V$kK%A)DV;Db|d8(N2zdJMXS-9 zV}F!M;(397z_ey)qpo+Ou;7yeuI?Evh2p5z@=jd_9i0K4Yi_%P`#xx6JI7Rg4nSjR zueB6$Bz|*JcWl^mj1u4PxjS`qe{aaw|mv^nHCJw(o@Pu^`V{nox%O*>zj|i_HU-n znS=ZB^z-Fp@^SKcGz@;}XM&k0q5o4#qR;KB6GxSXyLJUSw)lsVRG5ZLVdud`FvX9e zECY=!ic#xYO{w~3n~!19$7DDipdT7lYBZ=P^4YawlT5ZJcZ~2rHv*}SLW7E2*PVhT zU(kM2qnFMy##Uox|_j?BR}R>xv1DCd@WJ^Uj8<7+c9#!;oHM}qZu3=w`6 zbhF?V(Nx$1C9)_`d;DvnHF`TWF;El6+#)DanVAZcs1?Us3QA*^a-;0RH%s*E*h_1H zR{?MY7G1V zPhFyQ;od$gqNu$YXt~Q9_e6Y;u({p=Z;$q+H@j|gJLV1f+&#kGTs;@xd`R4^iw24r z$agt#WWN{3^bu6hct`n6NOv(x1Z2r? A_5c6? literal 9462 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 diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 index 1444292..ff157ae 100644 --- a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 +++ b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 @@ -655,7 +655,7 @@ function Set-CVSubclient { } } "@ - PS C:\>$propobj = $prop | ConvertFrom-Json + PS C:\>$propobj = $req | ConvertFrom-Json PS C:\>Set-CVSubclient -body $propobj .OUTPUTS diff --git a/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 b/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 index 9b538f49c981475990dd2a830cca5bab547b97e3..ce41dd679b8f53de8b2951c10005b3ed63382e6a 100644 GIT binary patch literal 3930 zcmc&%U2oeq6n)pPxPTv$0I`~+%~yc}^_-*)ka$6yc6+5I%H}GODoNQfivITG;jj(VL@#!*iTPAAdv;9w%CqcBKXSCPFg3Tz$x(iw59%s_s-*Z{@q9@l<cM{^9A{xBYjgr>uW|n4R~Jjwfd)XOr^-b`a)(wd2 zuU$8I@}8w!5+vqarcVXy3nNx=N23X1EnP0Pn9eL2izpP}?^7eh!MiRRs?{Bc?{OUnB~GQsnlu?r@8c6^I2E0%ej-F zbf*?vk7pdpLu|duTOmbJ74SvKhFa}!0A}@%skt}Q z2+Ik-=Ll?Crx5R0N(kvUt4iXbz(~n_8KaIalpS%~sQVjC?Tk}`mW8CsnVeQ^iYQhn zJS6z;@aBH+-=+*5n>6pVN;rC%CZ>}ae395ngU(1vzE8iOo$S+~NKf8vjYMd1i79nlFGW-NDGmt3Dc<|CezhH%5#oZ;c^wjMlbjM zRVIlSB_;yXnqiQ-;f=!x(pnh0Xt(TNNj)jb%@lJ_NrZJ_6dis zKDQkH!jf-Qx#jR4mMYDkJN5g(ut;H8hv5I~v1F4@9MufhyydBXWm+(-IWLiqnoCdR z2f1M8Md|-ESulat>BLdZ@G13+@etF(s7j-KzmV;2P?-cd5Nm$x8?>vDfAAw3uUwqm)_ZY$>r_yZ^4%Ue_Ax;a;E= zS#A`@t+WiygkeLzaOg8;X4d6Qu#Kf*s$=rhiVAL-=i!%Rtat4`6-PBuj|A)SS|I$@ z(Cr8J5iOTZ(Ll-))$F(J&T8stV&Nn#fn^|4Yfptq)STn70n*qs+@d%2qXg3|_S!n& zbpYHK_t&EVeYw9`c`g?Tmr&wfOkLd_l$&tnixzIf#<&hZPoN6t!v&xCWvRi#68r}` zR+kpWmizP~AX=tCT#&xl!Hj!&tPl1s-Zd^h2X>EMiCP&ci|qG9#67=4j2=Gs1Q)GX-y7Z)$H(-Qj8py5O06r@E~(6OTS5ZWF|K z!G_>x0CHq=QpNNuQbFUL;VU6s$Eb|++qIwf{abH3_3u2sUr)nr_iBQc@V%z literal 8108 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 diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index db1ba78..53b8ea9 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -299,7 +299,7 @@ function Get-CVJob { function Get-CVJobDetail { -<# + <# .SYNOPSIS Gets extended details for a job. @@ -309,6 +309,9 @@ function Get-CVJobDetail { .PARAMETER Id Gets extended details for the job specified by Id. +.PARAMETER InfoType + Gets additional job information. + .PARAMETER JobObject Gets extended details for the job specified by piped JobObject. @@ -330,6 +333,9 @@ function Get-CVJobDetail { .EXAMPLE Get-CVJobDetail -Id 175 | Select-Object -ExpandProperty progressInfo +.EXAMPLE + Get-CVJobDetail -Id 175 InfoType 1 + .OUTPUTS Outputs [PSCustomObject] containing result. @@ -346,53 +352,91 @@ function Get-CVJobDetail { [ValidateNotNullorEmpty()] [Int32] $Id, + [Parameter(Mandatory = $False, ParameterSetName = 'ById', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $InfoType, + [Parameter(Mandatory = $True, ParameterSetName = 'ByObject', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] [ValidateNotNullorEmpty()] [System.Object] $JobObject ) - begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" + begin { + Write-Debug -Message "$($MyInvocation.MyCommand): begin" try { - $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name - $endpointSave = $sessionObj.requestProps.endpoint + if ($InfoType -eq 0) { + $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name + $endpointSave = $sessionObj.requestProps.endpoint + } + else { + $sessionObj = Get-CVSessionDetail 'GetJobById' + $endpointSave = $sessionObj.requestProps.endpoint + } } catch { throw $_ } } - process { Write-Debug -Message "$($MyInvocation.MyCommand): process" + process { + Write-Debug -Message "$($MyInvocation.MyCommand): process" try { - $sessionObj.requestProps.endpoint = $endpointSave + if ($InfoType -gt 0) { + if ($PSCmdlet.ParameterSetName -eq 'ById') { + $job_id = $Id + } + else { + $job_id = $JobObject.jobId + } + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', ($job_id)) + $sessionObj.requestProps.endpoint = -join ($sessionObj.requestProps.endpoint, "/AdvancedDetails?infoType=", $InfoType) + $body = '' + $headerObj = Get-CVRESTHeader $sessionObj + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = '' - $headerObj = Get-CVRESTHeader $sessionObj - $jobObj = @{ } - if ($PSCmdlet.ParameterSetName -eq 'ById') { - $jobObj.Add('jobId', $Id) + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + Write-Output $response.Content + } } else { - $jobObj.Add('jobId', $JobObject.jobId) - } - $body = $jobObj | ConvertTo-Json -Depth 10 - $payload = @{ } - $payload.Add('headerObject', $headerObj) - $payload.Add('body', $body) - $validate = 'job' + $sessionObj.requestProps.endpoint = $endpointSave - $response = Submit-CVRESTRequest $payload $validate - - if ($response.IsValid) { - Write-Output $response.Content.job.jobDetail + $headerObj = Get-CVRESTHeader $sessionObj + $jobObj = @{ } + if ($PSCmdlet.ParameterSetName -eq 'ById') { + $jobObj.Add('jobId', $Id) + } + else { + $jobObj.Add('jobId', $JobObject.jobId) + } + $body = $jobObj | ConvertTo-Json -Depth 10 + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = 'job' + + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + Write-Output $response.Content.job.jobDetail + } } + } catch { throw $_ } } - end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + end { + Write-Debug -Message "$($MyInvocation.MyCommand): end" } } @@ -539,7 +583,75 @@ function Resume-CVJob { end { Write-Debug -Message "$($MyInvocation.MyCommand): end" } } - +function Resubmit-CVJob { + <# + .SYNOPSIS + Resubmit the job specified by job Id. + + .DESCRIPTION + Resubmit the job specified by job Id. + + .PARAMETER JobId + Resubmit the job specified by JobId. + + .EXAMPLE + Resubmit-CVJob -JobId 78 + + .OUTPUTS + Outputs [PSCustomObject] containing result. + + .NOTES + Author: Jnanesh D + Company: Commvault + #> + [CmdletBinding()] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $True)] + [ValidateNotNullorEmpty()] + [Int32] $JobId + ) + + 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 + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $JobId) + + $headerObj = Get-CVRESTHeader $sessionObj + $body = '' + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + + $response = Submit-CVRESTRequest $payload 'jobIds' + + if ($response.IsValid) { + Write-Output $response.Content + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): resume request was not succesfully submitted for job [$JobId]" + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} function Stop-CVJob { <# @@ -1657,4 +1769,4 @@ function PrepareSendLogFilesBodyJson ($PrepInputs) { catch { throw $_ } -} \ No newline at end of file +} diff --git a/Modules/Commvault.Policies/Commvault.Policies.psd1 b/Modules/Commvault.Policies/Commvault.Policies.psd1 index edbd7883c7ef26e2d263010bb5cada74c97055dd..2e0fe73a92748c12567a23752c474c3f041594b2 100644 GIT binary patch literal 4153 zcmc&%U2oeq6n)pPxPTv$0I}+%Y1bAgP%lo}07(|uX}4EeqHV4csgjf(qv(I%A*nCh zan=mjmY2X3@44rGU-qIN-Kez8IOR-=88?<@N>d)r4$f7cFIkz{_)cXa5!@U^J;;3I zl51vpO4Ic_YHn?PQ}P|XdU1OC;&gEG7T=-|-y;Z55-kc_>wvbYkW8=ZgP8yuW{gUN z*RT?HL3SZbLotrVO4*9{dwPUrT$udiz$yE}wGm2^Eb}SXq-GVAH!zL@NPP)dr|}>@ z8FELbu^lbLJfA%IB^chco>8CGGPS{}ZGMT;%bcUr}z*(CXMAd26 z3!c1ZDc1yvC70>0V0Gb^<=oL|VpvHRYc1vrOU5DyIr#g$2x0KPi_TSj2jYjx5xFS0 zxe(JZ%gBQm(%f*p{awH@E7KL?axNqX-*2VRy98SJPRhKBL#laK?uT9| z6xTlBUWdddT&%1Y z!tW)*npO$KJC+gx`qip}cqlJYGF!)}qLH$<+&1cdf~j3_O3X%}H36aeZK( zVUSCz0B`P9<!o`{*icX+X#pDzMZ;}rPm*2B~qn&@0sEgFGW#2;La z(M+qnn>WY4$fs_ND7eNZfvqAzuBVEmvTiccN@QumbZUsnwEmFtjH6Y!T*au->tlbF zN#c2ddBC)07^7}>qp{#82V65VI)vh=VR^4E0!L@S!AEZU=U*ntg1cqMFEi_dW2(=s z(r6g%@r7iV?~h81gxU8kqDTKKCBJ4Y`Kn4ArjAoS@uYUohiMAcyXRw`tEFSL{b`@# z#*9sYtGQH~f5Lp{`kF6!Hil1(W7Hb=QxbmTInPrBuM>p-H!G5DI&oAn+{g$|{R`8= z1@kHLQFCcmewYbno|OJi3j$MilTI8}40oxICg+%lMwJ>P>WPYW!`LL_`sOaswLr0> z)u1Ogou@#iqn=U}d$YTTrLlf)c&VnfbTLA=dgNHT$PwYfpS{Tjl=t)3~1%bFAeX(a6_q5tvUb=W!xcC^@7y}2ja;q$|-w#Un zz6?3q+OTn}HSh;Kb%Egpx$UfoqVC6#mYaFw9*Lh2wktVP@b=ZV_V%m$STA}bK6B4- zw^`4`gAa+@b}>S+1^GFL9NC`6G5v;A(0EDtN=P>`O5^-?<#(F?jW?b8cOKub;NiA= O7eY%ouju@UqQ3z5TyE?D literal 8558 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 diff --git a/Modules/Commvault.Policies/Commvault.Policies.psm1 b/Modules/Commvault.Policies/Commvault.Policies.psm1 index c322a35..29d8691 100644 --- a/Modules/Commvault.Policies/Commvault.Policies.psm1 +++ b/Modules/Commvault.Policies/Commvault.Policies.psm1 @@ -1075,9 +1075,34 @@ function Add-CVBlackoutWindow { Switch to Force override of default 'WhatIf' confirmation behavior. .EXAMPLE - PS C:\>$props = Get-CVBlackoutWindow -Name 'My Blackout Rule' - PS C:\>$props.name='Your Blackout Rule' - PS C:\>$props | Add-CVBlackoutWindow -Force + PS C:\>$props = @" + { + "operationWindow": { + "endDate": 1521691200, + "name": "Holiday_1", + "startDate": 1520485200, + "operations": [ + 1, + 2 + ], + "dayTime": [ + { + "startTime": 46800, + "endTime": 50400, + "dayOfWeek": [ + 1, + 2 + ] + } + ] + }, + "entity": { + "clientGroupId": 0, + "clientId": 2 + } + }"@ + PS C:\>$propobj = $prop | ConvertFrom-Json + PS C:\>$propobj | Add-CVBlackoutWindow -Force .OUTPUTS Outputs [PSCustomObject] containing job submission result. @@ -1111,7 +1136,7 @@ function Add-CVBlackoutWindow { try { $sessionObj.requestProps.endpoint = $endpointSave - if ($Force -or $PSCmdlet.ShouldProcess($Properties.name)) { + if ($Force -or ($PSCmdlet.ShouldProcess($Properties.operationWindow.name))) { ProcessBlackoutWindowUpdate $sessionObj $Properties $False } else { @@ -1353,7 +1378,9 @@ function ProcessBlackoutWindowUpdate([System.Object] $Session, [System.Object] $ if (HasProperty $Properties 'dayTime') { $opWin.Add('dayTime', $Properties.dayTime) } - + if (HasProperty $Properties "operationWindow"){ + $opWin = $Properties.operationWindow + } $entity = $Properties.entity $body.Add('operationWindow', $opWin) $body.Add('entity', $entity) diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index 76ba8c30844a42560cc6c06b9c408f056a5cdddd..f7941740fe9ed59cd114514fc8f8e37d65f7a2fe 100644 GIT binary patch literal 3976 zcmc&%U2oeq6n)pPxPTv=0I{07N!k@CP{U5r07(|uPPSKCqHL}bsgjgkqv(I%At}qU z^MPi-w!8!;FV8*q`>GRl=tiYg&Z%HhWZYQFl%^t_b%&}bmaNKcJU*XHC)^mJWH;*I z*(H};Gs{z&tv^yDxOb=IM>>7e@4x9Ezx@q&(dQo#9#0Z2O1n`5g)UyT$9RbG;d}c1)Pl#;QH}# z-0%CRld3G0c6Q!P&QoClV}J;QOJ>C^=i6iYM4t~1oxZCPRR&M2qDqQy70=fsQZB8? z)@{|% zwjJT6JxjSJyjXIXK7LpW+_Hi@8ci7M*X3G^`NER1h(iJXK087ryzio++Q{JfL2^hg z(A#u~X^`jSK@4ebxL)!!_UI#Sd=|L4cyl;ql}wz2SuX6FO0AY~noF=9pS2&hIk$6^ z?$nCw$$~?Bh_2UpBcv#*0?r8eQ0x6ez&9(?e#GTmNDj*1Dxn{9*uuB6<}?o3=Dqnm z^g^M^o&)Z*NPL0dCNi(2|0*3V6P{CZBNDBQ$}GjV=To}SNSKw?a&LQ5iln~ReR+Yp?SfN+wuP+9nVeT_jwn{B zJY@L6@OpgsZ&QYjeVTV#CFq?fKcwbz?-S6y}C7Ox-QX&wral@IW#Nh&f2ckfL?&<#FK*}Pn}F0f1%A5qFdGd`bS~;Xjle77-(8kb zrd83-oFiZ6Gq+KcTw|%gf{`HGQ$ zcu`^~Fs&J8sT<&EE%?a+*9?vpp*U(-PSttf=nTM&lM)5k8$L|jG}7H8>W+j-o;beb zLCmi`BW{_+U|KNjJ};4v8llJU2f1M8#n=C7`d}*U(ut#*;STjW@bwxT@}Z99 zXfniHF{;vN^e16`%RFs=>p){1+Nqn-<2KJ9-fityLf{NMCGg z#(ksgt^jSkD+oRXHb&D%1>Gu(?DxaQeXE5W-P*7twKec3Javu%fOq>@5k>9Gke0i7 z3y&G>j_3k{rUu1){8wAi2&TBe9qv&rDHaH{z literal 8200 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 diff --git a/Modules/Commvault.StorageResources/Commvault.StorageResources.psd1 b/Modules/Commvault.StorageResources/Commvault.StorageResources.psd1 index d2a9453e4ace6dc17731888430955411fbb2bc9d..8b55f0de4538c742c1a33df832d799336983621e 100644 GIT binary patch literal 3933 zcmc&%U2oeq6n)pPxPTv=0I}MpP5J>8s1YY^fW!;pwA(8sQ8pKeR7uK?G4#Lhkd!6a zZn9;-w!8!;FV8*q`)Uvk=vrlU!Kq|Ys&&fE zFdE?PXD+#BmS>c#KTs>ZbEo77I(cz?{NniKtM|BzKK&8l@hsJ%vKw8{nh44CdUKEq zuwurjRCo<5VHacq@ zz&ws$#^L3xt}3OStv9ptOjw{80K({sS&EO_*yPQyM@Wd*rrTAX+Vof6B z(u#cD*BpKR3Q_3eCyc*kNixb$Pftg0PL5xXSaR}y^fF1_@a)~&*ExUh4H?&V0iSIf z5H+WLXLxDPQmzRvmRx504;z6gE4ic5hO&8Gt+kjhEE$Vfl;H2vBt*lzE;>^i89YBo z56K0)ONp4qML{0KkmiQ#CC_4yKH(Y6+*gB-`>?|6!l= zUb51ST5&yFa8L*l_KL5C6lGn)BOxam<-ZCzXl443xSR{g!TWnH^gfXezLz;CP2PBy zJ`TN5sJX|02R#yBAh-$7GwDA|N6&=E)Le^HE2DBt@$~$TE;O=crS$z{cEoh&>bBC{ z8)}5*gx^bqH)|4!_bep@_TH+BcqlVcvRKEcrirpsZd-MKgQ;C`O3}oSS_PBy8ZC@; zjq*d9ADms?9{$^up<|ckjaF!&1~tfZx_~cITWipnD#?%Nw|A#UG%mB#H;;0ICt8eg z9|A=XLgq`-pja6CYmEd;;PA3(UqYfAImgTkm9T=iTneqEuj)z*@WOqN7IMB-akotY zgd#FspBo#)%cKx|M`@v$E8M?;9nc22htu}ZW=^X=l{kxPp040g3ju@0pQZ%h7{3KKHROABp@M1SkUj(GqDe%+O!)!FP(Ya_^H3F}Q zKe!yDT&uF5H%Gq66SrMdTw}q&vXLU!GeuHaHz8>yiY#S1GsI-JxyX3I(JEZ7V&v%c zkr!o>cv)dCFs&KJsT<*FEcnR**UpX}p*U(;-l_Az(HStD^3~|<+m%Q(7LVZ(4L@^> zgNZQrvx=p>JKB@EMss50Ie2wKvpPvp1Jd>`{TgsqX0W8k=>K(5x=SaH8irf$@zlRD zEf}_&r^rXG(Ej^zA((mc^?#Zj7&+T?;;3P`Pkk~w!+2;G-Y3%AO(v7JtMNY2l|bgB z?$DsxGDLdaV;W`1{C2Mmo783{_pjPI>tlr0@f5-Zy4Lpl8!eXD-6&(0Ia?~M*6zP6 zuIKfFW}26%JysZn`6?|#_h49zCk}nV%)+{y3AV8;jB$*bMp4Nv^E~`+jIFL)pyH?@ z>XBeQJ{1Um4Rm+l4$))T937*oP<4LE?ro%wCiYCi)>j20jrL5KR4qBaG(Z}wh1=}r zes*Ad#a>$vya|9iaeo6E)7RUpjpquHatS5wqp7dEhjJA}zG~qXYs}{WvAFg=f zx1$yhyYKH<5c;$*r`*w#fas9|aY6cG=`!d@JL9R3cL~9tf!(6}qE@ELqI~_-aNk}b zM>`v~q&fqCz*Fbwn3&M6Oa|Lf-?rQID-Q{NMneg0ws=75Z z7Y{xpZuP@F!AjtpK5}GtG{y7_QbFVM!dF7JjZqutw@W|ZN7vqT8r^t&zmEoK_pt;m L;k=>qBZ~e6Oo1!K literal 8114 zcmeI1TTfe85QX=1rTzy?JV2yEZlp~sRSLo(K}ymHNZME93w6Pl+7J>|`Ri@hx5vXi z`&_^{iCR^a1;^){eOWWJ=C=LUpKIak@Ksm~t?)8TLN8o|v(VSwD0IR&48uTo^Kh;w z1HGTcH^p)5VOP&b`n=N&W}kSKs@Yo{sg$jB{Ok z+UGcY2tVjrUEgM1H+Q1dnENQ)4G;9;|GjWOd|%j?`A@D10+XJ&h8NGL4w@ z$9g*!%9+rirJ^nddS}|}NN01s>*`68=u&s*;aAP$|4<{Udftk74m5Y7QMpZi)cDo( zy(Nj}LVI8Hk=5mW8+ASx7Btq<--SjU$EPhl8m z_O&7w9cq8L2!cU;QnXc)9}PYWZ-T9Bvi8Ndj%I(S|Ht}lYK3p(XESW;-GlH@&v^Gp zOx%=S7_}V{J=Uy;8sFEO+(tV>2L|Kcbv6N0KDvo9`3_09<0!H1^e*b5x8%P08m}bf zNb}7ab)2mtm}+l)??kc^Z-_ePJFJ97QVeRg2{_6tnHDzWjd!$$M}oS@vZePsV#1lO z2@8HY69%|5Q=EfATO}*C{6ELhaOzTHns&q5 zCvhY?L-Tm(Fn(J`FLg51N2f5WCBOTC?i(_3?jsBm`X|H6PZ5iB!u} zirvT^I6~y73PxuevLE{Fhi`QEOL(kGfp0s~VNc(;SJ0mGql#pw5l4M2Ntp&t!vk_L z^(r+K->4Gd{HRpLkq@l8a`v2vy%UYcFJSjLW;t{PUig`_#%DC$h)uYe*74JWg zU_;S@n*V-eQL-O=OdgBzV2s*7*|FN^z`+f36riQG_h|P?Ob;6b+|Q zj(VBj%bsTo$*J>=tGVqiV@yW++wlyW`Tn=TycfAmUyb+tGq{TwZiBt-OI80Q(!m$v z8S%mVgN)&43cSrLs^VMfeJo1HjBaecvGYLl%H8nYtR}58$0H#*((#m~sQ0P8n9EX) z4sMgTAKqWZIxGlNsd@1p@8*-d#B$I7@Xw+qGR_vy?Tm$d!C0zd^oOM0skT%nbEeRf zUhv$WRzcHaeJjr(CgHhOi?~Ny=fr6RdszQ#E8yG2ZtFf+ojS>SVDI~_&ao^;)Bqh) zk?n8Nka>Ako7n1Urb)NMdaP(J)fw-Gx2hlL^T7oA^@x96JvS2Ch<4QasZI?z7eJ47 zqi$a3rDjrbb(DLlXUIo&D{*FVtbHs`FsgoLe)6y@E%z3d`JYQ=E_H9zj`1khVl#(w z-M@|O!LoK@w5tAzCe^i;MZt*z7&t#z6~TWunpn4Vopy`?xfYkzeOu9CS22sKhnhT{ zL9Z6oJ+HL2TDRt8ds$pWCCdnw6Vbw%a29hST(QV@D)tbWi2C)X$SLnQ!eX{dyLqh5 z{Up85(G;tc)sgH;Rx(rCr5**f-!S&imcx3InlnJR6bR_7{N8h1QD>jKj>!8_GBz0! zYr&?LI6xNzN~={s%ei!0PYgSq(_9q-cNT?;Hl&v*cKfWHvw%Bt9wU9tbdJrhB=zSC z<~6xa6DqSn`t_rwRruuCn@0KQHO)8@s*`Ayj@UXCey`rnqlW6MBiAclNo8SYjhucY ze&=>YOZXgTq|_x=sZhUT0d}SKYzd3`5@W2NGfg;VzvkGhjP!ASW&Do*-pK1;=$fQs zSN5j@8877V%CAX!ywq3rD?8vLX`MGw20uklXJbCYuh(OPwZ=|Pc8`V7Ppqma>1Ze6 zH;tpdYu23gX+G}La8l3Gg_$o|tOkd11MdQTbNAnja(}VrZSc{L6Rj*GaYjQlBI=~> zrCRMb*|T{y7`LtuGmEo7>N)m&Dw&D*wrlQ})tKU|G|etX))WPr*8#!vsEMh5;~K|~ z#kjwJg{hv~AgP;;-!QiZ1G<()u4PQtZeqJKofl5qExC zL=bdB*Mu+I`7C$MIEcE=#C=6&|MhY+>qT4YPVf%LZ|tl}xhuQdps+ z*@=3%`jtzrndK>s7oVs-y!KAXPjvd>`1r%|;n6wXMPL4iaQPw8qO^@E7#$1A^rCr? z36NsOs6==Rb77}sr^2*MirwG}q z15y378w-Ehvy=Xxp^Gk5a|YLU zlRa{|UMeD{L7tNbF{HWSddAb(qYt_9LU3vE?r_Q~nK+fPT-XJbTFnqNr?HiobuV@~ zuS=Eg)ST;wDF=g)U~l&pQZA|j0SS_*ZT~6|pSkH?;&LJ+2kjq~(3?D#@Ezft#zAmC zqT8XT3I(?fxYr@^4F{X-yp#UBY;;`MX69BTS{apDibt1^bfqDhxzf+u{D|q%Rc)!c zchm^W3BPB^Zd&VzcRVHJ_1UVDc&IW`GGD|frlGPUZd-GIgQ=ZzO3=ZetenY7#U{vN zh3bRKcQ0=4_x^3lu(3|_POF5Yt7&37nIaa6tu*M2l;r#LTmNjI21R;yvXvVm(P9j` z5U7EWGGCDfwZhO{D+p|ifERW55)#eG1!j_~G0Ta|nb1o5qAs-nFT4+@g`BJu+UFtm$KezX@nV~84(NkV#e5|-y& z@0fQu>GVx%JnMJQ0TsE8;Is zW0YxCbak`ui+t=>i;`<>7uYlsXgyUVm30G><|0oMrc*;qrp=3#=NzrVX%!PkFZTUW zCW#j%#sbrtVVb%Lj>dwY9B}RE=n#sdmgS?m3>;erE{YUZI;a0%`pG(-II0TDMV^MlXFsdTwf%>_A8b&O}Ky9etmU$k2ZN^GMd4{Pb~7~Wl4m?7@bn}FzF0(pUau@D*eDX=&A5?vPe)>RQj-Iqa@tGaO?HQ$i7YndrT`+D8_@~wN>Y$W(@bl;F} z1DwbQPmAE^gO;_#WJP*XiKSv|kNdXAb_l5AueW`l9Z&Y` zxg?GOwW=!X_}q49-?`81`RmV(@NM`eY=l;L6(*q@&cj*g>24I-VH}2`ue*6z=t*Di zXYoyO+^w*u=Og{zYX-9yVLP0Jk725r`#Sof0;PqHiLU11)^bf>`ME}ob<9Lzp>tQO zoQlHtI#;RNtgGg-3UeQYJK?^5{ND}t!jrap(xcP{`qTl*z+*KaIS! zHR@w!1bmw8+TwAp*&RJe99`&c5q{A;{)ZY-mGXAPbELTwjmkChgT}8T?QQWh7dQ8o za(8auMTyUa1bMY|oNLr+eA?2pehF#Px}hwhE7LNp_hkupb?lT@KGsT8{gA2a`%O3w z&!qXHoj6jnfoYWGPzaH7-S}2u-KSwQ+|KlRC_8Lv&H2){7FwBmtnzoAd!mRwhgu&? z#8Uh5Nl{aYe{ekyZ-db_Ui(7V4i98=J32oOTe7()k=|B#C@Hjcy(R1&U7zZzr*Vwk z(c2w8d7?A3%{QF$U7-VmS>IJUVMac>$zJjml5EG3V_WHcltXvLb#of8#p_7(O&fI< zTSYL{+IZeTyyAOA9P=C~p^+4Snsow>G9{D3rsRHGG&~N}#g%Qn-<2ht>720Or88l` zc4mrkM5pbNmWXomLhNvlO8Pw5S3-*ijl|bTBazKaa;WG2r#Kpmy3m-W)zI}IjznU} z9seB0t5u{@$3uN=dL%8DBVw}LTyv{o$4f0!-W>NvgG62|X(nW*->vo&6djk{H1>*Oyo2R2Owgim9s zUM&%=7*S`Ltymw;g^P?d)hMD%%7A3yu_%5NPo5F>^=u&yd-|{P_vIw(xI0>p>dtC} zGjWKAp6fh_e9dB1Bc@r*-&Do+G91NdnpR zs#H*1Q6pmWqf!k=KCs%#t!E(XooGCMfpw2#jzd=CXfKx8@hh?hQnUF*+E5+DH>qk) z7~%U!l#6+yn6uykKC4yXZq!vzIH)LxqH#69a6%Plmi)PxH-xE-yB<+J`n*^1-UALc z6)mXv??o$0`okVAt5W%*KmJ`)ov0%!>zS$>=zI-rr8ri^KUa*MC_)x}s7Y(ySrTEb z-^zLZAbp-KIj71uTg`QM5o5B+AldNsc81P;{hMGuh_+2fjraUBxQiHWg1ziZRsST? zp#wU2;)D4I8N+uIc$-&L#kW-Z>=n>0BO9A<)_J6P)tMUwD5}s?dh6rX;DXuE}chTC|x3Ybfb>)v2 zR%xw@f<7D!blvMB`0sk5bs1Ml$1EV1;;ORW*G}A?e4T26T9&HSD%=5+N;@AcZsC6>|x;!aiX~J(YDRM9cb}*A%ZEVKGaj)#_tZdY_{yX7}}x z9K_h)Qzu1sf#-S@)J((JcUtW4ifeYxTvH&RBk_CB4MmxK>HM4bab!9&3)({OE$N2p zAC#8kLCbFLzMdF%I*z$AD|Z%!iaMkQFLudL&aHquvLPd#X4?Jb%R+rWZeEkiG@&vL zq%Q_7QQ?l<+xr z7Rl$9;i-FVUjg|;X&^lK5@W0nGD$dQKj+x17U|>s%=ld$Z{_tbbxz!|DqIs+_#(u; zS4>UZ#2hS&b>I&(Soy7+F&kXr=>#7f}*ZeHj`@dp6rYyu?&* z+n}hMjo&c0%r|4%|L2>NeQ~uf2==Y@gWkH8`tF_e4QQm;$yld#T{lDA`EeORkO|!e zzHIxN+%@AM>bfN!Dk}Rozpbo?Yw3F!-r@MoI;&jnNwe%l8aKrmRT+J{`~vtlFUb+A diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 index 7914b40ea515a2e3306b0d01370fbe51dec6afd4..1e1a01448d4eeeb07269de0fd0a7490cec929173 100644 GIT binary patch literal 4302 zcmc&&TW{Mo7=72T_y9jR0b(^tmvk*qpst;y0pc`p(rmA^MB7{?QY9(7#?b%1LsFI{ z$IhAo+wzi#m-F4ucVRkFhej$bGfp{^V#)tu%lin}qNz!9)-kkK($>j9y+1c?~a(wR9>6dm6 zkF_m`s@0||{AsVHToG<8xJ;j3tPb3=oI5q@KvuVll@_zPC1VkZ9Qu2PgjjgrMFX`y zgX;&$A-Pa*2oY01%gBQm(%d)-rLjjJa^rd6;^NKWG%aP~9LzFdS5#=VfYThsT0U!D zZ0g+RDcz|h*Y|S{`60eu>PSeDmpR-K7*R?7O~5-#)4asxOh^u;zm-Bi)nWtR;LTYa z_~!k&A9}8kYx{sZ4JAI|;5s%hRR2XX8Yb)$GZKkbMolfnw-*m|sX>{g(qH%45z~W9 z*+O$~s1cSEz88pXTCs>XEG0zst5pT@kYl7|wu+HTLuGHdt;PL>rgqLLLGc2wGA3sw zn<0uNat|Co7~G5x|812aV_VHTtrCusritlf4qqg;)KKSENq$7X|9XBz{X9MYWv_1V zM2*pJLLdV|$b3E;WC}xREkUpe9G+LTOGuO==a^ZhCM+W^7eXuPQ@YRsdSO4D7IM}~ zw{evKA&JbU$n}lk`6Ls3OK7H;%i6zz?a&&yfm0XIszta~VCVpa{NylL#^5yslZ5o< zBrMC&lgtYYa-<6I=0R0H-5B+-Do}?uV!!7ZBrE64%C6;{L%etFwyQeiuJ3}qR60jo z{yA^}*af|gOC3P;PLk;6h(TVFqAEqPp z`i)*4`J+q{&kHmKrZqz^bqySa1)m&nb>nC#6i2m|59%W5=nUvyaoZa_Rx{0rAsZ#{ z9?{PAk1Y9G77wT#?nL<7aXF%$KRY3B#Db3$%8^6#f9wFH?ogQAo!YUvPudv1R+{g) zLEV0u?pz=9TrGb7%9U1SF;LPXG+jUG4DuB5YWV&CB|@^TP8?Mlwn*Sre`H!P3~<`0%_r7%Qhd@8`$LrN_2+0 z{uRh$i~%W1PW_e$^XvKzPsl z>+w8um8^o^EVxB9H#S45E()}K|Fmhm1Du+e?g`^|5frJUr@|ztFnHZTY0PwPq@MYv zjkzJNOIZb81;B}OKOO4Rm+{TobD2oEgb?>iZOU$-+=L@vv~bTE3`POy2~_TUxa1Q* zmezQ9ar}YFtf>|T1h@1oAexgvTtHt;yT-lp+9OmG?-~bpfsN7jkiNIdg8jZ-yZ3J3 z=*EWDsf~d@;He9=P~6*QMHDqR11;OUaqrbn2-~%sDtP;PTl!|#ZLY`7A)mVc4Y>J! zD!%)WxS1P`9J843w&2M2Oc2v&P(kBS=QAN~W0c1E?b=UPy^%MadUqb*KLo;Q_e6!1 LuwJS2BZ~e4%lDp( literal 8856 zcmeI2TTdKE5QY0WQvSn8JbB}lQY2$AHWJttV3Jq%0wIRo&9WFu(%^d6MQuofnzGRH`oWG0H^?cRmx;uzZjx@e6 z1V!kC58+3B*CpGmo8}HBjk#;#e)v`&{yqq+;c;nQ=06F4#5*o)KXireG>oFI=b0@` z?~a}hq|aFBuus_v$9iUVJCe07^sK8pNuw+MnuK39kH4oHQMd3)#IvWlLygM4@sq~S zYv~o~av_|nQ=7Y{htb*>LV>Lc{kzntPP|*_-f;zG($f%@kyT|G&Tqwl2l}@fzN@Ug zueC<{U{Uw>Yw_cm{EmeT)5X+R&VW(0j$ov0E=&_&j9}kE!G@tZ^I}*Oe~zoSX>TVctlxhsuq{ zK+k@8p2+#vwq~2xZ_37nqG=eeqK5nO0P%no$}yg6yep(c&$)Cu*GTv>mW`S<|2d9^ zO;;MzwivE8(T8$bqi5^u+Sem7b2n+qpTlq8SI*b(#o; z9*IoFh$dzhs!3#(w~|8ED)g&d{iwkMN&Fz4JXde(-b5Pq z^|!9y=d-Ni?rJ@HI_nV5q#+SXH+K^C8pn)AKC^tkq+V?&?8Qu*EXCDr8SUR^Ytv*F zo4yt+==AU=Or$%eKkP>Cz!7r(W#mqw-sEMpXFq(SaleEgRP(u7mkoQmesl-xIX~)1 z)?0Bj=aN)o;50m-3e%<1J#j^c2RYX{1Pqo_x-&hO>Vv#I8E_{P=TcULhdn++0&Z|504^Y!P!ycN04KAPzH zXK%!9oeOZE69)4><^?&JrH4=RSAA@DTssLD_2^zkVBWNc&ejh%a%SKR~O&wA22 zb37ALBOOmwi{_ZxinT0t=ioMd`{Dg{uET>cm7bUA@jZOfmt5}kAO2a^M91;;zMZL1 zFBnT#jQ!Bm_o#*XWKI%#vI~*hlN2n?j;uO^oJ8bWFX9nxdnV2(Si^R{CV|+7_qOjq zI(?GuetpkxeU4QzvIgkTirjIVg)GYJ*2GuOGE2H27PXfK|FXJ=!^)Y_uCQ4hg<*?P zo7u-djkDhh_eim8U5d*nKbvi3xK+&YnH}eju)ULhFclk5t~E_}X2Zz&&}L*MQD(Ac zn>oLBR4~|0?e5Rvy>+p;H^+F^K^rVIn=V*k)>WPhJ(e29b4F}$v9qW;f=xW5YzRYd z8fpLMhH7r;-fA7o3%M2Bb3$(WL&Y&&;!*6@VBOtvGrp|LniU0SLtx+}=&lI?-_ouO|iHps{9MA>uNzVz<#vLJbzlGcqo zmRxGP_i|j+H|v9}6ND>gl8Z*=K9N&sJYwey^g7LNOwugR&UnTprPaK{m<>(2H@`cQ zE$K=>b{h(IJXC!<<)*9S>PR|Iqzfm)#8S#L-r1FH_PM*~{1k>hmA(*f;rBwmVebw~ z>(D{Vdzek#G3=ZdT&OSRm%XPc`;Z-U`HTz6IScqjFUUxjncmy*MzHxb&2md_(}c=+ zklyrp7nfsi8|9-HwDy5eokXu3$wMRI_dSbwt$9!2b|ot5r|pEDGrz>|+^<-Pn6s|O z-Zh%d?NpF!B%KHku|y`cQw+0&WA^VHdp$0EoPRTZUH{%F>UZ>=v}0AYCa(;p`uKjQ zO?#r$CHprk5F<&>o2Y}oHA*MKKEuCn#s+K6QoPUT2%(?T)=_efGYr3J9J`u!%h~CK zkNY&7?BY0ou~@QP4G!Z5(FOYUGp}}(+f$kI;G=569;@4&Ow#|7b<&=_zQ=9zXS*~Q zx2O*@%d%&qFpSkC>Aga0oHd-unkQ|*q^*@2(E+pZsvl+PjToaDB%2=dOWxNl;YZ|@d~ zWqT{Z$w4~~vaU06TUpuP)-Pu#FokwxM2F)ycGk7rkY{<5VA_;t)NS)&v(9aKkP+4x=?AAb1Ik=88?-HcOVfnop%V@qbmH0SGM`b3|1_nf-35mg2vR#7Fz_loB$5-FEfWUH>` z=*u0hLf`n8qvO+~qhbHUcrfZ89UqVTr<1{?KRKO@4}LxPFd3hocshg1&f%*~1ETu0 z>jZz>vy>}>#DdH8sbGEKk`>(1XhT>_mn$u1b4$h|1_k*0vk4)`x5-IY zYRUD@oI`bptXFs;q$sKao(Q>6EBz+mn5F3oaXAx`gYWlB=%)nM@STh~jzgw-SH28A zSE#L*fO{PhUvaSs%NyyxNk_+om(*N{L@T2*OY!CSmL?k6vP2_z$&Q$AU7ePidqa(| zobY>ru%>ka@s6d0fIe7N5)b7?O6IE=RWwrelG|3@-(YIzoDwuEq*Tu2tYR}nu|nA) zy?2M_*L(jqW$4(Zd8Jjt(Z@6~oy_5j#8w(~E|ui_^!w?_J`IZWTuoU{TrPxG(pPh-1$g0mxGm&tqtdSH0tiK9 z*8Oc@3@@g+;9E*_#azMu1#FKR;0{jPJL|dN`oE!FwD9+P!7>J~A($kjHz#3v&h?IY zgF!B-0=&6ZwNKYZ-L6Wsptah^B8O(>oLSqooO7u6j@@=ukDT~(uoI;V#O0p@2Y~0G zo4B+A#K0tp>5Ui^byC!=DEuT-@C_ODY4aiFIY+B-xr$MvSNr}d zlf;V>^MGm1Fhi0|whOOi^@=<%~sr(=p%)Bc7pGFrWW0OuC)eN6fAKeVm z-i@j>`t2*}=_ZRwuA7@rfzAao7j=UM)0R=mk_Swa6q(!ZpTc7 z6Lg(T`713J*tsZWmN{EWtitYpR~&Dv<$4+ys2!FYh50BgL-jK(v?GT;XJ&3)&IH?7 z8pbe2MXjjdmU$k2r^Pn5UV!4LChC!3Jyv_dUk$xJaEIuTY=(+2OH2;G9CtQJM-%%Y zVQVV`ky?8yOrjPXF9VRqYT!1rneY7=Ke5-=0j~q#PTXIQ26T6Q-gqt-371gf9yeXx z9hCEM85bv%ptEx`|O4 g=eILIp!*lzbn0Jue7{eI+wPGAE#bVT^D~P61ZGkT?f?J) literal 7938 zcmeI1Yfl?T6o%(>rT&MN_yCa#xmRtaN}+%gB$7rzl70o>>IPqGn~UL2t7T`!dxRg zy`RQ6<$3F2N8>|%-f0D^=V2?niF4m-&6(~l!unzt-|MNUj`W>s&0N=x=$?iT;Rju- z^la5tYsaF-+6UpTzV{Zt+@-bLJqdrr5vO$&+QKjhlgQyvSd#>d+f%(A3FTDikV<(* zPwz}xCz8=j@7fwk99`&X9)8t2eg~RSmFrf-bEvgr&B}G~qvo$B-z{-46T15gNjrb9 zql{@=94$1~Tf&yOGhAgn%d`yL18MtS{F;t^=OgVj(FZBIhF^xGuqO#4 z6+<*z=*P7_iP9SgA#$yoUj+7j5;nq}Oq2UzSL5fBf?3mCJM)YU|E_CS6w%;7`(t|` z=*5w;ZW90S@ie>&M%Q@V3*U!F;c@s*zmH_6o8h7O+1AdRas08KHubipv6k*y@qSP8 z`AOf0dfwB>w@W(O7CJDPy1y6gK32cSHlP=j%3=N2Wp&JkzHrVZkq_ z!hr2e700lkttBn(#`h^&xJM;@A&p+NxVCt)_b1v3Ysc~?qCFOMvp|n{d2Gn-uW8RF ztykl2As-_C!q<`Hju*gt*{^d=Jr_QFW++aEnu#=~l1x3nZ{loh=t6Uvc0;@UI1?Em zX*_Ze?^cmR9S`-<=&|&+90QZB=DJ!9JAP^T@8-DI8YJ>;K{FvUjedDed`WKVHF6uC zut7Wx$)htO!&Z2q=y|NWmfl$OxzO8bcza`;+R}>S%Z!X)V&iU=*g6@DT!Bqf*Wkri zs@FioCuY=HW}$pQEO{#`#HvD1<(x;}9f{%x@#NWZS7UQ=*wt^9zt1OG$KBR`)NEE2 zoQXp`^jz0|-_iMCu`$m6`8)2RZ!ERO)Qb>mrAf5 zZ3i16(w|4$DO8cXi1O@)Z#3_hnCZFOmJB<}`j2iQJ-3f4lI=zu^|2&n7Hk?jAoo&_ zQZsQ!Rfx?Gm#Q}MfmKs(J$+g4So84hH5{)NtJQJ z2;YaIT+S2aoCOc?S*-)NqprHbK@B+&jjQ>ElN0I3EcsJ0uL;vK?s`P^=<|NW`wKYO zP_&@NzaOnA=?{CftV*qm{`hrGwWE%xrKhTApz|fPmEu?#|4cDzD;iEB zAN4%Hmp;!HoKx4Et>(JBh%wn@kZkyRJ40u_|4lHrqHWVB<30Zj?lOj(U|;s7s(%vc zuot>?;)D4I8N)kd-sTlm`7QN58l@vfHn!fZ^HA%SyWP84O)sd&5QSVx1RVVmV5rk{w!+3<8(1@XC~we=28_SKRETyv{0SQ znL$T#!E-yJf}}^fTV6p-!gH+_agVl6iPH%7uzuGl;M>@}bsJEpPO_fY`+Tc&EQ=8} zKnGXEj_V|3US5?Zy4uSm>3UdK2MzvBRS&Og&V=A#U403CAg2UP^YTuAM_hImlKEek z%erh|D;?8gF2!aY=CXesHN_d1ozUD?{&;hh)~YDz;K4w@ep>|pU2nE-{m( zRrb5`*B$vSRR=XO)vr~^w~MMC*LOv&9c!nY>Z-U7V#FrWT24X=XL>5vV{^^{2Ec?mNPAwn@8rtjql*z0c8%&LR;v)kZ$NAKxwrCXgLSo)reuIbD1ea^JGz|tV3$~ za<>iT+zNOiD>2h)rgLNdg{bfA&1-U*CRC<@^zT9;DtvP6O|yLVnpPYORX=LwMAkYH zey^V9Q9||AiOUtQB(vLDAEyt=zH_}IC47!EN$LWt6sVu=d;wvx%+NL zxxb)!6MXc;SdV2S&Pa$xM4i+W)Bjt|BI=1V&BI3@^iwJ^D=vwe)J0In#83$3eF5I# Z_{}=2T<%D-oM{?2 Date: Fri, 7 Oct 2022 21:48:02 +0530 Subject: [PATCH 18/21] Revert "Adding Latest code from CVS to github" This reverts commit 227bdb6e1446ea34a4d6153be8bf1b13fcd7c85c. --- .../Commvault.CommCell.psd1 | Bin 4151 -> 9462 bytes .../Commvault.CommCell.psm1 | 2 +- .../Commvault.FileSystem.psd1 | Bin 3930 -> 8108 bytes .../Commvault.JobManager.psd1 | Bin 4179 -> 8572 bytes .../Commvault.JobManager.psm1 | 160 +++--------------- .../Commvault.Policies.psd1 | Bin 4153 -> 8558 bytes .../Commvault.Policies.psm1 | 37 +--- .../Commvault.RESTSession.psd1 | Bin 3976 -> 8200 bytes .../Commvault.RESTSession.psm1 | 13 +- .../Commvault.SQLServer.psd1 | Bin 4320 -> 8896 bytes .../Commvault.StorageResources.psd1 | Bin 3933 -> 8114 bytes .../Commvault.TypeDefinitions.psd1 | Bin 3830 -> 7908 bytes .../Commvault.VirtualServer.psd1 | Bin 4302 -> 8856 bytes .../Commvault.Workflow.psd1 | Bin 3845 -> 7938 bytes 14 files changed, 32 insertions(+), 180 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psd1 b/Modules/Commvault.CommCell/Commvault.CommCell.psd1 index de1b5d4b69a525eefb90966ea418ceca9ee9dc4c..1e4f6b23bed783285dd970229b3fc19e636dc8d0 100644 GIT binary patch literal 9462 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 literal 4151 zcmc&%TW{Mo7=72T_<%e(0b(`I(xfd=pq`zi2GZ29(`;`AEzvetiBw6-u2J;A?~s%w z*-f%#z&5`m;^lm|^Idol9nc4rmKmpJtg1J%NM7oFHTQ-udx@s`yS!)G|{54TN#ix6O!r8c401{4Kqe1 z!b?~SyCl05rdBbICQ8{#@3-`TmT_V7UdIW$=h_G*NtXGHYf|$H${QF*0c3j!Sf}wx z-225}ot8zRv@>!%y-bA#i~%C7EtnOvj5o{lmfjs6IeDWYl?GR=qEd>lCC@e_QZB8S zZ`z`x>rXfeffujO&d*<+vTn*Q&bw#59`C+NPG;S+i;I)jyNoe+^JE=u)1Arv{)=H8H*s~(BJbSgu(kR8mR3VTt7^X z$VIu~LQMTEBM)LobHnwDr?E#La^orB;^NKWG%sc19LzFdH&ke~g3}zkc6`>p*w(pb zCymvb>**3it$6JPeh^aRWe!gSGE_o;6L8Ghv@dbF5RyaRucgpGE6~8VDDyH7RP(NU z9D1pcT#o@Cw3K*{gWIq?Q~hVjXqoVsm=7Y+%BZ=e`1bOSt~A)PR{G0hcEoh&61C9W z8)}5*gzpu?npOnjElUXj{bE%?Jfs&XnQdZZ(NNi2ZfkLWLsPrtl%Pg|QW=wrk}VL$ z5@`o|9}aFNNB_3Ukg>1kSgVAikZEE%S;7~IEj84+Rgxdm@2}2}sh_9kXOHRzPt+Lw zHU!8YLgrJ^AW0YsY6*hP;PAXETSB4=ImawAHDeiZxe{7QpUs69&RaC!p3gGD_k?DOxrF@-*aO-Ew{Ys(Sv3aN01O?XhWCzwWei?JFiA*nPQtQ` z>yCMbL5@@b-rT9mr;Sl}n*t@M5&JFAAXzzQR(7qI9OAuW_g!^B?)pQpS4!uI%RdJW z01rWL<5C9@9g`&5H)4=iq^L?!_#{*CM9c;D;l-wZz6eOQQ{bmt53`j}N9U?4(FnXE z{>^cW=33=#-W>ZRpSdxj;2M(zriuhyPZddJU1y}V$kK%A)DV;Db|d8(N2zdJMXS-9 zV}F!M;(397z_ey)qpo+Ou;7yeuI?Evh2p5z@=jd_9i0K4Yi_%P`#xx6JI7Rg4nSjR zueB6$Bz|*JcWl^mj1u4PxjS`qe{aaw|mv^nHCJw(o@Pu^`V{nox%O*>zj|i_HU-n znS=ZB^z-Fp@^SKcGz@;}XM&k0q5o4#qR;KB6GxSXyLJUSw)lsVRG5ZLVdud`FvX9e zECY=!ic#xYO{w~3n~!19$7DDipdT7lYBZ=P^4YawlT5ZJcZ~2rHv*}SLW7E2*PVhT zU(kM2qnFMy##Uox|_j?BR}R>xv1DCd@WJ^Uj8<7+c9#!;oHM}qZu3=w`6 zbhF?V(Nx$1C9)_`d;DvnHF`TWF;El6+#)DanVAZcs1?Us3QA*^a-;0RH%s*E*h_1H zR{?MY7G1V zPhFyQ;od$gqNu$YXt~Q9_e6Y;u({p=Z;$q+H@j|gJLV1f+&#kGTs;@xd`R4^iw24r z$agt#WWN{3^bu6hct`n6NOv(x1Z2r? A_5c6? diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 index ff157ae..1444292 100644 --- a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 +++ b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 @@ -655,7 +655,7 @@ function Set-CVSubclient { } } "@ - PS C:\>$propobj = $req | ConvertFrom-Json + PS C:\>$propobj = $prop | ConvertFrom-Json PS C:\>Set-CVSubclient -body $propobj .OUTPUTS diff --git a/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 b/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 index ce41dd679b8f53de8b2951c10005b3ed63382e6a..9b538f49c981475990dd2a830cca5bab547b97e3 100644 GIT binary patch literal 8108 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 diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psd1 b/Modules/Commvault.JobManager/Commvault.JobManager.psd1 index 8f19353834141fa4fe7bedcaf06d16a8ecb40690..427b95a1221ac6c0ef024e8a96d5f12125b85a6e 100644 GIT binary patch literal 8572 zcmeI2TTfd@6ou!xQvbt|cz{TSgj`5csZuD;g_fidCTU-d!PE^H*XEL_%3p80zS-W) znR5Y561A!-EBIVy_N;wdv-dcE{kagn4qt_ZP=uG^IP8Vfa2WP=cNBVI6oz4-yJK8Ildw2j$=7?Xr=$3$r#bstyU?5u z;ah#zW!kLE<{nELb037;;jTXXy%Sc$-aX>d8+lXQlWpR8nqjr7J4?Q;7b}Bwlb!wEJJu#UcaM%k1H#8wbEE0Ea_f; z9lGJE{EcM{(RAh`_xw0oa43Y>wrPA3SocX-3b!(EZibGYpUMgrQ72lNdt&)_eeX*m zUL0zD;tvFa_@wNgq(2sX9^M3#Yr5VKkL2Y+co^>Kvl^C#^IljB_jPq&Z~BtGEK96O zi=M6?XeDN>>FQyO%}08^Td~x-(1F2X?lPZ%DIeVyC6;p@1(sFVb`&+XmCm9a_O7{Z zF5{JC9cjLKqbW}72*z5Qd^?b?@Cxi=`GO=olDMYbC*Y_`GAk^}(zhhTv)^MXXQ)CJ zJk+NsVIems!a(dy#Aig%O2tc^_&za)XH@bR))>Ty>q{4V-_uG&JCQe*>|;r{2z1uV z`5}+Lwl&+l-ps#+^5{66N8P%zJ(+<1<=oD_^->tgn)%;BI`8k{Bs;l9Gz=S z+iH0DAdbXNSevXI#;fbtqDhBlMtUIMRe3PQYwoY>VJA0jFPtCuLW@OS%w#5H=G8Cn zi7%;5vqx^C6ER4(VR?K8JFJ9P+CO%5^-OP!fzI`I65h=nQ!ARWbFnj%o5Z+BC9%$~ z#eP9dQ{#}yM5@rua1WpF4B$tvvTa9A8*nUo4v1?#8 zn_rfV)PwjYRmce=dT&c|d7minS?GYC^;&Q}`f6V|s3V7xak;)|(vyEIl0Oymf-qHa zHzR6BpZ6u+XQ087*n&ELHRfRQAMuzn7XMM}yQlimN7U2wV#xUt-by@H#y=Iu9*ZH% zIn?I09kJm!>d~z8d-?Nlra85}#cJ-m^T^3)KVO{TGhcrm%+F$M(=(Gj{|xRjhIz18 zbE%%6Fdgv%pTQ57AM6-@UclSDqAI_o#>b;{#@NQ@TXb$~UbXAJozIn^ePMOq|A{|iO>~^hp4<5e`vqgEim@M> zdUsl=PUh@jPj(@5_ap^Nk91X?0Vk2UR*QH>Terli1Z!B&YZAz9xZ64oq*EtZ-|M}; z)j76{!5W}LD|Y*N}#YnB%jkQ-iTESZ{06sAj1j$N|bZeG8axSGTCY=?>nwy3^8&Pa%NrDB`ly=M`A~exgq|g#-#(J*Rp=>W_!5vTu0LSkuh_r z?Ow`pZOI1ku2(?B#G&rW6%d)jxho8BeKmW0^KS#G%5a3`+9s{$JL~n(lxxzPBk{fB zDinBl7*9*AVzFJYC!J5^IkN@(px=8%Q?}XXt{U^x2kJBGA-sj(3;Bkg)v69U2hj4% zLq}IUEn=TM)nD$6m&-n+b1a|jAUTf$?yRm!_DH`}@Y`4ODUxwWZqtOy;voH|WzH`4~C2}s+C*G^#0am5c zD1^mwiHgR$ce8|J_U{~fJuiHme=~kv|K2F;xAdK~V^!9NS4J~^yv}dao-B3A{>=*H zNRsm=>fpbVq?1se;op~IBWkU0;v9ch2>pDrj&iIOkHc>oM>XGWIb&lV_h~rkUht*m zl5sUSEH=n4(6^uUw4>ad$(#otl|I#z?a!RZ!A7u7>Q(E#U7J7Kr4eydPRuON{;22p z^Qm-(?`_pQFFAY5ImM;4%`P)*Vu5x!Ab1fiG1jk`qu8HX>~CIRYL0D?G|eV&m|NAG zu~aJq>16*Cz<%xG$xvNk>Y0fT&YZ2=#UthZ+s+5B>cQcipJp8nHlar*m+ds3yLKF~ lu1DggaCjHFoSi%rs%yv&$8XVD*K#A%raYr=qmLI+@;8LCbhH2f literal 4179 zcmc&%TTdHD7=7Pg@ku-wB)ka(2#FLaE{22@D6%2#>v(r;PqRC-nc1~tRr&8dbJ?2% zv{Y*A7i;HozT5dOvlH#mwMwguQ_iHAb5qh>Y0CZD;7sNDid9(|e^Rq+CfS1PL9~Ng zAGqY2l{}@{<}Eenw)T{KOUEw`4__R==~oNE>9CJin5jhc{3rI-qZ_o0ezS; zDiKb?T9ivFm%=nk#?eHnGHCve9@H}~Onxx1;y!b2gpwqye8x4Yc>r@p#*v4q4*~5k zeiq6CZqBJ3?#DP|dOm+2k7-`%tFF2__ETqzY*Qhcp=wjq&n zS&I3lD?0jckE0NHbehaxzj}2roV_|Z8XhG{I(&1&*zlO2CMUO}D@3`Ru;d~dJsrn4A z?*rAWPaU`&DaprKES2D2lW z>fB){-KsU$(p@r{|<~a6b zbIyDmda00Nj{)y=l=z5)bzq*U{H0X9jbvlI8F5o&A~PSL%XQr2YcQ!2CpHQB&0JZ zVOfT5WS(J=C6$LacPjX_HR^6tpa`{MzvUSuE9=Z)*Lukz-Z^&LRXb#_KLmTBbdI?E zb6^kf5Of`vCV=RgB+@-A=oU6Rl2Fi~)gc>=RV0gz3}}lWDz?@{FTYSgxYk z=*_-6$|Ui;Ku2I&Gc;1$y-`^3$pP1NjgCTb)M$C9&b^M-fWZe|4$nSglo{+(`!VJv z6Ir`7y&6rpHOwweE4WOi?X?LvRnF`0f&HB2qJuj{DXX_5dhj>6FH*EroVpgsq!bdZ zte;r&rLuRY)ht1BNvA=xIu?c@w0go5wc>i?)bqMssl^3|J8~tk-g3~zU_3oTmo%!ERv+7;D=(GLC|x4hh!dnPe+RfNmG;B3cbwpl}uiYJ_`bbVhQkCI)T7@LPCAg7j1v zUp8#z$Ao1E+=XkQ=;Coxr~-HhfE8zdJ2ayE$yM#SOe9=FhSt?8^dU ziU;}uDz`pd^O+kG8@xiR-$DJZTHvc)dJ+(=LLe@nFJ@0;A6)%`ri*upgAajC(1eh( zH^@D+{m^P{=$&c}{0>i@qoINI+pLJ9?xv?@pEvgD_z_{dlye1dUv5ipckO09{EhkC zKG5y7Js00xNbCfRwu;Hf^*(T9yF - [CmdletBinding()] - [OutputType([PSCustomObject])] - param( - [Parameter(Mandatory = $True)] - [ValidateNotNullorEmpty()] - [Int32] $JobId - ) - - 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 - $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $JobId) - - $headerObj = Get-CVRESTHeader $sessionObj - $body = '' - $payload = @{ } - $payload.Add('headerObject', $headerObj) - $payload.Add('body', $body) - - $response = Submit-CVRESTRequest $payload 'jobIds' - - if ($response.IsValid) { - Write-Output $response.Content - } - else { - Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): resume request was not succesfully submitted for job [$JobId]" - } - } - catch { - throw $_ - } - } - - end { Write-Debug -Message "$($MyInvocation.MyCommand): end" - } -} + function Stop-CVJob { <# @@ -1769,4 +1657,4 @@ function PrepareSendLogFilesBodyJson ($PrepInputs) { catch { throw $_ } -} +} \ No newline at end of file diff --git a/Modules/Commvault.Policies/Commvault.Policies.psd1 b/Modules/Commvault.Policies/Commvault.Policies.psd1 index 2e0fe73a92748c12567a23752c474c3f041594b2..edbd7883c7ef26e2d263010bb5cada74c97055dd 100644 GIT binary patch literal 8558 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 literal 4153 zcmc&%U2oeq6n)pPxPTv$0I}+%Y1bAgP%lo}07(|uX}4EeqHV4csgjf(qv(I%A*nCh zan=mjmY2X3@44rGU-qIN-Kez8IOR-=88?<@N>d)r4$f7cFIkz{_)cXa5!@U^J;;3I zl51vpO4Ic_YHn?PQ}P|XdU1OC;&gEG7T=-|-y;Z55-kc_>wvbYkW8=ZgP8yuW{gUN z*RT?HL3SZbLotrVO4*9{dwPUrT$udiz$yE}wGm2^Eb}SXq-GVAH!zL@NPP)dr|}>@ z8FELbu^lbLJfA%IB^chco>8CGGPS{}ZGMT;%bcUr}z*(CXMAd26 z3!c1ZDc1yvC70>0V0Gb^<=oL|VpvHRYc1vrOU5DyIr#g$2x0KPi_TSj2jYjx5xFS0 zxe(JZ%gBQm(%f*p{awH@E7KL?axNqX-*2VRy98SJPRhKBL#laK?uT9| z6xTlBUWdddT&%1Y z!tW)*npO$KJC+gx`qip}cqlJYGF!)}qLH$<+&1cdf~j3_O3X%}H36aeZK( zVUSCz0B`P9<!o`{*icX+X#pDzMZ;}rPm*2B~qn&@0sEgFGW#2;La z(M+qnn>WY4$fs_ND7eNZfvqAzuBVEmvTiccN@QumbZUsnwEmFtjH6Y!T*au->tlbF zN#c2ddBC)07^7}>qp{#82V65VI)vh=VR^4E0!L@S!AEZU=U*ntg1cqMFEi_dW2(=s z(r6g%@r7iV?~h81gxU8kqDTKKCBJ4Y`Kn4ArjAoS@uYUohiMAcyXRw`tEFSL{b`@# z#*9sYtGQH~f5Lp{`kF6!Hil1(W7Hb=QxbmTInPrBuM>p-H!G5DI&oAn+{g$|{R`8= z1@kHLQFCcmewYbno|OJi3j$MilTI8}40oxICg+%lMwJ>P>WPYW!`LL_`sOaswLr0> z)u1Ogou@#iqn=U}d$YTTrLlf)c&VnfbTLA=dgNHT$PwYfpS{Tjl=t)3~1%bFAeX(a6_q5tvUb=W!xcC^@7y}2ja;q$|-w#Un zz6?3q+OTn}HSh;Kb%Egpx$UfoqVC6#mYaFw9*Lh2wktVP@b=ZV_V%m$STA}bK6B4- zw^`4`gAa+@b}>S+1^GFL9NC`6G5v;A(0EDtN=P>`O5^-?<#(F?jW?b8cOKub;NiA= O7eY%ouju@UqQ3z5TyE?D diff --git a/Modules/Commvault.Policies/Commvault.Policies.psm1 b/Modules/Commvault.Policies/Commvault.Policies.psm1 index 29d8691..c322a35 100644 --- a/Modules/Commvault.Policies/Commvault.Policies.psm1 +++ b/Modules/Commvault.Policies/Commvault.Policies.psm1 @@ -1075,34 +1075,9 @@ function Add-CVBlackoutWindow { Switch to Force override of default 'WhatIf' confirmation behavior. .EXAMPLE - PS C:\>$props = @" - { - "operationWindow": { - "endDate": 1521691200, - "name": "Holiday_1", - "startDate": 1520485200, - "operations": [ - 1, - 2 - ], - "dayTime": [ - { - "startTime": 46800, - "endTime": 50400, - "dayOfWeek": [ - 1, - 2 - ] - } - ] - }, - "entity": { - "clientGroupId": 0, - "clientId": 2 - } - }"@ - PS C:\>$propobj = $prop | ConvertFrom-Json - PS C:\>$propobj | Add-CVBlackoutWindow -Force + PS C:\>$props = Get-CVBlackoutWindow -Name 'My Blackout Rule' + PS C:\>$props.name='Your Blackout Rule' + PS C:\>$props | Add-CVBlackoutWindow -Force .OUTPUTS Outputs [PSCustomObject] containing job submission result. @@ -1136,7 +1111,7 @@ function Add-CVBlackoutWindow { try { $sessionObj.requestProps.endpoint = $endpointSave - if ($Force -or ($PSCmdlet.ShouldProcess($Properties.operationWindow.name))) { + if ($Force -or $PSCmdlet.ShouldProcess($Properties.name)) { ProcessBlackoutWindowUpdate $sessionObj $Properties $False } else { @@ -1378,9 +1353,7 @@ function ProcessBlackoutWindowUpdate([System.Object] $Session, [System.Object] $ if (HasProperty $Properties 'dayTime') { $opWin.Add('dayTime', $Properties.dayTime) } - if (HasProperty $Properties "operationWindow"){ - $opWin = $Properties.operationWindow - } + $entity = $Properties.entity $body.Add('operationWindow', $opWin) $body.Add('entity', $entity) diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index f7941740fe9ed59cd114514fc8f8e37d65f7a2fe..76ba8c30844a42560cc6c06b9c408f056a5cdddd 100644 GIT binary patch literal 8200 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 diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index af524cf..0b056a8 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -855,16 +855,7 @@ function GetAPIDetail ([String] $Request) { Body = '' } - - 'Resubmit-CVJob' = @{ - - Description = 'Resubmit the specified job' - Endpoint = 'Job/{jobId}/action/resubmit' - Method = 'Post' - Body = '' - - } - + 'Resume-CVJob' = @{ Description = 'Resume the specified job' @@ -1144,7 +1135,7 @@ function GetAPIDetail ([String] $Request) { 'Backup-CVSQLSubclient' = @{ Description = 'Backup SQL instance subclients' - Endpoint = 'v2/sql/instances/{instanceId}/backup?subclient={subclientId}' + Endpoint = 'v2/sql/instances/{instanceId}/backup?subClientId={subclientId}' Method = 'Post' Body = '' } diff --git a/Modules/Commvault.SQLServer/Commvault.SQLServer.psd1 b/Modules/Commvault.SQLServer/Commvault.SQLServer.psd1 index c0c1abd63bfa77d95fef92d51e88e2083a9ce756..2d89ce0a5acbb96da54aaf3a973f42018d1fdfda 100644 GIT binary patch literal 8896 zcmeI2YfoE85Qg`2rTzy?{s56`5^_^osZuD01eK7~kfdLYZ*_w&u^}X?^4HtG&yJTp zdoEx*M6IgI;#_xU-GwfB=zZ?C+_C$`9qQOqj}QL1u^1 zgU&^X*6X^y6G@}*BX`%`*N@{px9z^qj7$Hg?hpSY$U1f%VH~=t*Kw5C!1O)U+p%<; z2_1IHYTws8vsYVIn(JLhPohSbx;uBjsUOFoS`;n2G<@T&JlE*hsHVRQwL0}rYkJntp^N$%vMi#!EW>wS9>1r*Z5`9Gk2Tg*KP(x% z{7SsolfSWyVVYlIHP27I1&6|jZOhu%93www#LNNx`unAtB&~Aa1X_|CptEC?)YCr z&mZXOfu8i$zO5doy6WaEwIg(3FwR})6)>f(t5}lyBHDKBHMWt6&au!eH*PB9NZO3l z-@H-A(;|YY#wOkd(v_@2Zn1bl5*~?}rrIaq$V)OSY|7SmBqKzBSvJ|y`yDaiOy`J& z*qjLi+_9|H6{k}Tn*M#v7$K&jzpzH%Gp-|D?0s7!!FHH8mF$UfqA@UJy)-|h{Hq$X z%Ijs>x27nXxJ$3uu`EvW(zn?eM20> z)KCkNp=eRY%$nvRvdKG1AzRgSm!0*Pd&iRaNjinOx~XU9(y*svQNP=>Y{1>oc+_rI z8JtN&BJ@J%f!Ay1GZ}fz^8BW1vqRVN88%vqtDEBY-)C#nWEq>j5-X_e@Fq;83Z@?H zc<#Uva{YzpPE9q*k+)~heW!N6svdakuXbd^uC5=hVZFeQB9fg-9Obzr&Mj~n9x(e- zl~OfvMP&%*N4dI<`M~O_z@CBFJ5hV$0(Ou6yoRmDo-a0=6IaZGSk3xpWg~Uq-^BVj zVnpwjBxmP|?3{%T=vk};cf7B9!a)@|l#J{3MH6Z>WAc|`t_xEhcR8YR^y#W3tTNDG zQ`v$#f7`Pt`VT(ZtV*?u|2PIub-a(Lre~^Xkn=UX74ujY|6DnCq70dhp(?MPC>u__ z9_2cJlt0fFnp4>uS5x0z`kZVwh#bC|XZS3PzY6Ak&u!MrM9)8iJBwiz?D<$K#wVE$ zzOYs&KUjP)V}!i|-li2*_AM1Y9%WsOZLGhsv!#CdHSgV|CM_~2WJ2c1fG4j-c}(s5 zxhz)Y;5L1G?&DRi!-FuDnwRJaYxbxwSv}1E@XxX)I?fi)ZSREng0@t}*bhy^+O(!R znVo~K>_X&rB?U{f63h1>ClR?;i-d@_wGw+0jA1KYlR#|4ds}ZHojS=@yRK>bH#ipEOQK6)C$i&po$^09eGxx1rI2JVZpmWg?(jqkPNdG|Kn7ZH=<> zvV6^t8}zDb&(0USLRNdg@|$|(J#6h)_enMevl`^(w=~-|uTYUgiT*T7^L>I2Ll*t+IuE>8+G6We_`{m#+*_!8O%d!$RALd^p=Zx9@;mh_RwCxCO0{p3 zL)kv;Dsqjaf%gt}hE2#fO9af}oMJCBGPDb4+VAM^wW9t|=cpZ{qBVJiT9Es&UaHc* ztjb{oVkF9W?R5xWo8pdgz!c8cV}rG3DZYoC3SrpiEuv%}XySfXJ61*2mb2ZB(C*7{ zQaQ7KW3gnp8XU$Aq6_rZduG)r4;C_4!AGSBdu&ExXOnD1)`@HW;u^WipViV}+=hPi z%=Z4Q=lF9^I+O2h)HE*H!%TBZkW$qJ2*A1poxxv-`H8ya#x<^ON42Y?NPMR=PQ={4OuUp%>V!Z literal 4320 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 L;k=>qBZ~e6Oo1!K diff --git a/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psd1 b/Modules/Commvault.TypeDefinitions/Commvault.TypeDefinitions.psd1 index 4764ccd8754bc837642842ebb72ef785c046b3a1..e9db8f70b8a501c10ffa0efdb8baf77a1b49d789 100644 GIT binary patch literal 7908 zcmeI1Yj0CW5Qg`2rTzy?`9P4Ga7Uq1C8C5tB%mk>v|kNdXAb_l5AueW`l9Z&Y` zxg?GOwW=!X_}q49-?`81`RmV(@NM`eY=l;L6(*q@&cj*g>24I-VH}2`ue*6z=t*Di zXYoyO+^w*u=Og{zYX-9yVLP0Jk725r`#Sof0;PqHiLU11)^bf>`ME}ob<9Lzp>tQO zoQlHtI#;RNtgGg-3UeQYJK?^5{ND}t!jrap(xcP{`qTl*z+*KaIS! zHR@w!1bmw8+TwAp*&RJe99`&c5q{A;{)ZY-mGXAPbELTwjmkChgT}8T?QQWh7dQ8o za(8auMTyUa1bMY|oNLr+eA?2pehF#Px}hwhE7LNp_hkupb?lT@KGsT8{gA2a`%O3w z&!qXHoj6jnfoYWGPzaH7-S}2u-KSwQ+|KlRC_8Lv&H2){7FwBmtnzoAd!mRwhgu&? z#8Uh5Nl{aYe{ekyZ-db_Ui(7V4i98=J32oOTe7()k=|B#C@Hjcy(R1&U7zZzr*Vwk z(c2w8d7?A3%{QF$U7-VmS>IJUVMac>$zJjml5EG3V_WHcltXvLb#of8#p_7(O&fI< zTSYL{+IZeTyyAOA9P=C~p^+4Snsow>G9{D3rsRHGG&~N}#g%Qn-<2ht>720Or88l` zc4mrkM5pbNmWXomLhNvlO8Pw5S3-*ijl|bTBazKaa;WG2r#Kpmy3m-W)zI}IjznU} z9seB0t5u{@$3uN=dL%8DBVw}LTyv{o$4f0!-W>NvgG62|X(nW*->vo&6djk{H1>*Oyo2R2Owgim9s zUM&%=7*S`Ltymw;g^P?d)hMD%%7A3yu_%5NPo5F>^=u&yd-|{P_vIw(xI0>p>dtC} zGjWKAp6fh_e9dB1Bc@r*-&Do+G91NdnpR zs#H*1Q6pmWqf!k=KCs%#t!E(XooGCMfpw2#jzd=CXfKx8@hh?hQnUF*+E5+DH>qk) z7~%U!l#6+yn6uykKC4yXZq!vzIH)LxqH#69a6%Plmi)PxH-xE-yB<+J`n*^1-UALc z6)mXv??o$0`okVAt5W%*KmJ`)ov0%!>zS$>=zI-rr8ri^KUa*MC_)x}s7Y(ySrTEb z-^zLZAbp-KIj71uTg`QM5o5B+AldNsc81P;{hMGuh_+2fjraUBxQiHWg1ziZRsST? zp#wU2;)D4I8N+uIc$-&L#kW-Z>=n>0BO9A<)_J6P)tMUwD5}s?dh6rX;DXuE}chTC|x3Ybfb>)v2 zR%xw@f<7D!blvMB`0sk5bs1Ml$1EV1;;ORW*G}A?e4T26T9&HSD%=5+N;@AcZsC6>|x;!aiX~J(YDRM9cb}*A%ZEVKGaj)#_tZdY_{yX7}}x z9K_h)Qzu1sf#-S@)J((JcUtW4ifeYxTvH&RBk_CB4MmxK>HM4bab!9&3)({OE$N2p zAC#8kLCbFLzMdF%I*z$AD|Z%!iaMkQFLudL&aHquvLPd#X4?Jb%R+rWZeEkiG@&vL zq%Q_7QQ?l<+xr z7Rl$9;i-FVUjg|;X&^lK5@W0nGD$dQKj+x17U|>s%=ld$Z{_tbbxz!|DqIs+_#(u; zS4>UZ#2hS&b>I&(Soy7+F&kXr=>#7f}*ZeHj`@dp6rYyu?&* z+n}hMjo&c0%r|4%|L2>NeQ~uf2==Y@gWkH8`tF_e4QQm;$yld#T{lDA`EeORkO|!e zzHIxN+%@AM>bfN!Dk}Rozpbo?Yw3F!-r@MoI;&jnNwe%l8aKrmRT+J{`~vtlFUb+A literal 3830 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 LuwJS2BZ~e4%lDp( diff --git a/Modules/Commvault.Workflow/Commvault.Workflow.psd1 b/Modules/Commvault.Workflow/Commvault.Workflow.psd1 index 81711479d4e79f9785d9cfeda8155d2462987cc8..5fc0b1ea3738e7fadb4feead8881b8465f9517b1 100644 GIT binary patch literal 7938 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 From ca5bd276cb11aa96bef99e80cb61a1aaa48dd138 Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Fri, 7 Oct 2022 21:50:09 +0530 Subject: [PATCH 19/21] Latest code from CVS to github --- .../Commvault.CommCell.psd1 | Bin 9462 -> 4151 bytes .../Commvault.CommCell.psm1 | 2 +- .../Commvault.FileSystem.psd1 | Bin 8108 -> 3930 bytes .../Commvault.JobManager.psd1 | Bin 8572 -> 4179 bytes .../Commvault.JobManager.psm1 | 160 +++++++++++++++--- .../Commvault.Policies.psd1 | Bin 8558 -> 4153 bytes .../Commvault.Policies.psm1 | 37 +++- .../Commvault.RESTSession.psd1 | Bin 8200 -> 3976 bytes .../Commvault.RESTSession.psm1 | 13 +- .../Commvault.SQLServer.psd1 | Bin 8896 -> 4320 bytes .../Commvault.StorageResources.psd1 | Bin 8114 -> 3933 bytes .../Commvault.TypeDefinitions.psd1 | Bin 7908 -> 3830 bytes .../Commvault.VirtualServer.psd1 | Bin 8856 -> 4302 bytes .../Commvault.Workflow.psd1 | Bin 7938 -> 3845 bytes 14 files changed, 180 insertions(+), 32 deletions(-) diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psd1 b/Modules/Commvault.CommCell/Commvault.CommCell.psd1 index 1e4f6b23bed783285dd970229b3fc19e636dc8d0..de1b5d4b69a525eefb90966ea418ceca9ee9dc4c 100644 GIT binary patch literal 4151 zcmc&%TW{Mo7=72T_<%e(0b(`I(xfd=pq`zi2GZ29(`;`AEzvetiBw6-u2J;A?~s%w z*-f%#z&5`m;^lm|^Idol9nc4rmKmpJtg1J%NM7oFHTQ-udx@s`yS!)G|{54TN#ix6O!r8c401{4Kqe1 z!b?~SyCl05rdBbICQ8{#@3-`TmT_V7UdIW$=h_G*NtXGHYf|$H${QF*0c3j!Sf}wx z-225}ot8zRv@>!%y-bA#i~%C7EtnOvj5o{lmfjs6IeDWYl?GR=qEd>lCC@e_QZB8S zZ`z`x>rXfeffujO&d*<+vTn*Q&bw#59`C+NPG;S+i;I)jyNoe+^JE=u)1Arv{)=H8H*s~(BJbSgu(kR8mR3VTt7^X z$VIu~LQMTEBM)LobHnwDr?E#La^orB;^NKWG%sc19LzFdH&ke~g3}zkc6`>p*w(pb zCymvb>**3it$6JPeh^aRWe!gSGE_o;6L8Ghv@dbF5RyaRucgpGE6~8VDDyH7RP(NU z9D1pcT#o@Cw3K*{gWIq?Q~hVjXqoVsm=7Y+%BZ=e`1bOSt~A)PR{G0hcEoh&61C9W z8)}5*gzpu?npOnjElUXj{bE%?Jfs&XnQdZZ(NNi2ZfkLWLsPrtl%Pg|QW=wrk}VL$ z5@`o|9}aFNNB_3Ukg>1kSgVAikZEE%S;7~IEj84+Rgxdm@2}2}sh_9kXOHRzPt+Lw zHU!8YLgrJ^AW0YsY6*hP;PAXETSB4=ImawAHDeiZxe{7QpUs69&RaC!p3gGD_k?DOxrF@-*aO-Ew{Ys(Sv3aN01O?XhWCzwWei?JFiA*nPQtQ` z>yCMbL5@@b-rT9mr;Sl}n*t@M5&JFAAXzzQR(7qI9OAuW_g!^B?)pQpS4!uI%RdJW z01rWL<5C9@9g`&5H)4=iq^L?!_#{*CM9c;D;l-wZz6eOQQ{bmt53`j}N9U?4(FnXE z{>^cW=33=#-W>ZRpSdxj;2M(zriuhyPZddJU1y}V$kK%A)DV;Db|d8(N2zdJMXS-9 zV}F!M;(397z_ey)qpo+Ou;7yeuI?Evh2p5z@=jd_9i0K4Yi_%P`#xx6JI7Rg4nSjR zueB6$Bz|*JcWl^mj1u4PxjS`qe{aaw|mv^nHCJw(o@Pu^`V{nox%O*>zj|i_HU-n znS=ZB^z-Fp@^SKcGz@;}XM&k0q5o4#qR;KB6GxSXyLJUSw)lsVRG5ZLVdud`FvX9e zECY=!ic#xYO{w~3n~!19$7DDipdT7lYBZ=P^4YawlT5ZJcZ~2rHv*}SLW7E2*PVhT zU(kM2qnFMy##Uox|_j?BR}R>xv1DCd@WJ^Uj8<7+c9#!;oHM}qZu3=w`6 zbhF?V(Nx$1C9)_`d;DvnHF`TWF;El6+#)DanVAZcs1?Us3QA*^a-;0RH%s*E*h_1H zR{?MY7G1V zPhFyQ;od$gqNu$YXt~Q9_e6Y;u({p=Z;$q+H@j|gJLV1f+&#kGTs;@xd`R4^iw24r z$agt#WWN{3^bu6hct`n6NOv(x1Z2r? A_5c6? literal 9462 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 diff --git a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 index 1444292..ff157ae 100644 --- a/Modules/Commvault.CommCell/Commvault.CommCell.psm1 +++ b/Modules/Commvault.CommCell/Commvault.CommCell.psm1 @@ -655,7 +655,7 @@ function Set-CVSubclient { } } "@ - PS C:\>$propobj = $prop | ConvertFrom-Json + PS C:\>$propobj = $req | ConvertFrom-Json PS C:\>Set-CVSubclient -body $propobj .OUTPUTS diff --git a/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 b/Modules/Commvault.FileSystem/Commvault.FileSystem.psd1 index 9b538f49c981475990dd2a830cca5bab547b97e3..ce41dd679b8f53de8b2951c10005b3ed63382e6a 100644 GIT binary patch literal 3930 zcmc&%U2oeq6n)pPxPTv$0I`~+%~yc}^_-*)ka$6yc6+5I%H}GODoNQfivITG;jj(VL@#!*iTPAAdv;9w%CqcBKXSCPFg3Tz$x(iw59%s_s-*Z{@q9@l<cM{^9A{xBYjgr>uW|n4R~Jjwfd)XOr^-b`a)(wd2 zuU$8I@}8w!5+vqarcVXy3nNx=N23X1EnP0Pn9eL2izpP}?^7eh!MiRRs?{Bc?{OUnB~GQsnlu?r@8c6^I2E0%ej-F zbf*?vk7pdpLu|duTOmbJ74SvKhFa}!0A}@%skt}Q z2+Ik-=Ll?Crx5R0N(kvUt4iXbz(~n_8KaIalpS%~sQVjC?Tk}`mW8CsnVeQ^iYQhn zJS6z;@aBH+-=+*5n>6pVN;rC%CZ>}ae395ngU(1vzE8iOo$S+~NKf8vjYMd1i79nlFGW-NDGmt3Dc<|CezhH%5#oZ;c^wjMlbjM zRVIlSB_;yXnqiQ-;f=!x(pnh0Xt(TNNj)jb%@lJ_NrZJ_6dis zKDQkH!jf-Qx#jR4mMYDkJN5g(ut;H8hv5I~v1F4@9MufhyydBXWm+(-IWLiqnoCdR z2f1M8Md|-ESulat>BLdZ@G13+@etF(s7j-KzmV;2P?-cd5Nm$x8?>vDfAAw3uUwqm)_ZY$>r_yZ^4%Ue_Ax;a;E= zS#A`@t+WiygkeLzaOg8;X4d6Qu#Kf*s$=rhiVAL-=i!%Rtat4`6-PBuj|A)SS|I$@ z(Cr8J5iOTZ(Ll-))$F(J&T8stV&Nn#fn^|4Yfptq)STn70n*qs+@d%2qXg3|_S!n& zbpYHK_t&EVeYw9`c`g?Tmr&wfOkLd_l$&tnixzIf#<&hZPoN6t!v&xCWvRi#68r}` zR+kpWmizP~AX=tCT#&xl!Hj!&tPl1s-Zd^h2X>EMiCP&ci|qG9#67=4j2=Gs1Q)GX-y7Z)$H(-Qj8py5O06r@E~(6OTS5ZWF|K z!G_>x0CHq=QpNNuQbFUL;VU6s$Eb|++qIwf{abH3_3u2sUr)nr_iBQc@V%z literal 8108 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 diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index db1ba78..53b8ea9 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -299,7 +299,7 @@ function Get-CVJob { function Get-CVJobDetail { -<# + <# .SYNOPSIS Gets extended details for a job. @@ -309,6 +309,9 @@ function Get-CVJobDetail { .PARAMETER Id Gets extended details for the job specified by Id. +.PARAMETER InfoType + Gets additional job information. + .PARAMETER JobObject Gets extended details for the job specified by piped JobObject. @@ -330,6 +333,9 @@ function Get-CVJobDetail { .EXAMPLE Get-CVJobDetail -Id 175 | Select-Object -ExpandProperty progressInfo +.EXAMPLE + Get-CVJobDetail -Id 175 InfoType 1 + .OUTPUTS Outputs [PSCustomObject] containing result. @@ -346,53 +352,91 @@ function Get-CVJobDetail { [ValidateNotNullorEmpty()] [Int32] $Id, + [Parameter(Mandatory = $False, ParameterSetName = 'ById', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateNotNullorEmpty()] + [Int32] $InfoType, + [Parameter(Mandatory = $True, ParameterSetName = 'ByObject', ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True)] [ValidateNotNullorEmpty()] [System.Object] $JobObject ) - begin { Write-Debug -Message "$($MyInvocation.MyCommand): begin" + begin { + Write-Debug -Message "$($MyInvocation.MyCommand): begin" try { - $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name - $endpointSave = $sessionObj.requestProps.endpoint + if ($InfoType -eq 0) { + $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name + $endpointSave = $sessionObj.requestProps.endpoint + } + else { + $sessionObj = Get-CVSessionDetail 'GetJobById' + $endpointSave = $sessionObj.requestProps.endpoint + } } catch { throw $_ } } - process { Write-Debug -Message "$($MyInvocation.MyCommand): process" + process { + Write-Debug -Message "$($MyInvocation.MyCommand): process" try { - $sessionObj.requestProps.endpoint = $endpointSave + if ($InfoType -gt 0) { + if ($PSCmdlet.ParameterSetName -eq 'ById') { + $job_id = $Id + } + else { + $job_id = $JobObject.jobId + } + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', ($job_id)) + $sessionObj.requestProps.endpoint = -join ($sessionObj.requestProps.endpoint, "/AdvancedDetails?infoType=", $InfoType) + $body = '' + $headerObj = Get-CVRESTHeader $sessionObj + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = '' - $headerObj = Get-CVRESTHeader $sessionObj - $jobObj = @{ } - if ($PSCmdlet.ParameterSetName -eq 'ById') { - $jobObj.Add('jobId', $Id) + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + Write-Output $response.Content + } } else { - $jobObj.Add('jobId', $JobObject.jobId) - } - $body = $jobObj | ConvertTo-Json -Depth 10 - $payload = @{ } - $payload.Add('headerObject', $headerObj) - $payload.Add('body', $body) - $validate = 'job' + $sessionObj.requestProps.endpoint = $endpointSave - $response = Submit-CVRESTRequest $payload $validate - - if ($response.IsValid) { - Write-Output $response.Content.job.jobDetail + $headerObj = Get-CVRESTHeader $sessionObj + $jobObj = @{ } + if ($PSCmdlet.ParameterSetName -eq 'ById') { + $jobObj.Add('jobId', $Id) + } + else { + $jobObj.Add('jobId', $JobObject.jobId) + } + $body = $jobObj | ConvertTo-Json -Depth 10 + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + $validate = 'job' + + $response = Submit-CVRESTRequest $payload $validate + + if ($response.IsValid) { + Write-Output $response.Content.job.jobDetail + } } + } catch { throw $_ } } - end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + end { + Write-Debug -Message "$($MyInvocation.MyCommand): end" } } @@ -539,7 +583,75 @@ function Resume-CVJob { end { Write-Debug -Message "$($MyInvocation.MyCommand): end" } } - +function Resubmit-CVJob { + <# + .SYNOPSIS + Resubmit the job specified by job Id. + + .DESCRIPTION + Resubmit the job specified by job Id. + + .PARAMETER JobId + Resubmit the job specified by JobId. + + .EXAMPLE + Resubmit-CVJob -JobId 78 + + .OUTPUTS + Outputs [PSCustomObject] containing result. + + .NOTES + Author: Jnanesh D + Company: Commvault + #> + [CmdletBinding()] + [OutputType([PSCustomObject])] + param( + [Parameter(Mandatory = $True)] + [ValidateNotNullorEmpty()] + [Int32] $JobId + ) + + 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 + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{jobId}', $JobId) + + $headerObj = Get-CVRESTHeader $sessionObj + $body = '' + $payload = @{ } + $payload.Add('headerObject', $headerObj) + $payload.Add('body', $body) + + $response = Submit-CVRESTRequest $payload 'jobIds' + + if ($response.IsValid) { + Write-Output $response.Content + } + else { + Write-Information -InformationAction Continue -MessageData "INFO: $($MyInvocation.MyCommand): resume request was not succesfully submitted for job [$JobId]" + } + } + catch { + throw $_ + } + } + + end { Write-Debug -Message "$($MyInvocation.MyCommand): end" + } +} function Stop-CVJob { <# @@ -1657,4 +1769,4 @@ function PrepareSendLogFilesBodyJson ($PrepInputs) { catch { throw $_ } -} \ No newline at end of file +} diff --git a/Modules/Commvault.Policies/Commvault.Policies.psd1 b/Modules/Commvault.Policies/Commvault.Policies.psd1 index edbd7883c7ef26e2d263010bb5cada74c97055dd..2e0fe73a92748c12567a23752c474c3f041594b2 100644 GIT binary patch literal 4153 zcmc&%U2oeq6n)pPxPTv$0I}+%Y1bAgP%lo}07(|uX}4EeqHV4csgjf(qv(I%A*nCh zan=mjmY2X3@44rGU-qIN-Kez8IOR-=88?<@N>d)r4$f7cFIkz{_)cXa5!@U^J;;3I zl51vpO4Ic_YHn?PQ}P|XdU1OC;&gEG7T=-|-y;Z55-kc_>wvbYkW8=ZgP8yuW{gUN z*RT?HL3SZbLotrVO4*9{dwPUrT$udiz$yE}wGm2^Eb}SXq-GVAH!zL@NPP)dr|}>@ z8FELbu^lbLJfA%IB^chco>8CGGPS{}ZGMT;%bcUr}z*(CXMAd26 z3!c1ZDc1yvC70>0V0Gb^<=oL|VpvHRYc1vrOU5DyIr#g$2x0KPi_TSj2jYjx5xFS0 zxe(JZ%gBQm(%f*p{awH@E7KL?axNqX-*2VRy98SJPRhKBL#laK?uT9| z6xTlBUWdddT&%1Y z!tW)*npO$KJC+gx`qip}cqlJYGF!)}qLH$<+&1cdf~j3_O3X%}H36aeZK( zVUSCz0B`P9<!o`{*icX+X#pDzMZ;}rPm*2B~qn&@0sEgFGW#2;La z(M+qnn>WY4$fs_ND7eNZfvqAzuBVEmvTiccN@QumbZUsnwEmFtjH6Y!T*au->tlbF zN#c2ddBC)07^7}>qp{#82V65VI)vh=VR^4E0!L@S!AEZU=U*ntg1cqMFEi_dW2(=s z(r6g%@r7iV?~h81gxU8kqDTKKCBJ4Y`Kn4ArjAoS@uYUohiMAcyXRw`tEFSL{b`@# z#*9sYtGQH~f5Lp{`kF6!Hil1(W7Hb=QxbmTInPrBuM>p-H!G5DI&oAn+{g$|{R`8= z1@kHLQFCcmewYbno|OJi3j$MilTI8}40oxICg+%lMwJ>P>WPYW!`LL_`sOaswLr0> z)u1Ogou@#iqn=U}d$YTTrLlf)c&VnfbTLA=dgNHT$PwYfpS{Tjl=t)3~1%bFAeX(a6_q5tvUb=W!xcC^@7y}2ja;q$|-w#Un zz6?3q+OTn}HSh;Kb%Egpx$UfoqVC6#mYaFw9*Lh2wktVP@b=ZV_V%m$STA}bK6B4- zw^`4`gAa+@b}>S+1^GFL9NC`6G5v;A(0EDtN=P>`O5^-?<#(F?jW?b8cOKub;NiA= O7eY%ouju@UqQ3z5TyE?D literal 8558 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 diff --git a/Modules/Commvault.Policies/Commvault.Policies.psm1 b/Modules/Commvault.Policies/Commvault.Policies.psm1 index c322a35..29d8691 100644 --- a/Modules/Commvault.Policies/Commvault.Policies.psm1 +++ b/Modules/Commvault.Policies/Commvault.Policies.psm1 @@ -1075,9 +1075,34 @@ function Add-CVBlackoutWindow { Switch to Force override of default 'WhatIf' confirmation behavior. .EXAMPLE - PS C:\>$props = Get-CVBlackoutWindow -Name 'My Blackout Rule' - PS C:\>$props.name='Your Blackout Rule' - PS C:\>$props | Add-CVBlackoutWindow -Force + PS C:\>$props = @" + { + "operationWindow": { + "endDate": 1521691200, + "name": "Holiday_1", + "startDate": 1520485200, + "operations": [ + 1, + 2 + ], + "dayTime": [ + { + "startTime": 46800, + "endTime": 50400, + "dayOfWeek": [ + 1, + 2 + ] + } + ] + }, + "entity": { + "clientGroupId": 0, + "clientId": 2 + } + }"@ + PS C:\>$propobj = $prop | ConvertFrom-Json + PS C:\>$propobj | Add-CVBlackoutWindow -Force .OUTPUTS Outputs [PSCustomObject] containing job submission result. @@ -1111,7 +1136,7 @@ function Add-CVBlackoutWindow { try { $sessionObj.requestProps.endpoint = $endpointSave - if ($Force -or $PSCmdlet.ShouldProcess($Properties.name)) { + if ($Force -or ($PSCmdlet.ShouldProcess($Properties.operationWindow.name))) { ProcessBlackoutWindowUpdate $sessionObj $Properties $False } else { @@ -1353,7 +1378,9 @@ function ProcessBlackoutWindowUpdate([System.Object] $Session, [System.Object] $ if (HasProperty $Properties 'dayTime') { $opWin.Add('dayTime', $Properties.dayTime) } - + if (HasProperty $Properties "operationWindow"){ + $opWin = $Properties.operationWindow + } $entity = $Properties.entity $body.Add('operationWindow', $opWin) $body.Add('entity', $entity) diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psd1 index 76ba8c30844a42560cc6c06b9c408f056a5cdddd..f7941740fe9ed59cd114514fc8f8e37d65f7a2fe 100644 GIT binary patch literal 3976 zcmc&%U2oeq6n)pPxPTv=0I{07N!k@CP{U5r07(|uPPSKCqHL}bsgjgkqv(I%At}qU z^MPi-w!8!;FV8*q`>GRl=tiYg&Z%HhWZYQFl%^t_b%&}bmaNKcJU*XHC)^mJWH;*I z*(H};Gs{z&tv^yDxOb=IM>>7e@4x9Ezx@q&(dQo#9#0Z2O1n`5g)UyT$9RbG;d}c1)Pl#;QH}# z-0%CRld3G0c6Q!P&QoClV}J;QOJ>C^=i6iYM4t~1oxZCPRR&M2qDqQy70=fsQZB8? z)@{|% zwjJT6JxjSJyjXIXK7LpW+_Hi@8ci7M*X3G^`NER1h(iJXK087ryzio++Q{JfL2^hg z(A#u~X^`jSK@4ebxL)!!_UI#Sd=|L4cyl;ql}wz2SuX6FO0AY~noF=9pS2&hIk$6^ z?$nCw$$~?Bh_2UpBcv#*0?r8eQ0x6ez&9(?e#GTmNDj*1Dxn{9*uuB6<}?o3=Dqnm z^g^M^o&)Z*NPL0dCNi(2|0*3V6P{CZBNDBQ$}GjV=To}SNSKw?a&LQ5iln~ReR+Yp?SfN+wuP+9nVeT_jwn{B zJY@L6@OpgsZ&QYjeVTV#CFq?fKcwbz?-S6y}C7Ox-QX&wral@IW#Nh&f2ckfL?&<#FK*}Pn}F0f1%A5qFdGd`bS~;Xjle77-(8kb zrd83-oFiZ6Gq+KcTw|%gf{`HGQ$ zcu`^~Fs&J8sT<&EE%?a+*9?vpp*U(-PSttf=nTM&lM)5k8$L|jG}7H8>W+j-o;beb zLCmi`BW{_+U|KNjJ};4v8llJU2f1M8#n=C7`d}*U(ut#*;STjW@bwxT@}Z99 zXfniHF{;vN^e16`%RFs=>p){1+Nqn-<2KJ9-fityLf{NMCGg z#(ksgt^jSkD+oRXHb&D%1>Gu(?DxaQeXE5W-P*7twKec3Javu%fOq>@5k>9Gke0i7 z3y&G>j_3k{rUu1){8wAi2&TBe9qv&rDHaH{z literal 8200 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 diff --git a/Modules/Commvault.StorageResources/Commvault.StorageResources.psd1 b/Modules/Commvault.StorageResources/Commvault.StorageResources.psd1 index d2a9453e4ace6dc17731888430955411fbb2bc9d..8b55f0de4538c742c1a33df832d799336983621e 100644 GIT binary patch literal 3933 zcmc&%U2oeq6n)pPxPTv=0I}MpP5J>8s1YY^fW!;pwA(8sQ8pKeR7uK?G4#Lhkd!6a zZn9;-w!8!;FV8*q`)Uvk=vrlU!Kq|Ys&&fE zFdE?PXD+#BmS>c#KTs>ZbEo77I(cz?{NniKtM|BzKK&8l@hsJ%vKw8{nh44CdUKEq zuwurjRCo<5VHacq@ zz&ws$#^L3xt}3OStv9ptOjw{80K({sS&EO_*yPQyM@Wd*rrTAX+Vof6B z(u#cD*BpKR3Q_3eCyc*kNixb$Pftg0PL5xXSaR}y^fF1_@a)~&*ExUh4H?&V0iSIf z5H+WLXLxDPQmzRvmRx504;z6gE4ic5hO&8Gt+kjhEE$Vfl;H2vBt*lzE;>^i89YBo z56K0)ONp4qML{0KkmiQ#CC_4yKH(Y6+*gB-`>?|6!l= zUb51ST5&yFa8L*l_KL5C6lGn)BOxam<-ZCzXl443xSR{g!TWnH^gfXezLz;CP2PBy zJ`TN5sJX|02R#yBAh-$7GwDA|N6&=E)Le^HE2DBt@$~$TE;O=crS$z{cEoh&>bBC{ z8)}5*gx^bqH)|4!_bep@_TH+BcqlVcvRKEcrirpsZd-MKgQ;C`O3}oSS_PBy8ZC@; zjq*d9ADms?9{$^up<|ckjaF!&1~tfZx_~cITWipnD#?%Nw|A#UG%mB#H;;0ICt8eg z9|A=XLgq`-pja6CYmEd;;PA3(UqYfAImgTkm9T=iTneqEuj)z*@WOqN7IMB-akotY zgd#FspBo#)%cKx|M`@v$E8M?;9nc22htu}ZW=^X=l{kxPp040g3ju@0pQZ%h7{3KKHROABp@M1SkUj(GqDe%+O!)!FP(Ya_^H3F}Q zKe!yDT&uF5H%Gq66SrMdTw}q&vXLU!GeuHaHz8>yiY#S1GsI-JxyX3I(JEZ7V&v%c zkr!o>cv)dCFs&KJsT<*FEcnR**UpX}p*U(;-l_Az(HStD^3~|<+m%Q(7LVZ(4L@^> zgNZQrvx=p>JKB@EMss50Ie2wKvpPvp1Jd>`{TgsqX0W8k=>K(5x=SaH8irf$@zlRD zEf}_&r^rXG(Ej^zA((mc^?#Zj7&+T?;;3P`Pkk~w!+2;G-Y3%AO(v7JtMNY2l|bgB z?$DsxGDLdaV;W`1{C2Mmo783{_pjPI>tlr0@f5-Zy4Lpl8!eXD-6&(0Ia?~M*6zP6 zuIKfFW}26%JysZn`6?|#_h49zCk}nV%)+{y3AV8;jB$*bMp4Nv^E~`+jIFL)pyH?@ z>XBeQJ{1Um4Rm+l4$))T937*oP<4LE?ro%wCiYCi)>j20jrL5KR4qBaG(Z}wh1=}r zes*Ad#a>$vya|9iaeo6E)7RUpjpquHatS5wqp7dEhjJA}zG~qXYs}{WvAFg=f zx1$yhyYKH<5c;$*r`*w#fas9|aY6cG=`!d@JL9R3cL~9tf!(6}qE@ELqI~_-aNk}b zM>`v~q&fqCz*Fbwn3&M6Oa|Lf-?rQID-Q{NMneg0ws=75Z z7Y{xpZuP@F!AjtpK5}GtG{y7_QbFVM!dF7JjZqutw@W|ZN7vqT8r^t&zmEoK_pt;m L;k=>qBZ~e6Oo1!K literal 8114 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 diff --git a/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 b/Modules/Commvault.VirtualServer/Commvault.VirtualServer.psd1 index 7914b40ea515a2e3306b0d01370fbe51dec6afd4..1e1a01448d4eeeb07269de0fd0a7490cec929173 100644 GIT binary patch literal 4302 zcmc&&TW{Mo7=72T_y9jR0b(^tmvk*qpst;y0pc`p(rmA^MB7{?QY9(7#?b%1LsFI{ z$IhAo+wzi#m-F4ucVRkFhej$bGfp{^V#)tu%lin}qNz!9)-kkK($>j9y+1c?~a(wR9>6dm6 zkF_m`s@0||{AsVHToG<8xJ;j3tPb3=oI5q@KvuVll@_zPC1VkZ9Qu2PgjjgrMFX`y zgX;&$A-Pa*2oY01%gBQm(%d)-rLjjJa^rd6;^NKWG%aP~9LzFdS5#=VfYThsT0U!D zZ0g+RDcz|h*Y|S{`60eu>PSeDmpR-K7*R?7O~5-#)4asxOh^u;zm-Bi)nWtR;LTYa z_~!k&A9}8kYx{sZ4JAI|;5s%hRR2XX8Yb)$GZKkbMolfnw-*m|sX>{g(qH%45z~W9 z*+O$~s1cSEz88pXTCs>XEG0zst5pT@kYl7|wu+HTLuGHdt;PL>rgqLLLGc2wGA3sw zn<0uNat|Co7~G5x|812aV_VHTtrCusritlf4qqg;)KKSENq$7X|9XBz{X9MYWv_1V zM2*pJLLdV|$b3E;WC}xREkUpe9G+LTOGuO==a^ZhCM+W^7eXuPQ@YRsdSO4D7IM}~ zw{evKA&JbU$n}lk`6Ls3OK7H;%i6zz?a&&yfm0XIszta~VCVpa{NylL#^5yslZ5o< zBrMC&lgtYYa-<6I=0R0H-5B+-Do}?uV!!7ZBrE64%C6;{L%etFwyQeiuJ3}qR60jo z{yA^}*af|gOC3P;PLk;6h(TVFqAEqPp z`i)*4`J+q{&kHmKrZqz^bqySa1)m&nb>nC#6i2m|59%W5=nUvyaoZa_Rx{0rAsZ#{ z9?{PAk1Y9G77wT#?nL<7aXF%$KRY3B#Db3$%8^6#f9wFH?ogQAo!YUvPudv1R+{g) zLEV0u?pz=9TrGb7%9U1SF;LPXG+jUG4DuB5YWV&CB|@^TP8?Mlwn*Sre`H!P3~<`0%_r7%Qhd@8`$LrN_2+0 z{uRh$i~%W1PW_e$^XvKzPsl z>+w8um8^o^EVxB9H#S45E()}K|Fmhm1Du+e?g`^|5frJUr@|ztFnHZTY0PwPq@MYv zjkzJNOIZb81;B}OKOO4Rm+{TobD2oEgb?>iZOU$-+=L@vv~bTE3`POy2~_TUxa1Q* zmezQ9ar}YFtf>|T1h@1oAexgvTtHt;yT-lp+9OmG?-~bpfsN7jkiNIdg8jZ-yZ3J3 z=*EWDsf~d@;He9=P~6*QMHDqR11;OUaqrbn2-~%sDtP;PTl!|#ZLY`7A)mVc4Y>J! zD!%)WxS1P`9J843w&2M2Oc2v&P(kBS=QAN~W0c1E?b=UPy^%MadUqb*KLo;Q_e6!1 LuwJS2BZ~e4%lDp( literal 8856 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 literal 7938 zcmeI1Yfl?T6o%(>rT&MN_yCa#xmRtaN}+%gB$7rzl70o>>IPqGn~UL2t7T`!dxRg zy`RQ6<$3F2N8>|%-f0D^=V2?niF4m-&6(~l!unzt-|MNUj`W>s&0N=x=$?iT;Rju- z^la5tYsaF-+6UpTzV{Zt+@-bLJqdrr5vO$&+QKjhlgQyvSd#>d+f%(A3FTDikV<(* zPwz}xCz8=j@7fwk99`&X9)8t2eg~RSmFrf-bEvgr&B}G~qvo$B-z{-46T15gNjrb9 zql{@=94$1~Tf&yOGhAgn%d`yL18MtS{F;t^=OgVj(FZBIhF^xGuqO#4 z6+<*z=*P7_iP9SgA#$yoUj+7j5;nq}Oq2UzSL5fBf?3mCJM)YU|E_CS6w%;7`(t|` z=*5w;ZW90S@ie>&M%Q@V3*U!F;c@s*zmH_6o8h7O+1AdRas08KHubipv6k*y@qSP8 z`AOf0dfwB>w@W(O7CJDPy1y6gK32cSHlP=j%3=N2Wp&JkzHrVZkq_ z!hr2e700lkttBn(#`h^&xJM;@A&p+NxVCt)_b1v3Ysc~?qCFOMvp|n{d2Gn-uW8RF ztykl2As-_C!q<`Hju*gt*{^d=Jr_QFW++aEnu#=~l1x3nZ{loh=t6Uvc0;@UI1?Em zX*_Ze?^cmR9S`-<=&|&+90QZB=DJ!9JAP^T@8-DI8YJ>;K{FvUjedDed`WKVHF6uC zut7Wx$)htO!&Z2q=y|NWmfl$OxzO8bcza`;+R}>S%Z!X)V&iU=*g6@DT!Bqf*Wkri zs@FioCuY=HW}$pQEO{#`#HvD1<(x;}9f{%x@#NWZS7UQ=*wt^9zt1OG$KBR`)NEE2 zoQXp`^jz0|-_iMCu`$m6`8)2RZ!ERO)Qb>mrAf5 zZ3i16(w|4$DO8cXi1O@)Z#3_hnCZFOmJB<}`j2iQJ-3f4lI=zu^|2&n7Hk?jAoo&_ zQZsQ!Rfx?Gm#Q}MfmKs(J$+g4So84hH5{)NtJQJ z2;YaIT+S2aoCOc?S*-)NqprHbK@B+&jjQ>ElN0I3EcsJ0uL;vK?s`P^=<|NW`wKYO zP_&@NzaOnA=?{CftV*qm{`hrGwWE%xrKhTApz|fPmEu?#|4cDzD;iEB zAN4%Hmp;!HoKx4Et>(JBh%wn@kZkyRJ40u_|4lHrqHWVB<30Zj?lOj(U|;s7s(%vc zuot>?;)D4I8N)kd-sTlm`7QN58l@vfHn!fZ^HA%SyWP84O)sd&5QSVx1RVVmV5rk{w!+3<8(1@XC~we=28_SKRETyv{0SQ znL$T#!E-yJf}}^fTV6p-!gH+_agVl6iPH%7uzuGl;M>@}bsJEpPO_fY`+Tc&EQ=8} zKnGXEj_V|3US5?Zy4uSm>3UdK2MzvBRS&Og&V=A#U403CAg2UP^YTuAM_hImlKEek z%erh|D;?8gF2!aY=CXesHN_d1ozUD?{&;hh)~YDz;K4w@ep>|pU2nE-{m( zRrb5`*B$vSRR=XO)vr~^w~MMC*LOv&9c!nY>Z-U7V#FrWT24X=XL>5vV{^^{2Ec?mNPAwn@8rtjql*z0c8%&LR;v)kZ$NAKxwrCXgLSo)reuIbD1ea^JGz|tV3$~ za<>iT+zNOiD>2h)rgLNdg{bfA&1-U*CRC<@^zT9;DtvP6O|yLVnpPYORX=LwMAkYH zey^V9Q9||AiOUtQB(vLDAEyt=zH_}IC47!EN$LWt6sVu=d;wvx%+NL zxxb)!6MXc;SdV2S&Pa$xM4i+W)Bjt|BI=1V&BI3@^iwJ^D=vwe)J0In#83$3eF5I# Z_{}=2T<%D-oM{?2 Date: Tue, 1 Nov 2022 16:49:28 +0530 Subject: [PATCH 20/21] Changing the StoragePolicy Url to V2 --- Modules/Commvault.Policies/Commvault.Policies.psm1 | 4 ++-- Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/Commvault.Policies/Commvault.Policies.psm1 b/Modules/Commvault.Policies/Commvault.Policies.psm1 index 29d8691..f18d63b 100644 --- a/Modules/Commvault.Policies/Commvault.Policies.psm1 +++ b/Modules/Commvault.Policies/Commvault.Policies.psm1 @@ -628,7 +628,7 @@ function Get-CVStoragePolicy { else { foreach ($policy in $response.Content.policies) { if (-not [String]::IsNullOrEmpty($Name)) { - if ($Name -eq $policy.storagePolicyName) { + if ($Name -eq $policy.storagePolicy.storagePolicyName) { $policiesToProcess += $policy } } @@ -645,7 +645,7 @@ function Get-CVStoragePolicy { $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{storagePolicyId}', $policy.storagePolicyAndCopy.storagePolicyId) } else { - $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{storagePolicyId}', $policy.storagePolicyId) + $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{storagePolicyId}', $policy.storagePolicy.storagePolicyId) } $headerObj = Get-CVRESTHeader $sessionObj diff --git a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 index af524cf..ec308e8 100644 --- a/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 +++ b/Modules/Commvault.RESTSession/Commvault.RESTSession.psm1 @@ -954,7 +954,7 @@ function GetAPIDetail ([String] $Request) { 'Get-CVStoragePolicy' = @{ Description = 'Get storage policies' - Endpoint = 'StoragePolicy' + Endpoint = 'V2/StoragePolicy' Method = 'Get' Body = '' } From 8958e9e48c996c2378a41e647ad3e85ec6165cb0 Mon Sep 17 00:00:00 2001 From: JnaneshD05 <97098752+JnaneshD05@users.noreply.github.com> Date: Mon, 2 Jan 2023 20:25:48 +0530 Subject: [PATCH 21/21] Show DR backups in the Get-CVJob command --- Modules/Commvault.JobManager/Commvault.JobManager.psm1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 index 53b8ea9..95ed377 100644 --- a/Modules/Commvault.JobManager/Commvault.JobManager.psm1 +++ b/Modules/Commvault.JobManager/Commvault.JobManager.psm1 @@ -199,7 +199,9 @@ function Get-CVJob { $subclientId = $subclientObj.subclientId } } - + + $sessionObj.requestProps.endpoint += "&hideAdminjobs=false" + if (-not [String]::IsNullOrEmpty($JobFilter)) { $sessionObj.requestProps.endpoint += '&jobFilter=' + $JobFilter }