airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kenno Vanommeslaeghe (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AIRAVATA-779) Xbaya: handling of StringArray is not consistent with URIArray
Date Fri, 16 Aug 2013 00:57:47 GMT

    [ https://issues.apache.org/jira/browse/AIRAVATA-779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13741737#comment-13741737
] 

Kenno Vanommeslaeghe edited comment on AIRAVATA-779 at 8/16/13 12:56 AM:
-------------------------------------------------------------------------

This problem is still causing us (PARAMCHEM) pain. We have a service that accepts 3 arrays.
Because Airavata doesn't delimit the arrays, there's no way of knowing for sure where one
array stops and the next one starts. Obviously, we implemented a workaround for this, but
it is somewhat brittle; if something unexpected happens, the arrays flow into each other leading
to a situation that is confusing to debug. I still feel quoting the arrays would be the best
solution, ie. the back-end application is called as follows:

application "array1_element1 array1_element2 ..." "array2_element1 array2_element2 ..."

This is very easy to parse with basic shell commands; the following sample shell script is
way simpler than the big ugly complicated parser I had to put in place to work around the
problem.

{code:language=bash}
#!/bin/sh
array1="$1"
array2="$2"

parse_array () {
  arrnam=$1
  shift 1
  for i in `seq $#` ; do
    eval ${arrnam}$i=\"\$$i\"
   done
}

parse_array array1_element $array1
parse_array array2_element $array2

# Example
echo $array1_element3
echo $array2_element2
{code}
                
      was (Author: kenno):
    This problem is still causing us (PARAMCHEM) pain. We have a service that accepts 3 arrays.
Because Airavata doesn't delimit the arrays, there's no way of knowing for sure where one
array stops and the next one starts. Obviously, we implemented a workaround for this, but
it is somewhat brittle; if something unexpected happens, the arrays flow into each other leading
to a situation that is confusing to debug. I still feel quoting the arrays would be the best
solution, ie. the back-end application is called as follows:

application "array1_element1 array1_element2 ..." "array2_element1 array2_element2 ..."

This is very easy to parse with basic shell commands; the following sample shell script is
way simpler than the big ugly complicated parser I had to put in place to work around the
problem.

#!/bin/sh
array1="$1"
array2="$2"

parse_array () {
  arrnam=$1
  shift 1
  for i in `seq $#` ; do
    eval ${arrnam}$i=\"\$$i\"
   done
}

parse_array array1_element $array1
parse_array array2_element $array2

# Example
echo $array1_element3
echo $array2_element2
                  
> Xbaya: handling of StringArray is not consistent with URIArray
> --------------------------------------------------------------
>
>                 Key: AIRAVATA-779
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-779
>             Project: Airavata
>          Issue Type: Bug
>          Components: GFac, XBaya
>            Reporter: Suresh Marru
>             Fix For: 0.9
>
>
> Reported by Airavata user at - https://gateways.atlassian.net/browse/PARAMCHEM-115

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message