Scripts/ProtectionSource/register-cohesityprotectionsourceisilon.ps1
function Register-CohesityProtectionSourceIsilon { <# .SYNOPSIS Registers a new Isilon protection source with the Cohesity Cluster. .DESCRIPTION Registers a new Isilon protection source with the Cohesity Cluster. .NOTES Published by Cohesity .LINK https://cohesity.github.io/cohesity-powershell-module/#/README .EXAMPLE Register-CohesityProtectionSourceIsilon -Server "isilon-cluster.example.com" -Credential (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "root", (ConvertTo-SecureString -AsPlainText "secret" -Force)) Registers a new Isilon cluster with hostname "isilon-cluster.example.com" with the Cohesity Cluster. #> [CmdletBinding()] Param( [Parameter(Position = 0, Mandatory = $true)] [ValidateNotNullOrEmpty()] # Hostname or IP Address for the Isilon cluster. [String]$Server, [Parameter(Mandatory = $true)] [ValidateNotNull()] [System.Management.Automation.PSCredential] [System.Management.Automation.Credential()] # User credentials for the Isilon cluster. $Credential ) Begin { } Process { $ISILON_TYPE = 14 # Using a private API for the registration, public API will be used in the upcoming release $cohesityClusterURL = '/irisservices/api/v1/backupsources' $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 -Body $payloadJson if ($resp) { $resp } else { $errorMsg = "Register Isilon : Failed to register" Write-Output $errorMsg Write-Output $Global:CohesityAPIError CSLog -Message $errorMsg } } End { } } |