Modules/licenses.psm1
# DELETE /rest/v1.0/dd-systems/{SYSTEM-ID}/licenses function Remove-DDlicenses { [CmdletBinding()] param ( [CmdletBinding()] [switch]$restore_to_eval, [string] $SYSTEM_ID = $Global:DD_UUID, $body = @{} ) begin { $Response = @() $METHOD = "DELETE" $apiver = "rest/v2.0" } process { switch ($PsCmdlet.ParameterSetName) { default { $uri = "dd-systems/$($SYSTEM_ID)/licenses" $body.add('restore_to_eval', $restore_to_eval.IsPresent) } } $body = $body | ConvertTo-Json Write-Verbose ($body | Out-String) $parameters = @{ uri = $uri apiver = $apiver Method = $METHOD body = $body RequestMethod = "REST" Verbose = $PSBoundParameters['Verbose'] -eq $true Debug = $PSBoundParameters['Debug'] -eq $true } try { $Response += Invoke-DDapirequest @Parameters } catch { Get-DDWebException -ExceptionMessage $_ break } write-verbose ($response | Out-String) } end { switch ($PsCmdlet.ParameterSetName) { default { $response | Select-Object -ExcludeProperty link, paging_info } } } } #GET /rest/v2.0/dd-systems/{SYSTEM-ID}/licenses function Get-DDlicenses { [CmdletBinding()] param ( [CmdletBinding()] [switch]$restore_to_eval, [string] $SYSTEM_ID = $Global:DD_UUID, $body = @{} ) begin { $Response = @() $METHOD = "GET" $apiver = "rest/v2.0" } process { switch ($PsCmdlet.ParameterSetName) { default { $uri = "dd-systems/$($SYSTEM_ID)/licenses" } } $body = $body | ConvertTo-Json Write-Verbose ($body | Out-String) $parameters = @{ uri = $uri apiver = $apiver Method = $METHOD body = $body RequestMethod = "REST" Verbose = $PSBoundParameters['Verbose'] -eq $true Debug = $PSBoundParameters['Debug'] -eq $true } try { $Response += Invoke-DDapirequest @Parameters } catch { Get-DDWebException -ExceptionMessage $_ break } write-verbose ($response | Out-String) } end { switch ($PsCmdlet.ParameterSetName) { default { $response | Select-Object -ExcludeProperty link, paging_info -ExpandProperty license } } } } <# .SYNOPSIS Update license information for DataDomain .DESCRIPTION Cmdlet for update a DataDomain license information to elms - from a vile in /ddvar - from a client side file .PARAMETER license_content_file Specifies the a local file conataining the license information. Content get´s applied to elms .PARAMETER license_file Specifies the filename in /ddvar to apply the agains elms (need to be copied beforehand) .EXAMPLE Set-DDlicenses -license_file internal.lic details code ------- ---- success 0 .EXAMPLE Set-DDlicenses -license_content_file .\PPDD-pwsh\internal.lic details code ------- ---- success 0 #> function Set-DDlicenses { [CmdletBinding()] param ( [CmdletBinding()] [Parameter(Mandatory = $true, ParameterSetName = 'elms_update_with_content' )] [System.IO.FileInfo]$license_content_file, [Parameter(Mandatory = $true, ParameterSetName = 'elms_update_with_filename')] [string]$license_file, [string]$SYSTEM_ID = $Global:DD_UUID, $body = @{} ) begin { $Response = @() $METHOD = "PUT" $apiver = "rest/v2.0" $uri = "dd-systems/$($SYSTEM_ID)/licenses" } process { switch ($PsCmdlet.ParameterSetName) { 'elms_update_with_content' { $license_content = (Get-Content $license_content_file | Out-String ) $body.Add('operation', 'elms_update_with_content') $body.Add('elms_unserved_license', @{'license_content' = $license_content }) } 'elms_update_with_filename' { $body.Add('operation', 'elms_update_with_filename') $body.Add('elms_unserved_license', @{'license_file' = $license_file }) } } $Global:DD_Headers.Add('Accept', 'Application/text') $body = $body | ConvertTo-Json Write-Verbose ($body | Out-String) $parameters = @{ uri = $uri apiver = $apiver Method = $METHOD body = $body RequestMethod = "REST" Verbose = $PSBoundParameters['Verbose'] -eq $true Debug = $PSBoundParameters['Debug'] -eq $true } try { $Response += Invoke-DDapirequest @Parameters } catch { Get-DDWebException -ExceptionMessage $_ break } write-verbose ($response | Out-String) } end { switch ($PsCmdlet.ParameterSetName) { default { $response.status_group | Select-Object -ExcludeProperty link, paging_info } } } } |