Subscribe

Getting API errors with a couple of cmdlets

I'm having trouble mapping and unmapping luns with PowerShell. When I try I get an API error. Is there a minimum version of DataONTAP that is required for these cmdlets to work with? Right now I'm on 7.3.1.1 with plans to go to 7.3.3.

Re: Getting API errors with a couple of cmdlets

Hello, lallin.  The lun-map and lun-unmap APIs have been around a long time, so that shouldn't be a problem.  FWIW, I have done most of my Toolkit development / testing on 7.3.3.

If you'll send along the cmdlet invocation snippet and error details, we can look more closely.

Clinton

Re: Getting API errors with a couple of cmdlets

Just for kicks, I upgraded my mirror target filer to 7.3.3 and tried this again and it didn't work. Below is the command and the error that I'm getting. I'm connected to the filer using RPC, and can execute other commands against the filer except the add and remove nalunmap commands. I can run a get-nalunmap command just fine, just can't manipulate the mapping.

PS C:\Windows\system32> Add-naLunMap -Path /vol/Chatesthv/Chatesthv.lun -InitiatorGroup viaRPC.iqn.1991-05.com.microsoft
:mmatlhyperv2.law.millermartin.com -Controller Filer6
Add-NaLunMap : API invoke failed.
At line:1 char:13
+ Add-naLunMap <<<<  -Path /vol/Chatesthv/Chatesthv.lun -InitiatorGroup viaRPC.iqn.1991-05.com.microsoft:mmatlhyperv2.l
aw.millermartin.com -Controller Filer6
    + CategoryInfo          : InvalidOperation: (NetApp.Ontapi.Filer.NaController:NaController) [Add-NaLunMap], NaExce
   ption
    + FullyQualifiedErrorId : ApiException,DataONTAP.PowerShell.SDK.Cmdlets.Lun.AddNaLunMap

Add-NaLunMap : API invoke failed.
At line:1 char:13
+ Add-naLunMap <<<<  -Path /vol/Chatesthv/Chatesthv.lun -InitiatorGroup viaRPC.iqn.1991-05.com.microsoft:mmatlhyperv2.l
aw.millermartin.com -Controller Filer6
    + CategoryInfo          : InvalidOperation: (NetApp.Ontapi.Filer.NaController:NaController) [Add-NaLunMap], NaExce
   ption
    + FullyQualifiedErrorId : LunListInfoFailed,DataONTAP.PowerShell.SDK.Cmdlets.Lun.AddNaLunMap

-Luther

Re: Getting API errors with a couple of cmdlets

Hi, Luther.

Add-naLunMap -Path /vol/Chatesthv/Chatesthv.lun -InitiatorGroup  viaRPC.iqn.1991-05.com.microsoft:mmatlhyperv2.law.millermartin.com -Controller Filer6

If you're using RPC, then you shouldn't need to use the -Controller switch when connected to a single controller.  If, however, you are connected to multiple controllers and wish to direct commands to different ones, try something like this:

$Filer6 = Connect-NaController Filer6

Add-NaLunMap ... -Controller $Filer6

(Don't forget the $ sign on the controller variable).

Clinton

Re: Getting API errors with a couple of cmdlets

Well, what do you know? It worked.

Question though: What if I need to address multiple filers in the same script? Can I use RPC and then call out the filer name? Or, do I need to not use RPC if I'm going to do this?

Re: Getting API errors with a couple of cmdlets

Yes, you may connect (via RPC or HTTP) to any number of controllers in a script, saving the result of each connection in a variable.  Then just pass the variable as the argument of -Controller in any of the Toolkit's cmdlets.  It's common to operate with multiple systems when dealing with clusters, SnapMirror, SnapVault, etc.  Some of the example scripts posted here by others show this.

Clinton

Re: Getting API errors with a couple of cmdlets

Thanks Clinton. This has been very helpful. I'm sure I'll be back.