<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I think Justin when I asked him that question was because that was how Swift expected everything.  It didn't break how Swift worked and didn't require any modifications to the Swift source to account for this.  I think this was just a case that wasn't thought out fully on what exactly would happen.  I think CDM knows all the information it needs to actually write the data to the output destination, the logic is just not there.  I didn't know of this behavior with CDM output till this past summer.  I always used CDM for input only until this past summer.<div><br><div><div>On Nov 14, 2011, at 7:17 PM, Ketan Maheshwari wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">One thing I am not very clear about CDM Direct for output is if there is any benefit in having the outputs symlinked from the workdir? Wouldn't the outputs be expected at the final place in users application output destination?<br>
<br><div class="gmail_quote">On Mon, Nov 14, 2011 at 6:36 PM, Jonathan Monette <span dir="ltr"><<a href="mailto:jonmon@mcs.anl.gov">jonmon@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The "do the right thing" is currently broken in CDM for output files.  A wrapper needs to be written currently around the app that updates the intended file and not the symlink in the work directory.  For instance, in the SwiftMontage scripts I wrap all the Montage calls in python scripts that checks to see if I am writing to a symlink, if I am writing to a symlink I write the what the symlink is pointing to instead of the symlink itself.  So unless a wrapper is written to handle the output files, CDM currently does not work properly.  This probably should be documented in the CDM section of the user guide as a caveat of using CDM for output files.<br>

