On 01/20/11 03:51 PM, Karen Tung wrote:
 On 01/18/11 13:28, Keith Mitchell wrote:
Hi Karen,

I have some comments and questions. Overall, I really like the concept (it will most certainly simplify the netboot text installer path, and eliminate some failure scenarios for those use cases).

5.2: Under destination, are you proposing that "/a" be hard-coded? I would think that the temporary mountpoint used by the installers should be controlled by the installers, and that we wouldn't want DC to have knowledge of that.
Yes, that's a good point. I will make it a variable that will be filled in by the installers before calling the transfer checkpoint.

For other values in the sample, (such as "dev" as an install dir), when this file is generated at DC build time, will they be pulled from an XML template? Coded as part of the checkpoint ('constants' in the Python file)? Or pulled dynamically from somewhere else?
Those will be hard coded as part of the checkpoint. DC checkpoints that we provide have hard coded knowledge about the layout of the image. So, it makes sense that they also contain the knowledge about exactly what need to be copied to the installed system. If people decide to change the layout of the image for whatever reason, they might also need to change what gets installed in the system. I will either make them as constants in the Python file, or put all the logic in a function or something so that people can easily find the code to modify, if needed.

That makes sense.


For "{cdrom.mountpoint}", since for some scenarios (net-booted text install primarily), it's not really a "CDROM", would a different name for the variable be more appropriate? Alternatively, would it make sense to diverge physical media from netbooted media here (i.e., create a separate .zlib of items that would have been on .cdrom for the net-booted case)?
What about calling it "media.mountpoint"?

That works for me.


Personally, I don't think it is necessary to diverge the physical media from netbooted media. As you have found from doing the netboot text installer project, the only thing that's really needed from the /.cdrom for the installed system are those files in the /.cdrom/save folder. Now that we will have the list of needed files from the .cdrom populated in the DOC, the netboot prepare transfer checkpoint can just go through that list and download the necessary files.

That also works for me. If the list grows longer in the future (and it becomes more viable to package a large set of files in a .zlib), this software.xml and the media transfer checkpoint can evolve to handle that as needed.



5.3: Can you clarify why this belongs under /.cdrom/.media-transfer/ vs. other potential locations, such as, for example, the vendor-packages directory? For net-boot, I'm concerned about being reliant on files not in the boot archive or existing .zlibs.
I suggested /.cdrom/.media-transfer because I think it will be good to centralize all the media transfer related things in 1 directory. I decided to not put it in boot archive, since boot archive should only have files that's required for booting. Even though these 2 files are very small, they are not required for booting, so, it is against the "rules" to put it there. I didn't put it in the .zlibs because everything in the .zlibs are copied to the installed system. Yes, we can filter them out, but again, it is kinda against the philosophy. Most things that's currently in /.cdrom are things that is created for live media only. Since this fits in that category, I decided to have it under /.cdrom.

You have a good point about things not being in the boot archive or existing .zlibs. However, if the directory is an exported interface, we can always have the installers download it as necessary.

As we discussed in person just a moment ago, since this checkpoint belongs to the installers (as opposed to DC), it's probably packaged in pkg:/system/library/install (along with, among other things, the actual transfer checkpoint), so it shouldn't need any special handling - it'll show up in vendor-packages with the other python libraries.


5.3.2: Rather than splitting the registration path; can we leverage the registration path? We have support for registering *functions* as well as *classes* - so long as whatever it is returns an instance of a checkpoint, whether it's a class constructor or function doesn't matter. So, would it make sense to register a function that will decide which kind of checkpoint to return?
Are you suggesting to register a function instead of a class because you want to isolate the knowledge of whether we are running a net-booted installer or a media booted installer from the installer application?

I think this is a great idea. Going through how things will work if we register a function, I have the following algorithm in mind. Let me know if this is not what you have in mind as well.

When the registered function is executed, it will determine whether we are net booted or media booted. If net booted, the special /.cdrom/.media-transfer directory will be downloaded from the server, and the NetPrepareMediaTransfer checkpoint will be instantiated and returned. If booted from media, the media's prepare transfer checkpoint will be instantiated and returned.

The execute() of either NetPrepareMediaTransfer or PrepareMediaTransfer
will populate the DOC with the content of software.xml that's downloaded or from media accordingly. In the current version of my spec, populating the DOC is done by the installer app,
but I think the above is better.


That sounds more or less like what I was thinking. Out of curiosity, are you planning on using the dot-files to determine boot method (.livecd, .textinstall, .autoinstall), or a different method?



5.4.3: For similar reasons to my comment on 5.3, does this software.xml actually belong in the boot archive or an existing .zlib?
Please see my answer above.

More importantly, as you noted to me in person a moment ago, software.xml, being a derivative of the .livecd-cdrom-contents file, can't be generated until just before the ISO is created, so it won't end up in the .zlibs. However, as long as this is the single point of "special hard-coded" knowledge that an installer checkpoint will need, that seems acceptable.


5.5: For step 4, would it make sense instead to enhance manifest reader to support this use case? Or is a separate DOC instance better? Is this process done by the installer, or by a checkpoint, or as part of registration?

If we enhance the manifest reader to support this case, that means we want to add the ability for the manifest reader to instantiate a DOC with 2 input manifest files. We will need to add logic in the manifest reader to deal with duplicate entries
or conflicting entries, to take care of all cases.

With this particular case, for the Text/GUI installer, since the DOC manipulated by the Text/GUI installer is not currently instantiated by input manifests, we
know for a fact that when we "merge" in the software.xml file containing
the list of files/directory to cpio, we can safely assume that there's no duplicate
entry already existing in the DOC.  We can just add our entries there.

As an alternative option, the implementation could allow for creating a clean child node at some point in the DOC tree, and loading the manifest into that child (effectively isolating it from any existing DOC nodes). However, these are just ideas I'm tossing out there - I don't see any major benefit or downside to either approach.

Thanks,
Keith


For simplicity, I think it is better to just load the software.xml into a separate DOC instance,
and copy the objects over.

As discussed above, loading the software.xml information into the installer's DOC can be done in the execute() function of the PrepareMediaTransfer checkpoint.

Thanks,

--Karen


- Keith

On 01/14/11 10:55 PM, Karen Tung wrote:
 Hi,

Please review my proposed design of cpio-based transfer for
the GUI and Text Installer.

I checked the file into the caiman-docs gate under media-transfer directory.

You can also access the design doc directly here:

http://src.opensolaris.org/source/xref/caiman/caiman-docs/media-transfer/media-transfer.pdf

Please provide your comments by next Friday 1/21/2011.

Thanks,

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



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

Reply via email to