ramDownloadAssset
I am running the ant ramDownloadAsset.xml script to download the RAM asset. I would like to amend the script to download asset only if a condition of one of the asset attributes is met (eg. sequence=1) and need some help on how to change the script. I was not able to add <ram> as I cannot set the value of the attribute.
<target> <echo> <mkdir> <ram> <ram> </ram> </target> Thanks. Regards, Swat Oon |
9 answers
I am running the ant ramDownloadAsset.xml script to download the RAM asset. I would like to amend the script to download asset only if a condition of one of the asset attributes is met (eg. sequence=1) and need some help on how to change the script. I was not able to add <ram> as I cannot set the value of the attribute. The XML didn't render properly, so I'm not entirely sure what you're trying to do. If you're using the web interface for the forum, check the "Disable HTML in this post" checkbox when you enter HTML/XML. What you want to accomplish is technically possible using the <ram:propertyHelper /> tag, but it's pretty limited in practice. Here's what you could do (note the <if>, <then> and <equals> tags are from the Ant-Contrib project): <ram:propertyHelper /> <ram:server id="ramServer" url="..." username="..." password="..." /> <ram:asset id="myAsset" server="ramServer" guid="..." version="..." /> <if> <equals arg1="${myAsset.assetAttributes.values}" arg2="1" /> <then> <ram:download server="ramServer"> <ram:asset refid="myAsset" /> </ram:download> </then> </if> This assumes the attribute you want is the first (or only) attribute in the list... and by this, I don't mean the first attribute you see in the web UI... it's the first attribute in the list returned by the Java API. This is the limited part I was talking about. You can't currently get an attribute by name. This is something we'd like to add at some point. |
Hi,
I tried to echo ${myAsset.assetAttributes.values} but the the output is this property has not been set. I thought I have created the attribute in RAM. What could be wrong here? Thanks for your help! |
Hi, This script worked for me:
That asset had one simple text attribute and the script echoed its value. |
Hi I used your script and changing only the parameters like url and guid. The build was successful but I am still not able to echo the attribute.
Creating session for user admin on server http://localhost:13080/ram/ Property "myAsset.assetAttributes.values" has not been set ${myAsset.assetAttributes.values} BUILD SUCCESSFUL |
What version of Ant are you using? What version of RAM?
|
What version of Ant are you using? What version of RAM? I am using ant 1.8.0, RAM version 7.5.0.1. |
Ah... Ant 1.8 is not supported in RAM 7.5.0.1, because Ant's property helper stuff was all completely redone. As a matter of fact, in RAM 7.5.0.2, we throw an error if you're not using Ant 1.7.x. Try your script with Ant 1.7.x and it should work.
|
Ah... Ant 1.8 is not supported in RAM 7.5.0.1, because Ant's property helper stuff was all completely redone. As a matter of fact, in RAM 7.5.0.2, we throw an error if you're not using Ant 1.7.x. Try your script with Ant 1.7.x and it should work. Thank you so much for your help! I finally got it to work after using Ant 1.7.1 as you suggested. Can I find out from you if it is possible to return the number of attributes in the asset? Where can I get such information from the documentation? The attribute I want is the 3rd element, assetAttributes.name = Sequence Number, and assetAttributes.values = 1. Can I traverse the list in a for loop to get this attribute? Thanks loads. |
I wanted to suggest getting the attribute this way, but there's a bug causing it not to work:
It will be fixed in the next 7.5.1 build, but for 7.5.0.x it won't work. I don't think there's any way to loop through and find the attribute you want. |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.