Active IQ Unified Manager Discussions

Failed to register member variable 'LUNMember2' for row #1

Richy_TH
10,515 Views

Dear All

i am trying to map existing luns into the igroup by using row repetition function.

used below SQL Finder command:

 

SELECT
lun.id,
lun.serial_number,
lun.array_id,
lun.vfiler_id,
lun.volume_id,
qtree.name AS 'qtree',
lun.qtree_id,
lun.size_mb,
lun.mapped,
lun.space_reserved,
lun.name,
lun.full_path,
volume.name AS 'volume.name',
array.ip AS 'volume.array.ip'
FROM
storage.lun AS lun,
storage.array AS array,
storage.volume AS volume,
Storage.qtree
WHERE
lun.array_id = array.id
AND qtree.id = lun.qtree_id
AND qtree.volume_id = volume.id
AND lun.name LIKE 'EEC_%'
AND lun.volume_id = volume.id
AND volume.name LIKE 'EEC_%'
AND array.ip = '192.168.100.100'

 

it was successfully to query so the result screen listed below:

 

Screen Shot 2558-01-16 at 1.21.41 AM.pngScreen Shot 2558-01-16 at 1.28.32 AM.png

 

Screen Shot 2558-01-16 at 1.28.39 AM.png

 

so i have applied each one of the component to command parameter  as show below:

 

Screen Shot 2558-01-16 at 1.28.20 AM.png

 

 

Screen Shot 2558-01-16 at 1.28.26 AM.png

 

 

 

 

 

after preview workflow the below error will show.

 

Screen Shot 2558-01-16 at 1.31.05 AM.png

 

 

 

anyone have any idea why this error was occured.

thank you in advanced

 

Richy

1 ACCEPTED SOLUTION

ktim
10,389 Views

You should be basing your filter query on a standard LUN filter rather than changing the values to include qtree name, lun name, etc.

 

I would expect your query should be more like (parameterizing rather than putting in static query info):

SELECT
lun.id,
lun.serial_number,
lun.array_id,
lun.vfiler_id,
lun.volume_id,
lun.qtree_id,
lun.size_mb,
lun.mapped,
lun.space_reserved,
lun.name,
lun.full_path,
volume.name AS 'volume.name',
array.ip AS 'volume.array.ip'
FROM
storage.lun AS lun,
storage.array AS array,
storage.volume AS volume
WHERE
lun.array_id = array.id
AND lun.full_path LIKE '${lun_prefix}%'
AND lun.volume_id = volume.id
AND volume.name LIKE '${vol_prefix}%'
AND array.ip = '${array_ip}'

 

Regards,

Tim

 

View solution in original post

12 REPLIES 12

trentino123
10,442 Views

Check out the finder variable input, could you attach a screenshot of the row repetition details ? ( the parameters are what you used to fill out the command form and the variable should be the finder output or a $variable )

Richy_TH
10,439 Views

row repetition detail screen shot.

 

Screen Shot 2558-01-16 at 1.56.33 AM.png

trentino123
10,435 Views

at the lower left picture, enter the parameter and the value ( is empty ) , then use the parameter in the command.

Richy_TH
10,405 Views

do i need to  do that since i have completed parameter input in the finder already.

 

AND lun.name LIKE 'EEC_%'
AND lun.volume_id = volume.id
AND volume.name LIKE 'EEC_%'
AND array.ip = '192.168.100.100'

 

Richy

trentino123
10,359 Views

Check the returned attributes on your EEC finder ( you move them from available to selected )

 

In the row repetion details window ( edit ) , below where the finder parameters ( where the parameters and value table appears and is empty, so the commands are not receiving the variables ), there is a variables table where you could also add ( try to make the window bigger so you can see it ), the finder populates that from the returned attributes but is seems to be empty.

 

In your case, the finder should have populated the variables ( check the returned attributes on your EEC finder ).

 

Hope that helps.

Richy_TH
10,334 Views

Hi 

i have check the return attribute it was selected.

 

Screen Shot 2558-01-17 at 3.39.16 AM.png

 

Screen Shot 2558-01-17 at 3.50.52 AM.png

 

no variable i have filled in

 

are there any point for me to check ?

 

Thank you 

 

Richy

shailaja
10,353 Views

Hi,

 

Can you try out the following two suggestions.

 

1. Check the wfa.log file to see the exceptions and you could attach here

 

