Software Development Kit (SDK) and API Discussions

Get Mapped LUNs with ONTAPI

NASSIM_SEN
4,460 Views

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

 

1 ACCEPTED SOLUTION

francoisbnc
4,460 Views

Hi Nassim,

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

François


View solution in original post

4 REPLIES 4

francoisbnc
4,461 Views

Hi Nassim,

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

François


NASSIM_SEN
4,460 Views

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

francoisbnc
4,460 Views

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

 

                              }

                    }

               }

            }

NASSIM_SEN
4,460 Views

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

Public