Scripts/ProtectionSource/register-cohesityprotectionsourceisilon.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
function Register-CohesityProtectionSourceIsilon { <# .SYNOPSIS Register a new Isilon source. .DESCRIPTION The Register-CohesityProtectionSourceIsilon function is used to register a new Isilon protection source. .NOTES Published by Cohesity .LINK https://cohesity.github.io/cohesity-powershell-module/#/README .EXAMPLE Register-CohesityProtectionSourceIsilon -Server <string> -Credential (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "root", (ConvertTo-SecureString -AsPlainText "secret" -Force)) #> [CmdletBinding()] Param( [Parameter(Position = 0, Mandatory = $true)] [ValidateNotNullOrEmpty()] [String]$Server, [Parameter(Mandatory = $true)] [ValidateNotNull()] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] $Credential ) Begin { if (-not (Test-Path -Path "$HOME/.cohesity")) { throw "Failed to authenticate. Please connect to the Cohesity Cluster using 'Connect-CohesityCluster'" } $cohesitySession = Get-Content -Path $HOME/.cohesity | ConvertFrom-Json $cohesityCluster = $cohesitySession.ClusterUri $cohesityToken = $cohesitySession.Accesstoken.Accesstoken } Process { $ISILON_TYPE = 14 # Using a private API for the registration, public API will be used in the upcoming release $cohesityClusterURL = $cohesityCluster + '/irisservices/api/v1/backupsources' $cohesityHeaders = @{'Authorization' = 'Bearer ' + $cohesityToken } $userName = $Credential.UserName $plainPassword = $Credential.GetNetworkCredential().Password $payload = @{ entity = @{ type = $ISILON_TYPE isilonEntity = @{ type = 0 } } entityInfo = @{ endpoint = $Server type = $ISILON_TYPE credentials = @{ username = $userName password = $plainPassword } } } $payloadJson = $payload | ConvertTo-Json -Depth 100 $resp = Invoke-RestApi -Method Post -Uri $cohesityClusterURL -Headers $cohesityHeaders -Body $payloadJson if ($resp) { $resp } else { $errorMsg = "Register Isilon : Failed to register" Write-Output $errorMsg Write-Output $Global:CohesityAPIError CSLog -Message $errorMsg } } End { } } |