Public/RADIUSServerGroup.ps1
# # Copyright 2019, Alexis La Goutte <alexis dot lagoutte at gmail dot com> # Copyright 2019, Cédric Moreau <moreaucedric0 at gmail dot com> # # SPDX-License-Identifier: Apache-2.0 # function Get-ArubaSWRadiusServerGroup { <# .SYNOPSIS Get RADIUS Server group informations. .DESCRIPTION Get RADIUS Server Group informations configured on the device. .EXAMPLE Get-ArubaSWRadiusServerGroup -server_group_name PowerArubaSW This function give you all the informations about the radius servers in the group PowerArubaSW configured on the switch. #> Param( [Parameter (Mandatory = $true)] [string]$server_group_name, [Parameter (Mandatory = $False)] [ValidateNotNullOrEmpty()] [PSObject]$connection = $DefaultArubaSWConnection ) Begin { } Process { $uri = "rest/v4/radius/server_group/${server_group_name}" $response = Invoke-ArubaSWWebRequest -method "GET" -uri $uri -connection $connection $run = ($response | ConvertFrom-Json) $run } End { } } function Add-ArubaSWRadiusServerGroup { <# .SYNOPSIS Add a RADIUS Server Group. .DESCRIPTION Add a RADIUS Server Group with radius servers. .EXAMPLE Add-ArubaSWRadiusServerGroup -server_group_name PowerArubaSWGroup -server1 192.0.2.1 Add the group PowerArubaSWGroup with 1 server. .EXAMPLE Add-ArubaSWRadiusServerGroup -server_group_name PowerArubaSWGroup -server1 192.0.2.1 -server2 192.0.2.2 -server3 192.0.2.3 Add the group PowerArubaSWGroup with 3 servers. #> Param( [Parameter (Mandatory = $true)] [string]$server_group_name, [Parameter (Mandatory = $true)] [ipaddress]$server1, [Parameter (Mandatory = $false)] [ipaddress]$server2, [Parameter (Mandatory = $false)] [ipaddress]$server3, [Parameter (Mandatory = $False)] [ValidateNotNullOrEmpty()] [PSObject]$connection = $DefaultArubaSWConnection ) Begin { } Process { $uri = "rest/v4/radius/server_group" $conf = New-Object -TypeName PSObject $serverip1 = New-Object -TypeName PSObject $servers = @() $serverip1 | Add-Member -name "version" -MemberType NoteProperty -Value "IAV_IP_V4" $serverip1 | Add-Member -name "octets" -MemberType NoteProperty -Value $server1.ToString() $servers += $serverip1 if ($PsBoundParameters.ContainsKey('server2')) { $serverip2 = New-Object -TypeName PSObject $serverip2 | Add-Member -name "version" -MemberType NoteProperty -Value "IAV_IP_V4" $serverip2 | Add-Member -name "octets" -MemberType NoteProperty -Value $server2.ToString() $servers += $serverip2 } if ($PsBoundParameters.ContainsKey('server3')) { $serverip3 = New-Object -TypeName PSObject $serverip3 | Add-Member -name "version" -MemberType NoteProperty -Value "IAV_IP_V4" $serverip3 | Add-Member -name "octets" -MemberType NoteProperty -Value $server3.ToString() $servers += $serverip3 } $conf | Add-Member -name "server_ip" -Membertype NoteProperty -Value $servers $conf | Add-Member -name "server_group_name" -MemberType NoteProperty -Value $server_group_name $response = Invoke-ArubaSWWebRequest -method "POST" -body $conf -uri $uri -connection $connection $run = $response | ConvertFrom-Json $run } End { } } function Remove-ArubaSWRadiusServerGroup { <# .SYNOPSIS Remove a RADIUS Server Group. .DESCRIPTION Remove a RADIUS Server Group. .EXAMPLE Get-ArubaSWRadiusServerGroup -server_group_name PowerArubaSW | Remove-ArubaSWRadiusServerGroup Remove the radius server group with name PowerArubaSW. .EXAMPLE Remove-ArubaSWRadiusServerGroup -server_group_name PowerArubaSW -noconfirm Remove the radius server group with name PowerArubaSW without confirmation. #> Param( [Parameter (Mandatory = $true, ParameterSetName = "server_group_name")] [string]$server_group_name, [Parameter (Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = "server_group")] [psobject]$server_group, [Parameter(Mandatory = $false)] [switch]$noconfirm, [Parameter (Mandatory = $False)] [ValidateNotNullOrEmpty()] [PSObject]$connection = $DefaultArubaSWConnection ) Begin { } Process { if ($server_group) { $server_group_name = $server_group.server_group_name } $uri = "rest/v4/radius/server_group/${server_group_name}" if ( -not ( $Noconfirm )) { $message = "Remove RADIUS Server Group on switch" $question = "Proceed with removal of RADIUS server Group $server_group_name ?" $choices = New-Object Collections.ObjectModel.Collection[Management.Automation.Host.ChoiceDescription] $choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&Yes')) $choices.Add((New-Object Management.Automation.Host.ChoiceDescription -ArgumentList '&No')) $decision = $Host.UI.PromptForChoice($message, $question, $choices, 1) } else { $decision = 0 } if ($decision -eq 0) { Write-Progress -activity "Remove RADIUS Server Group" $null = Invoke-ArubaSWWebRequest -method "DELETE" -uri $uri -connection $connection Write-Progress -activity "Remove RADIUS Server Group" -completed } } End { } } |