Hi Jean,

Here are my comments:

General Comments:
---------------------------------

- In each of the object types for the 3 different transfer types 
discussed in the
document, there are attributes that will get used by every single
operation within that object type, like the "destination directory".  
There are attributes
that will get used only by certain operations ONCE.  For those 
attributes, I don't
think they need to be kept as attributes for the object at all.  They 
can just
be passed in as arguments when a certain operation is called.  I think 
the "transfer()" method
for IPS will be much cleaner if we adopt this philosophy.

- There's no discussion about how, if any progress will be reported back 
to the caller of
the transfer module.  Does the caller pass in a callback function?

- There's no discussion about how to interrupt a transfer-in-progress.  
This functionality
is required when people choose to quit the installer in the middle of a 
transfer, which could
be a long process.

Specific Comments:
----------------------------------

section 2:
- "The checkpointing module will be available" is one of the dependencies.
I do not see how checkpointing is being used in the transfer module.  
Can you
elaborate when and where it will be used?

section 3.4:
- General comment for all the classes.  You don't have a constructor method
that talks about what options are required when the object is created.
I think it would be very useful to list all the required/optional arguments
to the constructor method.

section 3.4.1.2.3:
- The second sentence is not finished.

section 3.4.1.2.4:
- "Default value is None" is not quiet correct, I think.  If _type is 
FILELIST, this value
is required.  If _type is not FILELIST, then, this value is not relevant.

section 3.4.1.2.5:
- Same comment as above for the "Default value is None" statement.

section 3.4.2:
- What about mirrors for the publishers, how do they get specified?
- You kinda mentioned that IPS APIs will be used for implementing the 
functionalities
in the object.  It would be good to explicitly spell it out in this 
section.  Perhaps also
discuss why you choose to use IPS API instead of the pkg(5) commands.

section 3.4.2.2:
- There is no "destination directory" for the IPSTransfer object.  That 
should
be a required attribute, right?

section 3.4.2.2.5:
- Why we need an alternate root.  Isn't that the "destination"
directory?  If so, I think calling it alternate root is confusing.  
Furthermore, this
should be a required attribute.  Default value of "none" won't work.

section 3.4.2.3.1:
- It would be much easier to read if this information is in a table 
format, I think.
- "PURGE-HISTORY will use....".  Need to finish this sentence.
- "SEARCH will use the _args....".  I am not sure what we are searching 
for here.  Package names?
Files inside packages?

section 3.4.3.2.1:
- While we can map all SVR4 package operations, I don't understand how 
"INFO, PARAM, and TRANSLATE"
can be useful in the transfer module.

section 3.4.3.2.2:
- Again, do you mean "destination directory" here?   Also, default value 
can not be None.

section 4:
- Since you have all the APIs defined, it would be useful to actually 
write some psudo-code for the
use cases, instead of just describing what each of the installers are doing.
That way, it would be easier to see how the APIs can be used.

Thanks,

--Karen

On 02/22/10 13:32, jeanm wrote:
>
> Please review the design document for the transfer module of the 
> Caiman Unified Design project.
> It can be accessed via:
> http://hub.opensolaris.org/bin/preview/Project+caiman/CUE_docs/CUDTransferModule.odt
>  
>
>
> I would appreciate feedback by COB Friday February 26th.
>
> Jean McCormack
> _______________________________________________
> caiman-discuss mailing list
> caiman-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to