Public/set-alvcenterconnector.ps1
function Set-alVcenterConnector { <# .SYNOPSIS Sets Vcenter Connector configuration .DESCRIPTION Sets Vcenter Connector configuration .PARAMETER websession Existing Webrequest session for ELM Appliance .PARAMETER config Connector Config .PARAMETER force Skip Verify .EXAMPLE Set-VcenterConnector -websession $websession -config $connectorconfig #> [cmdletbinding(SupportsShouldProcess = $true, ConfirmImpact='High')] Param( [Parameter(Mandatory=$true)]$websession, [Parameter(Mandatory=$true)]$config, [switch]$force ) Begin {Write-Verbose "BEGIN: $($MyInvocation.MyCommand)"} Process{ #do the request $headers = @{ "Cookie" = ("UMCSessionCoookie=" + $($websession.token)) "Accept" = "*/*" "Content-Type" = "application/json" } $configjson = $config|ConvertTo-Json -Depth 20 if ($PSCmdlet.ShouldProcess("Setting vCenter Connector")) { if($force) { Write-Verbose "Skipping Connector Data Validation" } else { Write-Verbose "Verifying Connector Data" try { Invoke-RestMethod -Method Post -Uri "https://$($websession.aplip):3504/api/Configurations/verify" -Headers $headers -Body $configjson|Out-Null } catch { $temp = $_.ErrorDetails.Message|ConvertFrom-Json Write-error $temp.error.message Write-error $temp.error.sqlmessage write-error $temp.error.staus throw "Process failed!" } Write-Verbose "Validation Successful" } try { Write-Verbose "Setting Connector Data" Invoke-RestMethod -Method Put -Uri "https://$($websession.aplip):3504/api/Configurations/$($config.pccid)" -Headers $headers -Body $configjson|Out-Null } catch { if($_.ErrorDetails.Message) { $temp = $_.ErrorDetails.Message|ConvertFrom-Json Write-error $temp.error.message Write-error $temp.error.sqlmessage write-error $temp.error.staus throw "Process failed!" } else { throw $_ } } } } end{Write-Verbose "END: $($MyInvocation.MyCommand)"} } |