On 02/22/10 04:32 PM, jeanm wrote: > > Please review the design document for the transfer module of the Caiman > Unified Design project.
Reviewed version 2.0. I have a general question here. Do you feel that implementing an IPSTransfer API that's this extensive is actually worth the trouble? Or should the applications primarily be using the pkg.client.api interface directly, with some add-on shims to help the application interface with the engine? The issue I'm concerned about is that, as pkg capabilities evolve, taking advantage of them in any application will often (if not always) require two layers of work: here in the IPSTransfer class, and in the application. Were we desiring to maintain only a subset interface that was simpler than the pkg API that might make sense, but I don't think that's true in general; both AI and DC want (need) to access a very large subset of the pkg functionality. Thus I'm wondering if we should re-think the approach here. The existing transfer module for IPS pre-dates the pkg API, so its design assumptions were very different. 3.3.1 MediaTransfer has add_arg, others have add_args IPSTransfer has two set_type's and no get_type 3.4.1.2 Should _src_mntpt and _dst_mntpt be merely source and destination directories? Seems that mountpoint is overly specific. 3.4.1.2.6 Are these allowed to be both files and directories? 3.4.1.3.10 My concern with add_arg() is that it's somewhat non-deterministic; you've documented what the default options currently are, but if we decided to change that default, then add_arg may or may not achieve the desired result. I think it's safer to put the burden on the application to provide a complete, coherent argument set should it require this level of customization. 3.4.2 Ignoring the general question that I led off with, a few comments on IPSTransfer (though I'd probably have more were that question not looming). I believe you and Sarah are discussing this, but being able to consume a .p5i is desirable/required. 3.4.2.2.1 (and 3.4.2.2.2) With auto-configuration from the repository URI, is there a reason to require the dict rather than just using a URI? 3.4.2.2.3 What would _ips_args potentially contain? 3.4.3 What are the use cases that lead to including the translate functionality? Dave