<div><div></div><div class="h5"><br>
On Nov 14, 2011, at 2:47 PM, Michael Wilde wrote:<br>
<br>
> I think the purpose of these tests was to find a default CDM DIRECT patter that would match all inout and output files and "do the right thing".<br>
><br>
> Tests that match specific pathnames are yet another (but different) useful case.<br>
><br>
> - Mike<br>
> ----- Original Message -----<br>
>> From: "Ketan Maheshwari" <<a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a>><br>
>> To: "Jon Monette" <<a href="mailto:jonmon@mcs.anl.gov">jonmon@mcs.anl.gov</a>><br>
>> Cc: "Michael Wilde" <<a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a>>, "Swift Devel" <<a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a>><br>
>> Sent: Monday, November 14, 2011 12:43:13 PM<br>
>> Subject: Re: [Swift-devel] CDM Tests<br>
>> Yes, this is right. I added a rule for the outdir in the cdm file<br>
>> (which was not added earlier) and all runs fails with the message:<br>
>> file not found output/out?.txt.<br>
>><br>
>><br>
>> On Mon, Nov 14, 2011 at 2:05 PM, Jon Monette < <a href="mailto:jonmon@mcs.anl.gov">jonmon@mcs.anl.gov</a> ><br>
>> wrote:<br>
>><br>
>><br>
>> Output files do not work correctly in CDM. CDM creates symlinks to the<br>
>> files that are used in the DIRECT CDM directive. When the app outputs<br>
>> it overwrites the symlink in the work directory and *doesn't* update<br>
>> the original file. So the check to see if the expected output is the<br>
>> same as the correct output will fail. How are you checking to see if<br>
>> the app correctly ran? Is there an error or is the original file in<br>
>> the cwd empty?<br>
>><br>
>><br>
>> ----- Original Message -----<br>
>> From: "Michael Wilde" < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> ><br>
>> To: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> ><br>
>> Cc: "Swift Devel" < <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> ><br>
>><br>
>><br>
>><br>
>> Sent: Monday, November 14, 2011 1:59:22 PM<br>
>> Subject: Re: [Swift-devel] CDM Tests<br>
>><br>
>> I meant the command line to the app() program, not the commandline to<br>
>> the swift command.<br>
>><br>
>> - Mike<br>
>><br>
>> ----- Original Message -----<br>
>>> From: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> ><br>
>>> To: "Michael Wilde" < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> ><br>
>>> Cc: "Swift Devel" < <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> ><br>
>>> Sent: Monday, November 14, 2011 11:50:48 AM<br>
>>> Subject: Re: [Swift-devel] CDM Tests<br>
>>> All commandlines are in a run.sh script batched together. I am<br>
>>> writing<br>
>>> a README in the testsuite to document this.<br>
>>><br>
>>><br>
>>> On Mon, Nov 14, 2011 at 1:46 PM, Michael Wilde < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> ><br>
>>> wrote:<br>
>>><br>
>>><br>
>>> Ketan, in these tests, I thought that the names that the app<br>
>>> actually<br>
>>> receives on its command line is worth documenting. Does that show<br>
>>> anything that the script writer should be aware of?<br>
>>><br>
>>><br>
>>> - Mike<br>
>>><br>
>>> ----- Original Message -----<br>
>>><br>
>>><br>
>>><br>
>>>> From: "Michael Wilde" < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> ><br>
>>>> To: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> ><br>
>>>> Cc: "Swift Devel" < <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> ><br>
>>>> Sent: Monday, November 14, 2011 11:39:10 AM<br>
>>>> Subject: Re: [Swift-devel] CDM Tests<br>
>>>> Even though the tests worked in each of these 4 cases, the<br>
>>>> question<br>
>>>> remains of "did the app see the same path names" and "did copies<br>
>>>> get<br>
>>>> done"?<br>
>>>><br>
>>>> So I think you need to dig deeper and explain the difference<br>
>>>> between<br>
>>>> what CDM does for the direct case, and how (if at all) the wrapper<br>
>>>> mode affects things.<br>
>>>><br>
>>>> Its equally possible that CDM overrode the wrapper mode arg. Just<br>
>>>> specifying the wrapper mode arg will not, I think, achieve the<br>
>>>> elimination of the "copy to shared workflow directory" that<br>
>>>> "direct<br>
>>>> mode" accomplishes.<br>
>>>><br>
>>>> - Mike<br>
>>>><br>
>>>> ----- Original Message -----<br>
>>>>> From: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> ><br>
>>>>> To: "Michael Wilde" < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> ><br>
>>>>> Cc: "Swift Devel" < <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> >, "Justin M<br>
>>>>> Wozniak"<br>
>>>>> < <a href="mailto:wozniak@mcs.anl.gov">wozniak@mcs.anl.gov</a> ><br>
>>>>> Sent: Monday, November 14, 2011 11:29:36 AM<br>
>>>>> Subject: Re: [Swift-devel] CDM Tests<br>
>>>>> Mike,<br>
>>>>><br>
>>>>><br>
>>>>> In my initial email I said:<br>
>>>>><br>
>>>>><br>
>>>>> ... when specifying the relative option on the config for<br>
>>>>> wrapper.invocation.mode property the script works regardless of<br>
>>>>> the<br>
>>>>> paths of input/output.<br>
>>>>><br>
>>>>><br>
>>>>> Which made me conclude that the option specified in the config<br>
>>>>> for<br>
>>>>> wrapper.invocation.mode property overrides the CDM policies.<br>
>>>>><br>
>>>>><br>
>>>>> On Mon, Nov 14, 2011 at 1:21 PM, Michael Wilde <<br>
>>>>> <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a><br>
>>>>>><br>
>>>>> wrote:<br>
>>>>><br>
>>>>><br>
>>>>> Ketan,<br>
>>>>><br>
>>>>> I thought your initial email stated that the 4 cases of relative<br>
>>>>> path<br>
>>>>> names "worked". But this latter comment indicates that there is<br>
>>>>> some<br>
>>>>> kind of problem even in the relative cases.<br>
>>>>><br>
>>>>> Can you clarify?<br>
>>>>><br>
>>>>><br>
>>>>> - Mike<br>
>>>>><br>
>>>>><br>
>>>>> ----- Original Message -----<br>
>>>>>> From: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> ><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>>> To: "Justin M Wozniak" < <a href="mailto:wozniak@mcs.anl.gov">wozniak@mcs.anl.gov</a> ><br>
>>>>>> Cc: "Michael Wilde" < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> >, "Swift Devel" <<br>
>>>>>> <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> ><br>
>>>>>> Sent: Monday, November 14, 2011 11:01:35 AM<br>
>>>>>> Subject: Re: [Swift-devel] CDM Tests<br>
>>>>>> Given the CDM's support for relative pathnames, I would expect<br>
>>>>>> the<br>
>>>>>> case of relative inputs, relative outputs would succeed<br>
>>>>>> irrespective<br>
>>>>>> of config. However, from the tests, it seems that the config<br>
>>>>>> option<br>
>>>>>> is<br>
>>>>>> overriding CDM directives.<br>
>>>>>><br>
>>>>>><br>
>>>>>> On Mon, Nov 14, 2011 at 12:44 PM, Justin M Wozniak <<br>
>>>>>> <a href="mailto:wozniak@mcs.anl.gov">wozniak@mcs.anl.gov</a> > wrote:<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> CDM DIRECT does not currently support absolute path names. I<br>
>>>>>> think<br>
>>>>>> we<br>
>>>>>> could provide something simple like "" for the field, as you<br>
>>>>>> suggest.<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> On Mon, 14 Nov 2011, Michael Wilde wrote:<br>
>>>>>><br>
>>>>>>> I would expect that for absolute path mappings, the user<br>
>>>>>>> would<br>
>>>>>>> specify<br>
>>>>>>> either :: or "/" as the path in the CDM DIRECT pattern. In<br>
>>>>>>> other<br>
>>>>>>> words,<br>
>>>>>>> the user is saying "I have mapped the object to an absolute<br>
>>>>>>> path<br>
>>>>>>> name,<br>
>>>>>>> and I want the app to get exactly this name". Hence I think<br>
>>>>>>> that<br>
>>>>>>> the<br>
>>>>>>> best "location" field for a DIRECT rule is null ("").<br>
>>>>>>><br>
>>>>>>> Justin, can you clarify what the code expects for this case?<br>
>>>>>>><br>
>>>>>>> - Mike<br>
>>>>>>><br>
>>>>>>> ----- Original Message -----<br>
>>>>>>>> From: "Jonathan Monette" < <a href="mailto:jonmon@mcs.anl.gov">jonmon@mcs.anl.gov</a> ><br>
>>>>>>>> To: "Michael Wilde" < <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a> ><br>
>>>>>>>> Cc: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> >,<br>
>>>>>>>> "Swift<br>
>>>>>>>> Devel" < <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> ><br>
>>>>>>>> Sent: Monday, November 14, 2011 9:13:01 AM<br>
>>>>>>>> Subject: Re: [Swift-devel] CDM Tests<br>
>>>>>>>> I couldn't tell from the excel(using my phone) but what was<br>
>>>>>>>> absolute?<br>
>>>>>>>> If I am not mistaken what CDM does is takes the path that<br>
>>>>>>>> is<br>
>>>>>>>> specified<br>
>>>>>>>> in the CDM file(which should be absolute) and appends the<br>
>>>>>>>> file<br>
>>>>>>>> path<br>
>>>>>>>> that is used in the swift script to it(which should be<br>
>>>>>>>> relative).<br>
>>>>>>>> So<br>
>>>>>>>> if they are both absolute I would expect it to fail.<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>> On Nov 14, 2011, at 10:56 AM, Michael Wilde <<br>
>>>>>>>> <a href="mailto:wilde@mcs.anl.gov">wilde@mcs.anl.gov</a><br>
>>>>>>>>><br>
>>>>>>>> wrote:<br>
>>>>>>>><br>
>>>>>>>>> Thanks, Ketan - very nice tests and summary document.<br>
>>>>>>>>><br>
>>>>>>>>> I should point out for those that didn't open the doc: the<br>
>>>>>>>>> 4<br>
>>>>>>>>> tests<br>
>>>>>>>>> with absolute pathnames are failing.<br>
>>>>>>>>><br>
>>>>>>>>> Ketan, can you work with Justin to see if this is a bug,<br>
>>>>>>>>> or<br>
>>>>>>>>> if<br>
>>>>>>>>> the<br>
>>>>>>>>> CDM directive needs to be coded differently for absolute<br>
>>>>>>>>> paths?<br>
>>>>>>>>> Then<br>
>>>>>>>>> please test a fix, and as we discussed adapt the tests<br>
>>>>>>>>> with<br>
>>>>>>>>> annotations to enhance the User Guide section on CDM.<br>
>>>>>>>>><br>
>>>>>>>>> - Mike<br>
>>>>>>>>><br>
>>>>>>>>><br>
>>>>>>>>> ----- Original Message -----<br>
>>>>>>>>>> From: "Ketan Maheshwari" < <a href="mailto:ketancmaheshwari@gmail.com">ketancmaheshwari@gmail.com</a> ><br>
>>>>>>>>>> To: "Swift Devel" < <a href="mailto:swift-devel@ci.uchicago.edu">swift-devel@ci.uchicago.edu</a> ><br>
>>>>>>>>>> Sent: Monday, November 14, 2011 8:13:48 AM<br>
>>>>>>>>>> Subject: [Swift-devel] CDM Tests<br>
>>>>>>>>>> Hello,<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> I had a discussion with Mike about testing the CDM<br>
>>>>>>>>>> behavior<br>
>>>>>>>>>> for<br>
>>>>>>>>>> the<br>
>>>>>>>>>> following cases:<br>
>>>>>>>>>> 1. full versus relative paths for input<br>
>>>>>>>>>> 2. full versus relative paths for output<br>
>>>>>>>>>> 3. relative versus absolute option in config property:<br>
>>>>>>>>>> wrapper.invocation.mode<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> In this regard, I made 8 tests for all the above<br>
>>>>>>>>>> combinations.<br>
>>>>>>>>>> I<br>
>>>>>>>>>> used<br>
>>>>>>>>>> simple local provider in this first set of tests.<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> From the tests it seems that when specifying the relative<br>
>>>>>>>>>> option<br>
>>>>>>>>>> on<br>
>>>>>>>>>> the config for wrapper.invocation.mode property the<br>
>>>>>>>>>> script<br>
>>>>>>>>>> works<br>
>>>>>>>>>> regardless of the paths of input/output.<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> A detailed result with stdout, and paths to logs can be<br>
>>>>>>>>>> found<br>
>>>>>>>>>> here:<br>
>>>>>>>>>> <a href="https://docs.google.com/spreadsheet/ccc?key=0AmvYSwENKFY9dG44V2VjRXJlUmZLNG9saERFeWZDcUE" target="_blank">https://docs.google.com/spreadsheet/ccc?key=0AmvYSwENKFY9dG44V2VjRXJlUmZLNG9saERFeWZDcUE</a><br>

