Subscribe
Accepted Solution

Get Mapped LUNs with ONTAPI

[ Edited ]

Hello everybody,

I want to discover all mapped LUNs (-> Hosts mapping) in 7-mode using ONTAPI.

By calling <lun-map-list-info>,  the <path> property must be defined .

  <lun-map-list-info>

   <path></path>

  </lun-map-list-info>

Is there another way to discover the whole mapping without specifying the LUN path for each NetApp query.

 

Thanks in advance for your feedback.

 

Client library: manageontap-5.1

 

Nassim

 

Re: Get Mapped LUNs with ONTAPI

Hi Nassim,

If you want only mapped attrib you can use lun-list-info and  get the mapped parameter of lun-info.

François


Re: Get Mapped LUNs with ONTAPI

Hi Francois,

Thanks for your response, I have already used that in lun-list-info responses, and actually, I'm using it..

But regarding the initiators I can't retrieve them with lun-list-info, So I have to execute several queries for each LUN using <lun-map-list-info> --> initiator-groups, it a little bit heavy .

It will be really good if we can list all the initiators with only one request.

Do you have any ideas for this.

Thanks in advance.

Nassim

Re: Get Mapped LUNs with ONTAPI

Hello Nassim,

To retrieve lunid of mapped LUNs in a project, I used two loops of  igroup-list-info and lun-initiator-list-map-info.

lun-list-info and lun-map-list-info work as well but is slow because you have to run lun-map-list-info for each LUNs in loop.

Here an example in powershell

      $naigroups = Get-NaIgroup

                  ForEach ($naigroup in $naigroups)

            {

              if (!$naigroup.name.StartsWith("via"))

               {

                 #Just use the first initiator in igroup.

                $nawwn = $naigroup.Initiators[0]

                if ($nawwn)

                    {

                              $naluns = Get-NaLunMapByInitiator -Initiator $nawwn

                        Write-Host "Get information for "  $naigroup.Name " with " $naluns.count " lun(s)"

                        $luncount = 0

                              ForEach ($lun in $naluns)

                        {

                           $luncount+=1

                                       $lunfilerpath = $lun.path

                                       $lunfilerid = $lun.LunId

                                       $lunfilerig = $naigroup.Name

                                       [string]$filername= $filer.Value

                                       $newlun= Newlunfiler $lunfilerpath  $lunfilerid $lunfilerig $filername

                           $global:mylunsfiler+=$newlun

                          # Debug

                          # Write-Host "Retrieve LUN information --> " $luncount")" $lunfilerpath":"$lunfilerid

 

                              }

                    }

               }

            }

Re: Get Mapped LUNs with ONTAPI

Hi François,

Currently I'm using the same logic in Java, two loops and several queries, but it's really slower when we have a million hosts.

Regards,

Nassim