Active IQ Unified Manager Discussions

Workflow failing

Lukas
6,035 Views

Hello,

 

I created a workflow for volume creation, but the execution of it behaves differently and strange.

 

Yesterday, I executed the workflow with all the params and that's how it looks like:

 

wfa.png

 

Today my colleague tried to execute the same workflow, it failed and see the details:

 

wfa2.png

 

It happend several times already. It looks like when she executes the workflow, it does not pass the params and values to the "ISCSI - Map LUN" command. It did in my case.

 

I'm 100 % sure nobody modified the workflow.

 

Have you ever seen this? May it be somehow related to reservations?

 

Thanks for help.

Lukas

 

 

1 ACCEPTED SOLUTION

sinhaa
5,601 Views

Lukas,

     As I said before, you need to understand the building blocks of a workflow and how it works. I'll try to help you here in as simple terms as I can.

 

 

@ But I'm still thinking, I know the Map Lun command wanted IP, but where am I supposed to find which command provides IP?

----

Its not  any command that provides the IP, its the found resource for the command which can do it. And its not just the volume1 resource for the Create Volume command which can do it. You could have used lun1.array.ip from command Create Lun and it would work. Or igroup1.array.ip or nfs_export_datavol.array.ip or even lun1.volume.aggregate.array.ip

 

So how to decide which one would? For that you need to look at the dictionary objects and understand what they are. For example the dictionary item volume for scheme storage. A dictionary items can be seen as a table in a DB schema and  every simgle row in WFA dictionary is equivalent to a column in a DB table. So if a volume resouce is found, it means a row in DB is found, I can now get any column value for this volume row.

 

A volume row also has column array which is referance object to an array dictionary i.e. to an array table. You can identify them easily, they have an (R) in front of them when you look at them in Resource selection.

 

 

 

Vol_dictionary1.png

 

 

 

Vol_dictionary2.png

 

 

So the found volume row, gets me the array row and from array row I can get the ip.

 

Similarly from the found igroup, I get get array and from that the ip. or from lun I get volume, from volume I get aggrgate, from aggregate I can get array and then from array I can get ip. So out of all the possibilities, you decide which one to pick.

 

 

Obviously I want user to enter either IP or hostname and WF should take care of it.

----

WFA can take care of anything, provided you tell it to do so. Its a very intelligent and also highy flexible framework. And thats why it doesn't assume anything. It will do just as you direct it. There is nothing obvious here.

 

 

sinhaa

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

View solution in original post

9 REPLIES 9

sinhaa
6,009 Views

Lukas,

  1.    You need to provide your workflow in .dar format. Export it and add it here. In WFA looking at images is generally not enough to give you an accurate answer. 
  2.   For your case, it looks like the filter has not found any results for the "Filter LUNs by key". So first test this filter with the same set of inputs as you gave in your workflow. I think the result will be empty. So unless you have the resources to match your requirements, this is expected behaviour.

 

sinhaa

 

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

Lukas
5,871 Views

Hi,

 

thanks for hints. I did a few more tests and it looks like the workflow does not take hostnames, only IPs. If I use hostname, it fails, if IP it proceeds.

 

Strange. May be something in OCUM as well.

 

I'll continue troubleshooting.

 

Thank you anyway.

Lukas

sinhaa
5,846 Views

Hmm.. there is nothing strange about it. Its only the expected bahviour depending on the filter query you have in your workflow. You need to understand the building blocks of a workflow and how it works.

 

But since you insist on troubleshooting yourself 🙂 , please continue.

 

sinhaa

 

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

Lukas
5,842 Views

Hi,

 

thanks for the answer. The dar file is attached.

 

It's just a very simple workflow containing the certifiied commands.

 

Regards,

Lukas

sinhaa
5,696 Views

Lukas,

   Filters are SQL queries which run against wfa internal DB. So if you get errors like No results were found. The following filters have returned empty result. You can go to the location which is also pointed out in the error message and Test the filter with the same set of inputs as you gave at workflow execution time.. The filter Test Button is available at the bottom left corner.

 

 

Now about your error. If you look at the filter you have in Resource Selection for Command ISCSI Map Lun, its clearly says it needs Array IP and NOT Array name. If you give array name, the SQL query will not be able to find any row with that input in ip column. Hence the failure.

 

Map Lun1.png

 

Now if you don't want to enter another User-Input called array IP, you can get it from the Volume definition from the Command "Create Volume" . See below.

 

Map Lun2.png

 

 

I've obtained the array ip from volume1.array.ip

If you start typing the words "volume1." you'll see auto-complete drop-down options being available for selection. 

 

Now your workflow will work for both Array name as well as array IP whichever the user provides.

 

 

sinhaa

 

 

 

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

sinhaa
5,696 Views

I hope this solves your problem

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

Lukas
5,676 Views

Hi sinhaa,

 

thanks a lot for your answer, much appreciated. I will give it a try this afternoon.

 

But I'm still thinking, I know the Map Lun command wanted IP, but where am I supposed to find which command provides IP? What if I have 20 or more commands in a workflow, should I go and try all of them? Obviously I want user to enter either IP or hostname and WF should take care of it.

 

This way, it's not very efficient.

 

Br,

Lukas

sinhaa
5,602 Views

Lukas,

     As I said before, you need to understand the building blocks of a workflow and how it works. I'll try to help you here in as simple terms as I can.

 

 

@ But I'm still thinking, I know the Map Lun command wanted IP, but where am I supposed to find which command provides IP?

----

Its not  any command that provides the IP, its the found resource for the command which can do it. And its not just the volume1 resource for the Create Volume command which can do it. You could have used lun1.array.ip from command Create Lun and it would work. Or igroup1.array.ip or nfs_export_datavol.array.ip or even lun1.volume.aggregate.array.ip

 

So how to decide which one would? For that you need to look at the dictionary objects and understand what they are. For example the dictionary item volume for scheme storage. A dictionary items can be seen as a table in a DB schema and  every simgle row in WFA dictionary is equivalent to a column in a DB table. So if a volume resouce is found, it means a row in DB is found, I can now get any column value for this volume row.

 

A volume row also has column array which is referance object to an array dictionary i.e. to an array table. You can identify them easily, they have an (R) in front of them when you look at them in Resource selection.

 

 

 

Vol_dictionary1.png

 

 

 

Vol_dictionary2.png

 

 

So the found volume row, gets me the array row and from array row I can get the ip.

 

Similarly from the found igroup, I get get array and from that the ip. or from lun I get volume, from volume I get aggrgate, from aggregate I can get array and then from array I can get ip. So out of all the possibilities, you decide which one to pick.

 

 

Obviously I want user to enter either IP or hostname and WF should take care of it.

----

WFA can take care of anything, provided you tell it to do so. Its a very intelligent and also highy flexible framework. And thats why it doesn't assume anything. It will do just as you direct it. There is nothing obvious here.

 

 

sinhaa

 

If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO.

Lukas
5,197 Views

Hi sinhaa,

 

perfect answer, thank you very much.

 

Lukas

Public