Hi Sarah,

Please see my comments inline.


On 06/01/10 08:36, Sarah Jelinek wrote:
Hi Alok,



On 05/26/10 04:13 PM, Alok Aggarwal wrote:
There are a  number of existing DC finalizer scripts
that call target instantiation and transfer at
various points in time.

As these finalizers get converted over to being CUD
Checkpoints, I don't believe they can call target
instantiation/transfer directly in CUD any more. Instead,
a Checkpoint that needs to call TI/Transfer would
need to be broken up into multiple different checkpoints
where TI/Transfer is one of them.

So, for example, with boot_archive_archive.py, it
would more or less get distilled into the following
distinct checkpoints -

I don't think we need or want to break these down this way. I agree some boundaries have to be set and adjusted, but not every finalizer should be it's own checkpoint. The way I see it is, for boot archive processing:

-Image Modification
-Transfer

The boot_archive_archive.py is the final step of boot archive processing. The Image modification for the boot archive is currently done in boot_archive_configure and the transfer of the boot archive content from pkg_image area to the boot_archive construction area is done in boot_archive_initialize.py.

The "transfer" that's done in boot_archive_archive.py is to cpio the modified content of
the boot archive construction area into the UFS based boot_archive.

The target instantiation for the boot archive target can be done with the initial target instantiation. We have the boot archive properties set in the manifest, and if we need to calculate any of them this can be done earlier on. We know we need 3 targets:

DC build area
pkg image area
boot archive area
Just to be clear, there's a boot archive construction area under the DC build area, and then,
there's a *separate* target for the UFS boot archive itself.

So, I think we want to do these all in one Target Instantiation sweep. The top level DC build area is a dataset, the other two are directories, right?
Currently, the DC build area is one top level dataset. A build_data area is a separate dataset under the DC build area dataset. The "pkg image area" and "boot archive area" are directories under the build area. The build area is snapshot by DC to provide the stop and resume support. The actuall UFS file for the UFS boot archive is created in the "pkg image area" by boot_archive_archive.py script.

The UFS boot archive can not be created early at target instantiation time, because size of the boot archive is dynamically calculated based on the content of the boot archive construction area. All the modification done to the boot archive construction area affects the size of
the boot archive, so, it must be created after boot archive modify.

1) Compute various boot_archive properties - size, pad,
   nbpi, etc
This can be done early on and stored in the DOC for use by target instantiation in the early stages of DC.
No, this all depends on the boot archive content, so, all this can not be calculated until after
boot archive modify is done.

2) Instantiate the boot_archive target
This can be done with initial Target Instantiation. We know the DC build area path, we can create the directories at this time, can't we?


See above for why we can not do this.

3) Do optional post-processing on that boot_archive in
   case of sparc
Is this before the transfer of contents? In looking at the finalizer scripts it looks like we do the boot_archive_initialize - transfer the contents-This would be the second Transfer checkpoint in the DC processing.

boot_archive_initialize is to copy the selected content of the boot_archive from the pkg image area to the boot archive, based on the boot archive content list specified in the manifest.

boot_archive_configure
boot_archive_archive- using the nbpi, etc.. data

4) Transfer the contents into boot_archive
5) Release the resources setup in (b)
6) Compress the boot_archive


Each of these checkpoints will store data needed by any
other checkpoints in the DOC as they go along.

So, at a high level I see DC doing something like:

Target instantiation - including boot archive and pkg image directories
Transfer- pkg image population
Image modification-to do the boot archive image modifications that need to be done
Transfer-populate boot archive area
Post Install-boot archive compression, gen cd contents, create images

This will not work.  Some of the modifications to the package image area
need to be done before the boot archive is constructed, and must be included
in the boot archive. So, "transfer" of content to pkg image area and boot archive construction area can not be done at the same time, and must be 2 separate transfer. After content is transfered to the root archive construction area, it needs to
be further customized, before the boot archive can be constructed.

Thanks,

--Karen

_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to