When using WFA 3.0 and ONTAP 8.3 I ran into an issue creating a data LIF with the standard WFA verified command to create a cDOT logical interface. I was able to workaround the issue with an adjusted WFA command and wanted to post the information here iin case anyone else has this issue.
In this case I was attempting to use an un-used IP address from a previously defined subnet and was presented with the following error (IP address redacted but within the named subnet's /24):
11:03:32.549 ERROR [Create logical interface] The specified address "XXX.XXX.XXX.XXX" is within the address range of subnet "ontap_subnet". Specify "-force-subnet-association" to acquire the address from the named subnet and assign the subnet to the LIF.
11:03:34.421 ERROR [Create logical interface] Command failed for Workflow 'Create and configure NAS Storage Virtual Machine' with error : The specified address "XXX.XXX.XXX.XXX" is within the address range of subnet "ontap_subnet". Specify "-force-subnet-association" to acquire the address from the named subnet and assign the subnet to the LIF.
To get around this I cloned the command 'Create logical interface' and changed a portion of the code to add on an additional argument if the system being worked on is ONTAP 8.3. Some of this code was already present for the routing group(pre-8.3) and routes(8.3) portion and was simply placed higher in the body.
$OntapVersionInfo = Get-NcSystemVersionInfo
$OntapVersionString = $OntapVersionInfo.VersionTuple.ToString()
$OntapVersionComparedTo830 = Compare-OntapVersions $OntapVersionString "8.3.0";
# WFA version 3.0.0, as of 4/6/2015, won't let you create a LIF on an 8.3 system using an address in a previously defined subnet
# This does a quick check of ONTAP version at 8.3 and add's the argument of '-force-subnet-association' to properly assign the address
# from the subnet & create the LIF.
if ($OntapVersionComparedTo830 -lt 0)
{
Get-WFALogger -Info -message $("Creating logical interface '" + $LogicalInterfaceName + "' on Storage Virtual Machine '"+ $VserverName + "' using command : " + $expression)
Invoke-Expression $expression -ErrorAction stop
}
else
{
$expression = $expression + " -ForceSubnetAssociation "
Get-WFALogger -Info -message $("Creating logical interface '" + $LogicalInterfaceName + "' on Storage Virtual Machine '"+ $VserverName + "' using command : " + $expression)
Invoke-Expression $expression -ErrorAction stop
}
Attached is the full exported command from WFA in .dar format.
If anyone else has a better suggestion to this issue, whether its better coding (the code adjustment was done on the fly) or a different workaround in the verified WFA commands, please let me know. If there are any potential issues with this adjustment that information would also be helpful.