Ah.. Ok, i'm getting a frustrated as i've looked at your examples, but i'm unable to replicate the initiators...
Here is the code extracted and modified a little.
$sourcecontroller = Connect-NaController source
$dstcontroller = Connect-NaController destination
$igroups = Get-NaIgroup -Controller $sourcecontroller
## Loop through existing $igroup info
foreach ($Igroup in $igroups) {
if ($Igroup.name -eq "testigroup")
{
#WRite-out command for testing igroup creation"
Write-Host "`nCreating Igroup:" $Igroup.name "On controller" $dstcontroller
Write-Host "--------------------------------------------------------"
New-NaIgroup -Name $Igroup.Name -Type $Igroup.type -protocol $Igroup.protocol -controller $dstcontroller -confirm:$false
## write-out command for testing adding initiators"
$Initiators = $iGroup.Initiators | Select-Object -ExpandProperty 'InitiatorName'
Add-naigroupinitiator -igroup $igroup.name -initiator $Initiators -Controller $dstcontroller -confirm:$false -whatif
Write-Host "`n"
}
}
That will create an igroup without issue but the Add-naigroupinitiator spits up errors at me.
Add-NaIgroupInitiator : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'Initiator'. Specified method is not supported.
At C:\Powershell\sg colo\igroupcreationAnode.ps1:32 char:55
+ Add-naigroupinitiator -igroup $igroup.name -initiator <<<< $Initiators -Controller $dstcontroller -confirm:$false -whatif
+ CategoryInfo : InvalidArgument: (:) [Add-NaIgroupInitiator], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,DataONTAP.PowerShell.SDK.Cmdlets.Igroup.AddNaIgroupInitiator
now if i manually just enter one initiator it works.. but it doesn't handle the mutliple initators well. Also in your code example, I'm not seeing where you add any initiators
Your posted code has this.
# Add any missing initiators from the source
$Initiators = $I.Initiators |
Select-Object -ExpandProperty 'InitiatorName'
$IGroup.Initiators |
Where-Object { $Initiators -notContains $_.InitiatorName } |
Add-NaIgroupInitiator -Igroup $I.InitiatorGroupName ` -Controller $DestinationController
Did I miss something? Can add-nainitiator not handle multiple initiators. like
add-naigroupinitiator -igroup testigroup -initiator 50:01:43:80:05:67:55:4e,50:01:43:80:05:67:5b:0c -Controller dstcontroller
what gives here?