Microsoft Virtualization Discussions
Microsoft Virtualization Discussions
Hi,
So I want to combine the output from the following two cmdlets:
Get-NcLunMap | Select-Object Vserver,Path,InitiatorGroup,LunId
Get-NcIgroup | Select-Object InitiatorGroupAluaEnabled,InitiatorGroupOsType,InitiatorGroupType,Initiators
I've been looking at the Don Jones video, https://www.youtube.com/watch?v=TLUzPvA0HUo&t=42s, and I think I need to create a custom object. The cmdlets in the video return a single item, e.g. for a particular computer the Win32_OperatingSystem, however Get-NcLun/Igroup returns all of the LUNs/Igroups from a cluster. I can see how the Don Jones example would work for a single item but I don't understand how to upscale that when there are multiple objects returned.
Also as an aside, is there any way I can get an online/offline status for initiators into my completed table?
As you can probably tell, I'm a novice, any thoughts please?
Thanks
Solved! See The Solution
Hi:
Check the attached document. It includes example code.
Hope this help!
OntapLuninfo.ps1
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                              
------- ------ -----------            ----------- -------------- ------------------ --------                              
SAN          0 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE/SERVER_DATASTORE
Initiator                                        Online
---------                                        ------
iqn.1998-01.com.vmware:comp-01a-62411b9cdd7438fb True  
iqn.1998-01.com.vmware:comp-02a-92411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-03a-42411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-04a-52411b9cdd7438fb False 
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                                         
------- ------ -----------            ----------- -------------- ------------------ --------                                         
SAN          2 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE_VVOL_1/vvolPE-1614476525287
Initiator                                        Online
---------                                        ------
iqn.1998-01.com.vmware:comp-01a-62411b9cdd7438fb True  
iqn.1998-01.com.vmware:comp-02a-92411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-03a-42411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-04a-52411b9cdd7438fb False 
So after a bit more research I came across this approach, however it still doesn't get me what I want:
function Get-CgiNcLunMapInfo ()
{
    
    $lunmapinfo = Get-NcLunMap
    $igroupinfo = Get-NcIgroup
    # Create custom object for $lunmapinfo
    # Empty array
    $lunmapinfoobjs = @()
    # Loop to set up a single custom object
    foreach ($lun in $lunmapinfo) {
    
        $props = @{ Vserver = $lun.Vserver
                    Path = $lun.Path
                    LunId = $lun.LunId
                    Igroup = $lun.InitiatorGroup
                    }
 
        $lunmapinfoobj = New-Object -TypeName PSObject -Property $props
 
        # Append to array
        $lunmapinfoobjs += $lunmapinfoobj
 
    }
    # Create custom object for $igroupinfo
    # Empty array
    $igroupinfoobjs = @()
    # Loop to set up a single custom object
    foreach ($igroup in $igroupinfo) {
    
        $props = @{ Igroup = $igroup.Name
                    Alua = $igroup.InitiatorGroupAluaEnabled
                    OsType = $igroup.InitiatorGroupOsType
                    GroupType = $igroup.InitiatorGroupType
                    Initiators = $igroup.Initiators 
                    }
        $igroupinfoobj = New-Object -TypeName PSObject -Property $props
        # Append to array
        $igroupinfoobjs += $igroupinfoobj
    }
    $props = @{ LunInfo = $lunmapinfoobjs
                IgroupInfo = $igroupinfoobjs
                }
    $obj = New-Object -TypeName PSObject -Property $props
    Write-Output $obj
}
The above script pushes the Get-NcLunMap objects/properties under the heading 'LunInfo' and the Get-NcIgroup objects/properties under the heading 'IgroupInfo', whereas I want to combine the properties into a single table, e.g.
Path,LunId,Igroup,Vserver,Alua,Igroup,OsType,GroupType,Initiators
Thanks
Hi:
Check the attached document. It includes example code.
Hope this help!
OntapLuninfo.ps1
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                              
------- ------ -----------            ----------- -------------- ------------------ --------                              
SAN          0 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE/SERVER_DATASTORE
Initiator                                        Online
---------                                        ------
iqn.1998-01.com.vmware:comp-01a-62411b9cdd7438fb True  
iqn.1998-01.com.vmware:comp-02a-92411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-03a-42411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-04a-52411b9cdd7438fb False 
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                                         
------- ------ -----------            ----------- -------------- ------------------ --------                                         
SAN          2 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE_VVOL_1/vvolPE-1614476525287
Initiator                                        Online
---------                                        ------
iqn.1998-01.com.vmware:comp-01a-62411b9cdd7438fb True  
iqn.1998-01.com.vmware:comp-02a-92411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-03a-42411b9cdd7438fb False 
iqn.1998-01.com.vmware:comp-04a-52411b9cdd7438fb False 
That's brilliant - thank you
I've played around with the script to try and get a single table as opposed to individual tables per LUN path, something like this:
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                                         
------- ------ -----------            ----------- -------------- ------------------ --------                                         
SAN          2 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE_VVOL_1/vvolPE-1614476525287
SAN          0 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE/SERVER_DATASTORE
SAN          0 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE/SERVER_DATASTORE2
Can the script be tweaked to achieve this?
Thanks again
Thank again for your help
I thought that, but the output looks like this instead of consolidated under one heading:
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                                         
------- ------ -----------            ----------- -------------- ------------------ --------                                         
SAN          2 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE_VVOL_1/vvolPE-1614476525287
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                                         
------- ------ -----------            ----------- -------------- ------------------ -------- 
SAN          0 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE/SERVER_DATASTORE
vServer Lun ID IGROUP Name            IGROUP TYPE IGROUP TYPE OS IGROUP ALUA ENABLE Lun Path                                         
------- ------ -----------            ----------- -------------- ------------------ -------- 
SAN          0 comp-01a               mixed       vmware                       True /vol/SERVER_DATASTORE/SERVER_DATASTORE2
