Hi Guys,
I developed a solution to this issue as a workaround for BURT 746803. Instead of using the PowerShell CmdLet just use SSH.
Rather than using the WFA Certified Commands I created custom commands that use the "Invoke-NaSsh" CmdLet to run the SSH commands you would use to create a vfiler as per the following KB article:
https://kb.netapp.com/support/index?page=content&id=1011779
See source code for the WFA commands below to create a vfiler and a vlan
Create and configure vfiler using SSH:
Param(
[Parameter(Mandatory=$True, HelpMessage="The name or IP address of the controller")]
[String]$Array,
[Parameter(Mandatory=$True, HelpMessage="The name of the vFiler")]
[String]$VfilerName,
[Parameter(Mandatory=$False, HelpMessage="The name or IP address of the partner controller")]
[String]$Partner,
[Parameter(Mandatory=$True, HelpMessage="Delimited list of ip_address:netmask:interface to be bound to the new vFiler eg 10.10.10.10:255.255.0.0:e0a")]
[Array]$IpAddressBindings,
[Parameter(Mandatory=$False, HelpMessage="The IP Address of the vFilers default route to add")]
[String]$DefaultRoute,
[Parameter(Mandatory=$True, HelpMessage="Comma separated list of volume or qtree paths to be owned by the new vFiler")]
[Array]$Storage,
[Parameter(Mandatory=$False, HelpMessage="IPspace of the new vFiler. If it does not exist it will be created. If not provided, the vFiler will be created in the default-ipspace")]
[String]$IpSpace,
[Parameter(Mandatory=$False, HelpMessage="DNS domain name for the vFiler")]
[String]$DnsDomainName,
[Parameter(Mandatory=$False, HelpMessage="Comma separated list of DNS servers for the vFiler")]
[Array]$DnsServers,
[Parameter(Mandatory=$False, HelpMessage="NIS domain name for the vFiler")]
[String]$NisDomainName,
[Parameter(Mandatory=$False, HelpMessage="Comma separated list of NIS servers for the vFiler")]
[Array]$NisServers,
[Parameter(Mandatory=$False, HelpMessage="Administrative host name for the vFiler")]
[String]$AdminHostName,
[Parameter(Mandatory=$False, HelpMessage="Administrative host IP address for the vFiler")]
[String]$AdminHostIpAddress,
[Parameter(Mandatory=$False, HelpMessage="Enable CIFS on the new vFiler")]
[Bool]$CifsSupported=$True,
[Parameter(Mandatory=$False, HelpMessage="Enable NFS on the new vFiler")]
[Bool]$NfsSupported=$True,
[Parameter(Mandatory=$False, HelpMessage="Enable HTTP on the new vFiler")]
[Bool]$HttpSupported=$True,
[Parameter(Mandatory=$False, HelpMessage="Enable FTP on the new vFiler")]
[Bool]$FtpSupported=$True,
[Parameter(Mandatory=$False, HelpMessage="Enable iSCSI on the new vFiler")]
[Bool]$IscsiSupported=$True,
[Parameter(Mandatory=$False, HelpMessage="Enable RSH on the new vFiler")]
[Bool]$RshSupported=$True,
[Parameter(Mandatory=$False, HelpMessage="Enable SSH on the new vFiler")]
[Bool]$SshSupported=$True
)
#'------------------------------------------------------------------------------
#Validate input paramaters ensuring there is atleast one IPAddress binding info in the command input.
#'------------------------------------------------------------------------------
If($IpAddressBindings.Length -eq 0){
Throw "At least one IpAddress binding should be provided";
}
#'------------------------------------------------------------------------------
#'Ensure that either both DNS domain name and servers or none are provided.
#'------------------------------------------------------------------------------
If(($DnsDomainName -And !$DnsServers) -Or (!$DnsDomainName -and $DnsServers)){
Throw "Both DNS Domain name and servers should be provided";
}
#'------------------------------------------------------------------------------
#'Ensure that either both NIS domain name and servers or none are provided.
#'------------------------------------------------------------------------------
If(($NisDomainName -And !$NisServers) -Or (!$NisDomainName -and $NisServers)){
Throw "Both NIS Domain name and servers should be provided";
}
#'------------------------------------------------------------------------------
#'Store only the IP Addresses from the IPAddressBiding array as only IpAddresses are required for New-NaVfiler
#'Complete binding information is required for New-NaVFilerIPAddress in the form of array of IpBindingInfo objects
#'List of interfaces are derived from array of IpAddressBinding. Required for assigning the interfaces to a non-default IPspace if specified.
#'------------------------------------------------------------------------------
[String]$filePath = "/vol/vol0/etc/rc"
[Array]$ipAddresses = @()
[Array]$interfaces = @()
#'------------------------------------------------------------------------------
#'Each element in $IpAddressBindings is in the form of <IpAddress>:<Netmask>:<Interface>
#'------------------------------------------------------------------------------
ForEach($ipAddressBindingInfo In $IpAddressBindings){
$binding = $ipAddressBindingInfo.split(":")
If($binding.Length -ne 3){
Throw "Each element in the IpAddressBindings must be in the format of`: <IpAddress>`:<Netmask>`:<Interface>"
}
[Array]$ipAddresses += $binding[0]
[Array]$interfaces += $binding[2]
[String]$vFilerSubnet = $binding[0].SubString(0, $binding[0].LastIndexOfAny("."))
}
#'------------------------------------------------------------------------------
#'Check if the vFilers Default Route is on the same subnet as the vfiler.
#'------------------------------------------------------------------------------
If($DefaultRoute){
[String]$routeSubnet = $DefaultRoute.SubString(0, $DefaultRoute.LastIndexOfAny("."))
If($vFilerSubnet -ne $routeSubnet){
Get-WFALogger -Info -Message "The vFilers default Route ""$DefaultRoute"" is not on the same subnet as ""$ipAddresses"""
#Throw "The vFilers default Route ""$DefaultRoute"" is not on the same subnet as ""$ipAddresses"""
}
}
#'------------------------------------------------------------------------------
#'Connect to the controller.
#'------------------------------------------------------------------------------
Connect-WfaController -Array $Array
Get-WFALogger -Info -Message $("Creating vFiler`: name`: " + $VfilerName + ", IP addresses`: " + $IpAddressBindings + ", storage`: " + $Storage + ", IP space: " + $Ipspace)
#'------------------------------------------------------------------------------
#'Check if the IPspace exists on the controller.
#'------------------------------------------------------------------------------
If($Ipspace){
Try{
$ipSpaceInArray = Get-NaNetIpspace -ErrorAction Stop | Where-Object {$_.ipspace -eq $Ipspace}
Get-WFALogger -Info -Message "Enumerated IP Space ""$Ipspace"" on controller ""$Array"""
}Catch{
Get-WFALogger -Error -Message $("Failed enumerating IP Space ""$Ipspace"" on controller ""$Array"". Error " + $_.Exception.Message)
Throw "Failed enumerating IP Space ""$Ipspace"""
}
#'---------------------------------------------------------------------------
#'Ensure the IPspace is created on the controller.
#'---------------------------------------------------------------------------
If(-Not($ipSpaceInArray)){
Try{
Get-WFALogger -Info -message "Creating Ipspace ""$Ipspace"" on controller ""$Array"""
[String]$command = "ipspace create $Ipspace"
#New-NaNetIpspace -Name $Ipspace
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error`: " + $_.Exception.Message)
Throw "Failed creating IPspace ""$Ipspace"" on controller ""$Array"""
}
Get-WFALogger -Info -Message "Created IPspace ""$Ipspace"" on controller ""$Array"""
}Else{
Get-WFALogger -Info -Message "The IPspace ""$Ipspace"" already exists on controller ""$Array"""
}
#'---------------------------------------------------------------------------
#'Enumerate the network interface.
#'---------------------------------------------------------------------------
ForEach($interface In $interfaces){
#Check if interface is already in ipspace. Addition will fail if it is.
Try{
$interfaceInIpSpace = Get-NaNetInterface -Name $interface -ErrorAction Stop | Where-Object {$_.IpspaceName -eq $Ipspace}
Get-WFALogger -Info -Message "Enumerated network interface ""$interface"" on controller ""$Array"""
}Catch{
Get-WFALogger -Error -Message $("Failed enumerating network interface ""$interface"" on controller ""$Array"". Error`: " + $_.Exception.Message)
Throw "Failed enumerating network interface ""$interface"" on controller ""$Array"""
}
#'------------------------------------------------------------------------
#'Assign the network interface to the ipspace if the vfiler is being created in a non-default IPspace.
#'------------------------------------------------------------------------
If(-Not($interfaceInIpSpace)){
Try{
Get-WFALogger -Info -Message $("Assigning interface " + $interface + " to IPspace " + $Ipspace)
#Set-NaNetIpspace -Name $Ipspace -Interfaces $interfaces -ErrorAction Stop
[String]$command = "ipspace assign $Ipspace $interface"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error`: " + $_.Exception.Message)
Throw "Failed to assign IP Space ""$Ipspace"" to network interface ""$interface"" on controller ""$Array"""
}
}Else{
Get-WFALogger -Info -Message "The network interface ""$interface"" is already in IPspace ""$Ipspace"""
}
}
}Else{
$Ipspace = "default-ipspace";
}
#'------------------------------------------------------------------------------
#'Re-Enumerate the network interface now that it has been assigned to the IP Space
#'------------------------------------------------------------------------------
Try{
$interfaceInIpSpace = Get-NaNetInterface -Name $interface -ErrorAction Stop | Where-Object {$_.IpspaceName -eq $Ipspace}
Get-WFALogger -Info -Message "Enumerated network interface ""$interface"" on controller ""$Array"""
}Catch{
Get-WFALogger -Error -Message $("Failed enumerating network interface ""$interface"" on controller ""$Array"". Error`: " + $_.Exception.Message)
Throw "Failed enumerating network interface ""$interface"" on controller ""$Array"""
}
#'------------------------------------------------------------------------------
#'Get the MTU Size if it is specified on the interface.
#'------------------------------------------------------------------------------
[Bool]$setMtu = $False
If($interfaceInIpSpace.MtusizeSpecified){
[Int]$mtuSize = $interfaceInIpSpace.Mtusize
[Bool]$setMtu = $True
}
#'------------------------------------------------------------------------------
#'Create the vFiler.
#'------------------------------------------------------------------------------
Try{
[String]$vFilerRootVolume = $Storage[$Storage.GetLowerBound(0)]
Get-WFALogger -Info -Message "Creating new vfiler ""$VfilerName"" on controller ""$Array"""
#New-NaVfiler -Name $VfilerName -Addresses $ipAddresses -Storage $Storage -Ipspace $Ipspace -ErrorAction stop
[String]$command = "vfiler create $VfilerName -n -s $Ipspace -i $ipAddresses $vFilerRootVolume"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
Throw "Failed to create vFiler ""$VfilerName"" on controller ""$Array"""
}
#'------------------------------------------------------------------------------
#'Setup IP Address bindings for the vFiler.
#'------------------------------------------------------------------------------
[Array]$sourceEtcLines = @()
[Array]$parnterEtcLines = @()
[Array]$vFilerRoutes = @()
Try{
ForEach($ipAddressBindingInfo in $IpAddressBindings){
$binding = $ipAddressBindingInfo.split(":")
Get-WFALogger -Info -Message $("Setting vfiler Address " + $binding[0] + " Interface " + $binding[2] + " Netmask " + $binding[1])
If($setMtu){
#Set-NaVfilerAddress -Name $VfilerName -Addresses $binding[0] -Interface $binding[2] -Netmask $binding[1] -ErrorAction Stop
[String]$command = "ifconfig " + $binding[2] + " " + $binding[0] + " up netmask " + $binding[1] + " mtusize " + $mtuSize + " partner " + $binding[2]
[Array]$sourceEtcLines += "ifconfig " + $binding[2] + " " + $binding[0] + " netmask " + $binding[1] + " mtusize " + $mtuSize + " partner " + $binding[2]
[Array]$parnterEtcLines += "ifconfig " + $binding[2] + " mtusize " + $mtuSize + " partner " + $binding[2]
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Else{
[String]$command = "ifconfig " + $binding[2] + " " + $binding[0] + " up netmask " + $binding[1] + " partner " + $binding[2]
[Array]$sourceEtcLines += "ifconfig " + $binding[2] + " " + $binding[0] + " netmask " + $binding[1] + " partner " + $binding[2]
[Array]$parnterEtcLines += "ifconfig " + $binding[2] + " partner " + $binding[2]
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}
}
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. " + $_.Exception.Message)
Throw "Failed to set the IP configuration for vFiler ""$VfilerName"" on controller ""$Array"""
}
#'------------------------------------------------------------------------------
#'Add the vfilers default route if required.
#'------------------------------------------------------------------------------
If($DefaultRoute -ne ""){
Get-WFALogger -Info -Message "Adding default route for vFiler ""$VfilerName"" on controller ""$Array"""
Try{
[String]$command = "vfiler run $VfilerName route add default $DefaultRoute 1"
[Array]$vFilerRoutes += $command
Invoke-NaSsh -Command $command
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error: " + $_.Exception.Message)
Throw "Failed to add the default route for vFiler ""$VfilerName"" on controller ""$Array"""
}
}
#'------------------------------------------------------------------------------
#'Setup DNS for the vFiler.
#'------------------------------------------------------------------------------
If($DnsDomainName){
Get-WFALogger -Info -Message "Setting up DNS for vFiler ""$VfilerName"" on controller ""$Array"""
Try{
#Set-NaVfilerDns -Name $VfilerName -DnsDomain $DnsDomainName -DnsServerAddresses $DnsServers -ErrorAction Stop
[String]$command = "vfiler run $VfilerName setup -d $DnsDomainName`:$DnsServers"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
Throw "Failed to set the DNS domain for vFiler ""$VfilerName"" on controller ""$Array"""
}
}
#'------------------------------------------------------------------------------
#'Setup NIS for the vFiler
#'------------------------------------------------------------------------------
If($NISDomainName){
Get-WFALogger -Info -Message "Setting up NIS for vFiler ""$VfilerName"" on controller ""$Array"""
Try{
#Set-NaVfilerNis -Name $VfilerName -NisDomain $NISDomainName -NisServerAddresses $NisServers -ErrorAction Stop
[String]$command = "vfiler run $VfilerName setup -n $NISDomainName`:$NisServers"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
Throw "Failed to set the NIS domain for vFiler ""$VfilerName"" on controller ""$Array"""
}
}
#'------------------------------------------------------------------------------
#'Setup administrative host for the vFiler
#'------------------------------------------------------------------------------
If($AdminHostIPAddress){
Get-WFALogger -Info -Message "Setting vfiler AdminHost ""$AdminHostName"" IP Address ""$AdminHostIpAddress"""
Try{
#Set-NaVfilerAdminHost -Name $VfilerName -Hostname $AdminHostName -Address $AdminHostIpAddress -ErrorAction Stop
[String]$command = "vfiler run $VfilerName setup -a $AdminHostName`:$AdminHostIpAddress"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
Throw "Failed to set the administrative host for vFiler ""$VfilerName"" on controller ""$Array"""
}
}
#'------------------------------------------------------------------------------
#'Setup the vfiler root password
#'------------------------------------------------------------------------------
$credentials = Get-WfaCredentials -Host $ipAddresses[0]
If($credentials){
[String]$username = $credentials.GetNetworkCredential().username
[String]$password = $credentials.GetNetworkCredential().password
Get-WFALogger -Info -Message "Setting up vfiler password for user ""$userName"" on vfiler ""$VfilerName"" on controller ""$Array"""
#Set-NaVfilerPassword -Name $VfilerName -Credential $cred -ErrorAction Stop
[String]$command = "vfiler run $VfilerName setup -p $password"
#'---------------------------------------------------------------------------
#'Mask the password so it does not get written to the log in clear text.
#'---------------------------------------------------------------------------
[String]$passwordMask = ""
For($i = 0; $i -le $password.Length; $i++){
[String]$passwordMask += "*"
}
[String]$passwordMask = $passwordMask.SubString(0, ($passwordMask.Length -1))
[String]$passwordCommand = "vfiler run $VfilerName setup -p $passwordMask"
#'---------------------------------------------------------------------------
Try{
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $passwordCommand"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command: $passwordCommand. Error`: " + $_.Exception.Message)
Throw "Failed to set password for user ""$username"" on vFiler ""$VfilerName"" on controller ""$Array"""
}
}Else{
Get-WFALogger -Info -Message $("The VFiler Credentials were not found for IP address " + $ipAddresses[0])
}
#'------------------------------------------------------------------------------
#'Set the vfiler disallowed protocols.
#'------------------------------------------------------------------------------
If($NfsSupported -And $CifsSupported -And $IscsiSupported -And $HttpSupported -And $FtpSupported -And $RshSupported -And $SshSupported){
#'Since it's a new vfiler all protocols are enabled by default.
}Else{
[Array]$disAllowProtocols = @()
If(!$NfsSupported){
[Array]$disAllowProtocols += "proto=nfs"
}
If(!$CifsSupported){
[Array]$disAllowProtocols += "proto=cifs"
}
If(!$IscsiSupported){
[Array]$disAllowProtocols += "proto=iscsi"
}
If(!$HttpSupported){
[Array]$disAllowProtocols += "proto=http"
}
If(!$FtpSupported){
[Array]$disAllowProtocols += "proto=ftp"
}
If(!$RshSupported){
[Array]$disAllowProtocols += "proto=rsh"
}
If(!$SshSupported){
[Array]$disAllowProtocols += "proto=ssh"
}
Get-WFALogger -Info -message $("Disabling protocols on " + $VfilerName)
Try{
#Set-NaVfilerProtocol -Name $VFilerName -DisallowProtocols $disAllowProtocols -ErrorAction Stop
[String]$command = "vfiler disallow $VfilerName $disAllowProtocols"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error`: " + $_.Exception.Message)
Throw "Failed disallowing protocols for vFiler ""$VfilerName"" on controller ""$Array"""
}
}
#'------------------------------------------------------------------------------
#'Update the ifconfig commands in the /etc/rc file.
#'------------------------------------------------------------------------------
Get-WFALogger -Info -Message "Appending ifconfig commands to the ""$filePath"" file on controller ""$Array"""
ForEach($sourceEtcLine In $sourceEtcLines){
Try{
Write-NaFile -Path $filePath -Data $sourceEtcLine -AppendLine -ErrorAction Stop
Get-WFALogger -Info -Message "Added line to ""$filePath"" on controller ""$Array"". Line`: $sourceEtcLine"
}Catch{
Get-WFALogger -Error -Message $("Failed adding line to ""$filePath"" on controller ""$Array"". Line`: $sourceEtcLine. Error " + $_.Exception.Message)
Throw "Failed adding line to ""$filePath"" on controller ""$Array"". Line`: $sourceEtcLine"
}
}
#'------------------------------------------------------------------------------
#'Update the vfiler route commands in the /etc/rc file.
#'------------------------------------------------------------------------------
Get-WFALogger -Info -Message "Appending route commands to the ""$filePath"" file on controller ""$Array"""
ForEach($vFilerRoute In $vFilerRoutes){
Try{
Write-NaFile -Path $filePath -Data $vFilerRoute -AppendLine -ErrorAction Stop
Get-WFALogger -Info -Message "Added line to ""$filePath"" on controller ""$Array"". Line`: $vFilerRoute"""
}Catch{
Get-WFALogger -Error -Message $("Failed adding line to ""$filePath"" on controller ""$Array"". Line`: $vFilerRoute. Error " + $_.Exception.Message)
Throw "Failed adding line to ""$filePath"" on controller ""$Array"". Line`: $vFilerRoute"""
}
}
#'------------------------------------------------------------------------------
#'Connect to the partner controller if specified.
#'------------------------------------------------------------------------------
If($Partner){
Connect-WfaController -Array $Partner
#'---------------------------------------------------------------------------
Get-WFALogger -Info -Message "Appending ifconfig commands to the ""$filePath"" file on controller ""$partnerName"""
#'---------------------------------------------------------------------------
#'Update the ifconfig commands in the /etc/rc file on the partner.
#'---------------------------------------------------------------------------
ForEach($parnterEtcLine In $parnterEtcLines){
Try{
Write-NaFile -Path $filePath -Data $parnterEtcLine -AppendLine -ErrorAction Stop
Get-WFALogger -Info -Message "Added line to ""$filePath"" on controller ""$Partner"". Line`: $parnterEtcLine"
}Catch{
Get-WFALogger -Error -Message $("Failed adding line to ""$filePath"" on controller ""$Partner"". Line`: $parnterEtcLine. Error " + $_.Exception.Message)
Throw "Failed adding line to ""$filePath"" on controller ""$partnerName"". Line`: $parnterEtcLine"
}
}
}
#'------------------------------------------------------------------------------
Create VLAN using SSH:
param(
[Parameter(Mandatory=$True, HelpMessage="Array name or IP address")]
[String]$Array,
[Parameter(Mandatory=$True, HelpMessage="Interface to add a VLAN to")]
[String]$Interface,
[Parameter(Mandatory=$True, HelpMessage="Vlan ID")]
[ValidateRange(1,4094)]
[Int]$VlanID
)
#'------------------------------------------------------------------------------
# Connect to controller
#'------------------------------------------------------------------------------
Connect-WfaController -Array $Array
Get-WFALogger -Info -Message "Connected to controller ""$Array"""
#'------------------------------------------------------------------------------
#'Parameter setup
#'------------------------------------------------------------------------------
[Bool]$foundVlan = $False
[Bool]$foundIpspace = $False
[String]$newInterface = $Interface + "-" + $VlanID
[String]$filePath = "/vol/vol0/etc/rc"
#'------------------------------------------------------------------------------
#'Enumerate the VLANs
#'------------------------------------------------------------------------------
Try{
$vlans = Get-NaNetVlan -ErrorAction Stop
Get-WFALogger -Info -Message "Enumerated VLANs on controller ""$Array"""
}Catch{
Get-WFALogger -Error -Message $("Failed enumerating VLANs on controller ""$Array"". Error " + $_.Exception.Message)
Throw "Failed enumerating VLANs on controller ""$Array"""
}
#'------------------------------------------------------------------------------
#'Check if the VLAN exists.
#'------------------------------------------------------------------------------
ForEach($vlan in $vlans){
If($VlanID -eq $vlan.tag -And $Interface -eq $vlan.parentinterface){
Get-WFALogger -Info -Message "The VLAN ""$vlan"" already exists"
[Bool]$foundVlan = $True
}
}
#'------------------------------------------------------------------------------
#'Ensure the VLAN is created if it doesn't exist.
#'------------------------------------------------------------------------------
If(-Not($foundVlan)){
Get-WFALogger -Info -Message "Creating VLAN on Network Interface"
Try{
#Add-NaNetVlan -Interface $Interface -Vlans $VlanID -ErrorAction Stop
[String]$command = "vlan add $Interface $VlanID"
Invoke-NaSsh -Command $command -ErrorAction Stop
Get-WFALogger -Info -Message "Executed Command`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed executing command`: $command. Error " + $_.Exception.Message)
Throw "Failed creating VLAN ""$VlanID"" for interface ""$Interface"" on controller ""$Array"""
}
}
#'------------------------------------------------------------------------------
#'Update the VLAN create command in the /etc/rc file.
#'------------------------------------------------------------------------------
If(-Not($foundVlan)){
Get-WFALogger -Info -Message "Appending vlan create command to the ""$filePath"" file on controller ""$Array"""
Try{
Write-NaFile -Path $filePath -Data $command -AppendLine -ErrorAction Stop
Get-WFALogger -Info -Message "Added line to ""$filePath"" on controller ""$Array"". Line`: $command"
}Catch{
Get-WFALogger -Error -Message $("Failed adding line to ""$filePath"" on controller ""$Array"". Line`: $command. Error " + $_.Exception.Message)
Throw "Failed adding line to ""$filePath"" on controller ""$Array"". Line`: $command"
}
}
#'------------------------------------------------------------------------------
Hope that helps
/matt
If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.