>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> The tests are in my CI dir: /home/ketan/cdm_tests<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> Regards, --<br>
>>>>>>>>>> Ketan<br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>>>> _______________________________________________<br>
>>>>>>>>>> Swift-devel mailing list<br>
>>>>>>>>>> <a href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a><br>
>>>>>>>>>> <a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel</a><br>
>>>>>>>>><br>
>>>>>>>>> --<br>
>>>>>>>>> Michael Wilde<br>
>>>>>>>>> Computation Institute, University of Chicago<br>
>>>>>>>>> Mathematics and Computer Science Division<br>
>>>>>>>>> Argonne National Laboratory<br>
>>>>>>>>><br>
>>>>>>>>> _______________________________________________<br>
>>>>>>>>> Swift-devel mailing list<br>
>>>>>>>>> <a href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a><br>
>>>>>>>>> <a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel</a><br>
>>>>>>><br>
>>>>>>><br>
>>>>>><br>
>>>>>> --<br>
>>>>>> Justin M Wozniak<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> _______________________________________________<br>
>>>>>> Swift-devel mailing list<br>
>>>>>> <a href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a><br>
>>>>>> <a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel</a><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> --<br>
>>>>>> Ketan<br>
>>>>><br>
>>>>> --<br>
>>>>> Michael Wilde<br>
>>>>> Computation Institute, University of Chicago<br>
>>>>> Mathematics and Computer Science Division<br>
>>>>> Argonne National Laboratory<br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>> --<br>
>>>>> Ketan<br>
>>>><br>
>>>> --<br>
>>>> Michael Wilde<br>
>>>> Computation Institute, University of Chicago<br>
>>>> Mathematics and Computer Science Division<br>
>>>> Argonne National Laboratory<br>
>>>><br>
>>>> _______________________________________________<br>
>>>> Swift-devel mailing list<br>
>>>> <a href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a><br>
>>>> <a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel</a><br>
>>><br>
>>> --<br>
>>> Michael Wilde<br>
>>> Computation Institute, University of Chicago<br>
>>> Mathematics and Computer Science Division<br>
>>> Argonne National Laboratory<br>
>>><br>
>>><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Ketan<br>
>><br>
>> --<br>
>> Michael Wilde<br>
>> Computation Institute, University of Chicago<br>
>> Mathematics and Computer Science Division<br>
>> Argonne National Laboratory<br>
>><br>
>> _______________________________________________<br>
>> Swift-devel mailing list<br>
>> <a href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a><br>
>> <a href="https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel" target="_blank">https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-devel</a><br>
>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Ketan<br>
><br>
> --<br>
> Michael Wilde<br>
> Computation Institute, University of Chicago<br>
> Mathematics and Computer Science Division<br>
> Argonne National Laboratory<br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Ketan<br><br><br>
</blockquote></div><br></div></body></html>