2. Could you also try making this change and preview the workflow and let us know whether it helps.

 

In the parameters provided to "Map and Online" command, can you change the value given to

Volume tab -> 'name' attribute to "LunMember2.volume.name from "LunMember2.volume"

Array tab -> 'ip' attribute to "LunMember2.array.ip" from "LunMember2.array"

Qtree tab -> 'name' attribute to 'LunMember2.qtree.name" from "LunMember2.qtree"

 

Thanks,

Shailaja

Richy_TH
10,332 Views

Hi Shailaja

i have changed as you recommence but the out put still the same 

 

 

 

 

 Screen Shot 2558-01-17 at 3.41.13 AM.png

 

Screen Shot 2558-01-17 at 3.41.19 AM.png

Screen Shot 2558-01-17 at 3.41.25 AM.png

 

Screen Shot 2558-01-17 at 3.41.29 AM.png

thank you for your reply

 

Richy

 

 

 

 

shailaja
9,092 Views

Unfortunately, I did not find useful information in the log file that can help debugging this.

 

Is it possible to provide

- Your workflow as a dar file

- Or backup of your system

 

You could attach it or send it directly.

 

Thanks,

Shailaja

ktim
10,390 Views

You should be basing your filter query on a standard LUN filter rather than changing the values to include qtree name, lun name, etc.

 

I would expect your query should be more like (parameterizing rather than putting in static query info):

SELECT
lun.id,
lun.serial_number,
lun.array_id,
lun.vfiler_id,
lun.volume_id,
lun.qtree_id,
lun.size_mb,
lun.mapped,
lun.space_reserved,
lun.name,
lun.full_path,
volume.name AS 'volume.name',
array.ip AS 'volume.array.ip'
FROM
storage.lun AS lun,
storage.array AS array,
storage.volume AS volume
WHERE
lun.array_id = array.id
AND lun.full_path LIKE '${lun_prefix}%'
AND lun.volume_id = volume.id
AND volume.name LIKE '${vol_prefix}%'
AND array.ip = '${array_ip}'

 

Regards,

Tim

 

Richy_TH
9,064 Views

Dear Tim

thank you for reply.

 

with your method it's works !!

i also  modify command to force them to map and online the luns from clone volume.

the command show as below.

 

Param (
[parameter(Mandatory=$true, HelpMessage="Array name or IP address")]
[string]$Array,

[parameter(Mandatory=$true, HelpMessage="Volume name")]
[string]$VolumeName,

[parameter(Mandatory=$true, HelpMessage="LUN name")]
[string]$LunName,

[parameter(Mandatory=$true, HelpMessage="List of initiator group names to map to the given LUN. The list should be comma separated in case more than one group is required")]
[array]$IGroups,

[parameter(Mandatory=$false, HelpMessage="Qtree name")]
[string]$QtreeName,

[parameter(Mandatory=$false, HelpMessage="LUN ID")]
[int]$LunID,

[parameter(Mandatory=$false, HelpMessage="vFiler name")]
[string]$VFilerName
)

# connect to controller
Connect-WfaController -Array $Array -VFiler $VFilerName

if($QtreeName)
{
$LunPath = "/vol/" + "clone_" + $VolumeName + "/" + $QtreeName + "/" + $LunName
}
else
{
$LunPath = "/vol/" +"clone_" + $VolumeName + "/" + $LunName
}


foreach ($IGroup in $IGroups)
{
if($LunID)
{
Get-WFALogger -Info -message $("Mapping LUN " + $LunPath + " using LUN ID " + $LunID + " to Igroup => " + $IGroup)
Add-NaLunMap -Path $LunPath -InitiatorGroup $IGroup -ID $LunID
}
else
{
Get-WFALogger -Info -message $("Mapping LUN " + $LunPath + " using next available LUN ID to Igroup => " + $IGroup)
Add-NaLunMap -Path $LunPath -InitiatorGroup $IGroup
}
}

Get-WFALogger -Info -message $("Changing volume statue to onine, Lun name: " + $LunPath)
Set-NaLun -Path $LunPath -Online

 

 

please feel free to comment or suggest for my solution.

 

Brs,

Richy

 

ktim
9,046 Views

That looks like it should work. I would probably make the clone volume name a parameter rather than hardcoding the clone prefix.

 

Regards,

Tim

Public