Huge thank you Jack.

I worked on the finalazer ;) scripts. My comments on them are below in-line.

I will let Glenn comment on the other files.

Joe

Jack Schwartz wrote:
> Hi Glenn and Joe.
>
> Congratulations on getting this out;  it is quite an undertaking.  It 
> looks pretty good.
>
> I've reviewed DC files and one VM-related file.  I did not review 
> export_esx, export_ovf, install_vm, install_vm_config, prepare_ai_image.
>
> Here are my comments:
>
> DC-manifest.defval.xml:
>
> 138-142: Nit: move up to where other distro_const_params/... items are 
> (for example, just below 113)
>
> Regarding a comment which Karen asked:
>
>> - Did you verified that the appropriate default value
>> is assigned after you added all the skip_if_no_exist things?
>> For example, if I have a manifest that have the img_params section,
>> but I didn't specify some of the values in the manifest,
>> did the "right" value get assigned?
>>     
>
> You can run ManifestServ with the verbose option to check the 
> processing, and can then check at the values.  -t dumps out the 
> temporary file after defaults have been added to it.  Using the schema 
> called /tmp/DC-manifest.rng and defval manifest called 
> /tmp/DC-manifest.defval.xml, and a manifest called slim_cd_x86.xml, 
> the command would be:
>
> ManifestServ -v -t -f /tmp/DC-manifest slim_cd_x86.xml
>
> DC-manifest.rng:
>
> 64-67, 299-304: I saw the comments about this to other reviewers... I 
> would remove the comments, remove the <optional> on 59 and 62 instead 
> of the current approach, in order to keep the file general and 
> extensible.  It will be easier to add new image types to this file if 
> the <choice> of 57-67 were left in.
>
> When you uncomment 299-304, I believe you can replace the <interleave> 
> lines with <empty/> if there is really nothing to add under vmimg_params.
>
> Glenn, you made a comment that if img_params was missing then the 
> build will fail.  I don't think it should fail if the schema is set up 
> as above using "choice";  the other "choice" of "vmimg_params" is 
> being taken.  Please ping me off line about this more if needed.
>
> DC_checkpoint.py:
>
> 722, 724: contains refs to DC_execute_checkpoint() which is now gone.
>
> im_pop.py:
>
> 76: I don't think flush is needed right before the close.  The close 
> should do an implicit flush.
>
> a list of authorities to cleanup is created in 281.  What about 
> exceptions raised between 281 and 454, where cleanup occurs?
>
> Close pkgfile before using it.  Move 404 behind 401.  In fact, I think 
> you can get rid of the flush if you close it anyway.
>
> Where do logging messages go from TM now?
>
> 136, other places: line > 80 chars
> ... Others have already said that the py files are not PEP8 compliant 
> so I won't dwell on these things.
>
> In general, it is best to break up methods which are more than a few 
> screens in height.  This makes the code more clear and digestable.
>
> 357: It makes more sense and is cleaner from an OS perspective to 
> close the file rather than flush here and close later.  The transfer 
> module (called via dc_ips_contents_verify on 360) will just open
> the file again anyway.  This will also condense several closes which 
> are called during error handling into just the one on 357.  
> Alternatively, if there is some reason why the file cannot be closed 
> as I suggest, please document the reason in the code.
>
> 398: ditto.  I suggest moving the close() of 404 to 398, replacing the 
> flush().
>
> create_vm:
>
> I second Karen's suggestion to use a full path to commands. This makes 
> what is being run explicit and handles the case where the $PATH isn't 
> set properly.  Other distro-constructor scripts also do this.

I tend to use full paths to commands but setting PATH is a good idea in 
case a command is missed. Doing so was initially suggested to me by 
Roland Mainz (Mr. bash) when I was working on usbgen. It is in our ksh93 
tips
http://installzone-wiki.central.sun.com/wiki/index.php/Ksh93_Tips

I will be improve the comments around setting PATH.


>
> 130:  Printing "FAILURE" after printing "Invoking: error_handler" may 
> confuse the user to believe that the error handler failed.  I would 
> say "Failure: Invoking error_handler" before cleanup, and no message 
> after cleanup unless the cleanup itself failed.

Good suggestion. - Will do.

>
> 215, 221, other places: I thought single line if/then/fi was 
> discouraged. The shell style guide says it shell should look like C, 
> and does not itself use single line examples for if/then/fi.  I looked 
> through Cstyle though, and couldn't find the admonishment for doing 
> this, so not sure...

I will be changing these.

>
> 256: typo finalazer -> finalizer

Good catch! Thanks.

>
> prototype_com: OK
> all Makefiles: OK
> all XML except as noted above: OK
> all py files except as noted above: OK notwithstanding comments from 
> others
>
>    Thanks,
>    Jack


Reply via email to