DSCResources/DSC_NetAdapterRdma/DSC_NetAdapterRdma.psm1
$modulePath = Join-Path -Path (Split-Path -Path (Split-Path -Path $PSScriptRoot -Parent) -Parent) -ChildPath 'Modules' # Import the Networking Common Modules Import-Module -Name (Join-Path -Path $modulePath ` -ChildPath (Join-Path -Path 'NetworkingDsc.Common' ` -ChildPath 'NetworkingDsc.Common.psm1')) Import-Module -Name (Join-Path -Path $modulePath -ChildPath 'DscResource.Common') # Import Localization Strings $script:localizedData = Get-LocalizedData -DefaultUICulture 'en-US' <# .SYNOPSIS Gets the state of the network adapter RDMA. .PARAMETER Name Specifies the name of network adapter for which RDMA needs to be configured. #> function Get-TargetResource { [CmdletBinding()] [OutputType([Hashtable])] param ( [Parameter(Mandatory = $true)] [System.String] $Name ) $configuration = @{ Name = $Name } try { Write-Verbose -Message ($script:localizedData.GetNetAdapterRdmaMessage -f $Name) $netAdapterRdma = Get-NetAdapterRdma -Name $Name -ErrorAction Stop } catch { New-InvalidOperationException ` -Message ($script:localizedData.NetAdapterNotFoundError -f $Name) } if ($netAdapterRdma) { Write-Verbose -Message ($script:localizedData.CheckNetAdapterRdmaMessage -f $Name) $configuration.Add('Enabled', $netAdapterRdma.Enabled) } return $configuration } <# .SYNOPSIS Sets the state of the network adapter RDMA. .PARAMETER Name Specifies the name of network adapter for which RDMA needs to be configured. .PARAMETER Enabled Specifies if the RDMA configuration should be enabled or disabled. Defaults to $true. #> function Set-TargetResource { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [System.String] $Name, [Parameter()] [System.Boolean] $Enabled = $true ) $configuration = @{ Name = $Name } try { Write-Verbose -Message ($script:localizedData.GetNetAdapterRdmaMessage -f $Name) $netAdapterRdma = Get-NetAdapterRdma -Name $Name -ErrorAction Stop } catch { New-InvalidOperationException ` -Message ($script:localizedData.NetAdapterNotFoundError -f $Name) } if ($netAdapterRdma) { Write-Verbose -Message ($script:localizedData.CheckNetAdapterRdmaMessage -f $Name) if ($netAdapterRdma.Enabled -ne $Enabled) { Write-Verbose -Message ($script:localizedData.SetNetAdapterRdmaMessage -f $Name, $Enabled) Set-NetAdapterRdma -Name $Name -Enabled $Enabled } } } <# .SYNOPSIS Tests the state of the network adapter RDMA. .PARAMETER Name Specifies the name of network adapter for which RDMA needs to be configured. .PARAMETER Enabled Specifies if the RDMA configuration should be enabled or disabled. Defaults to $true. #> function Test-TargetResource { [CmdletBinding()] [OutputType([System.Boolean])] param ( [Parameter(Mandatory = $true)] [System.String] $Name, [Parameter()] [System.Boolean] $Enabled = $true ) try { Write-Verbose -Message ($script:localizedData.GetNetAdapterRdmaMessage -f $Name) $netAdapterRdma = Get-NetAdapterRdma -Name $Name -ErrorAction Stop } catch { New-InvalidOperationException ` -Message ($script:localizedData.NetAdapterNotFoundError -f $Name) } if ($netAdapterRdma) { Write-Verbose -Message ($script:localizedData.CheckNetAdapterRdmaMessage -f $Name) if ($netAdapterRdma.Enabled -ne $Enabled) { Write-Verbose -Message ($script:localizedData.NetAdapterRdmaDifferentMessage -f $Name) return $false } else { Write-Verbose -Message ($script:localizedData.NetAdapterRdmaMatchesMessage -f $Name) return $true } } } |