I'm currently updating the transfer module to reflect the design specified in the DC documention. I'd like to make sure it fits the needs of others too so here's the general idea of what I'm doing.
The Transfer module lays out the bits onto the disk. There will be 2 ways of doing so, using cpio and IPS. There will be 2 possible cpio transfer methods, one will cpio the entire contnets of the src directory to the destination directory, the other will cpio files listed in a specified file to the destination directory. Currently there exists the code to cpio an entire directory. This code is being looked at to make it independent of live CD functionality. It should just cpio the files from one directory to another, and deal with the issue of zero length files. The directory to cpio from will be provided in TM_CPIO_SRC_MNTPT and the mountpoint to cpio the files to will be specified in the attribute TM_CPIO_DST_MNTPT. The new function to cpio a filelist of files will accept a file which will list all of the files to be cpio'd to the designated mountpoint. This will be specified in the attribute TM_CPIO_LIST_FILE. The user will be allowed to specify a source mountpoint that all the files in the filelist will be referenced from. This is optional and will be specified in TM_CPIO_SRC_MNTPT. The destination the files will be cpio'd to will be specified in TM_CPIO_DST_MNTPT and is manditory. Zerolength files will not be detected or corrected. A new function to perform IPS initialization will need to be created. It will perform the equivalent of the following: pkg image-create -F -a opensolaris.org=TM_IPS_PKG_SERVER TM_IPS_MNTPT. A new function to perform IPS verification will need to be created. It will need to verify that the packages listed in TM_IPS_PKGS are contained in the repository located at TM_IPS_PKG_SERVER. A new function to perform IPS retrieval will need to be created. The function will retrieve the packages listed in TM_IPS_PKGS. Interfaces: TM_ATTR_MECHANISM uint32 Selects type of transfer Available transfer types: TM_PERFORM_CPIO TM_PERFORM_IPS Attributes describing CPIO transer TM_CPIO_ACTION int32 selects which cpio action to perform Available cpio actions: TM_CPIO_ENTIRE TM_CPIO_LIST Attributes describing cpio entire transfer TM_CPIO_DEST_MNTPT TM_CPIO_SRC_MNTPT Attributes describing cpio list transfer TM_CPIO_DEST_MNTPT TM_CPIO_SRC_MNTPT (optional) TM_CPIO_LIST_FILE Attributes describing IPS transfer TM_IPS_ACTION Available IPS actions: TM_IPS_INIT TM_IPS_VERIFY TM_IPS_RETRIEVE Attributes describing IPS initialization: TM_IPS_PKG_SERVER TM_IPS_INIT_MNTPT Attributes describing IPS verification TM_IPS_PKG_SERVER TM_IPS_INIT_MNTPT TM_IPS_PKGS Attributes describing IPS retrieval TM_IPS_INIT_MNTPT TM_IPS_PKGS