Jean McCormack wrote: > Karen Tung wrote: >> Hi Jean, >> >> In a few places in your message below about requirements from the >> engine, >> you mention that the engine should "provide defined points....". >> Do you mean to say that these stop points would be defined by the >> engine? >> I think that it is kinda limiting to have the stop points be defined >> by the engine. >> Each installer is different and it might make sense for them to stop >> at different points. >> I think it makes more sense for the engine to have the ability to >> accept the >> definition of stop points, and be able to stop and resume from those >> points somehow. > When talking with Sarah it actually became very blurred where the > lines are drawn. I believe, > correct me if I'm wrong Sarah, that the engine redesign will have more > clear functional blocks. > Like target discover, target initiation, transfer of bits. Then we > have more specific code to put into > these blocks. Those would be the defined points to stop at.
It is blurred where the lines are drawn. The way I see the engine at this point is that it provides common functionality used by Caiman installers. So: -target discovery -target instantiation -installation of bits -setup for postinstall tasks if we want to stop at any point during these tasks I would think the engine would have to define what was doable. Otherwise the user would have undefined results. I think that each of these tasks are stop points, that is that each of the above are 'atomic' in terms of defining a task that you can stop before or after. Stopping in the middle of say installation of bits doesn't provide anything that I can see as useful. sarah **** > > Jean >> >> --Karen >> >> Jean McCormack wrote: >>> Sarah, >>> >>> Thanks again for the input. I'll try to recap here a bit of what we >>> talked about on the phone. >>> >>> - We agreed that for dry run, having an easily parsable output with >>> the information used to determine the install >>> would be fine even if it's just a matter of outputting what the put >>> in. After talking with Andre, given the current options >>> these are target disk, slice/partitioning changes, IPS repo to use, >>> packages to install, packages to uninstall, auto reboot or not, >>> user account to install (username, user password, description, root >>> password and timezone) and hostname. >>> >>> Requirement upon the engine: The ability to collect data in user >>> readable format along the way during an install. And retain that >>> data for later output. >>> >>> - We had some confusion about dry run vs stopping. I believe we came >>> to agreement that dry run would be equivalent to >>> stopping at a specific step. That step would be before there were >>> any changes to the disk but after all the computation >>> of what/where has been done. >>> >>> Requirement upon the engine: Provide defined points where stopping >>> an install would work and not modify the user system(in the case of >>> dry run). >>> >>> - We don't really need the pause/resume functionality. We do need >>> the ability to keep information that was in memory that will then be >>> provided to the client when a restart is done. An example is the >>> target disk. >>> >>> Requirement upon the engine: Provide the ability to stop and restart >>> retaining internal state information needed for the install to >>> continue from a restart. >>> >>> Requirement upon the engine: The ability to stop and restart the >>> engine at defined spots. >>> >>> Items we didn't discuss but I want to get out there. The user >>> interface. For dry run and stop, we need to allow the user >>> to reboot with options that will indicate the action they want >>> performed. To do so, we can modify the boot line to contain >>> either dryrun or a step to stop at. The boot line modification would >>> be performed with use of the installadm create-client -b >>> <property=value> flag. property would be stop_at, value would be >>> dryrun or a step. >>> >>> Jean >>> >>> >>> Sarah Jelinek wrote: >>>> Hi Jean, >>>> >>>> A few comments/questions inline... >>>>> >>>>> One of the areas to address in the client redesign is the issue of >>>>> client control by the user. >>>>> >>>>> Following are some thoughts based on discussions with various >>>>> people. This >>>>> is not meant to be a full fledged design put out for review but >>>>> rather the start of a discussion with the community. >>>>> >>>>> There is currently the desire to have some user control over the >>>>> client portion of the automated installer. A dry run capability >>>>> has been requested for test and any others who might find such a >>>>> capability useful. >>>>> >>>>> It is desired to have an easily parsable output that would contain >>>>> the information needed to determine what the install would look >>>>> like. This would be the same type of information that the user >>>>> selects on the slim_install screen. Requirements of the data >>>>> needed would need to be obtained >>>>> from test and the community. >>>> >>>> In the case where the user has not specified a 'target' device, or >>>> other algorithmically determined choices that AI does, then I can >>>> see why outputting the results that would have occurred. If the >>>> user defines things specifically then would we just provide their >>>> input as the output? or are you expecting that we would do some >>>> processing in the engine that would determine if we came up with >>>> the same data? I can't see how this would be different from what >>>> the user specified. >>>> >>>> >>>>> The ability to be able to stop the client and restart it later >>>>> has also been requested by development to ease the debug process. >>>>> The dryrun capability is actually a specific case of the ability >>>>> to stop the client. >>>>> >>>> >>>> Seems to me that dry run is more than just a specific case of >>>> stopping the client. The install either runs or not. With dry-run >>>> it doesn't run, but it does go through some processing to determine >>>> what the installed system would look like. Stopping and starting >>>> the client similar to what DC does today with checkpointing would >>>> result in some changes to the client, correct? >>>> >>>> >>>>> The client contains quite a bit of state information making >>>>> stopping and restarting at more than a few places not feasible. >>>>> However, a pause/resume >>>>> type functionality, where the process would remain running until >>>>> told to resume, >>>>> would provide the ability to give the user many more points to >>>>> interact with the install. >>>>> >>>>> >>>> Why couldn't we use zfs snapshots to enable a stop/start feature? >>>> Is there state outside what we have done to the alternate root that >>>> we keep in the client in some other way? >>>> >>>>> The idea was discussed to put the "dryrun" request or the stop or >>>>> pause request on the >>>>> boot line. The dryrun request would be aliased to stop <stop point >>>>> just before modifying disks and installing>. >>>>> There would also be a stop option which would be a hard stop of >>>>> the program. Execution would be >>>>> stopped and state present in the program is lost. The user would >>>>> need to specify at which step to stop. How to make the user aware >>>>> of possible steps has not been discussed and >>>>> is open for ideas. The auto-installer method would then need to >>>>> allow the user to specify a start >>>>> option to restart execution from the stop point. We could allow >>>>> step specification on the start >>>>> in case a user wanted to back up to a previous step. There still >>>>> needs to be investigation as to >>>>> whether this type of action would yield correct results. >>>>> >>>>> There would also be a pause option which would allow the user to >>>>> pause >>>>> the execution of the program waiting for some further input to >>>>> resume execution. >>>>> User input methods discussed were actual keyboard input or a >>>>> signal of some kind. This functionality >>>>> would allow the user to interact with the installer at many more >>>>> points where state needs to be preserved to continue running. >>>>> Again, how to make the user aware of the potential pause points >>>>> hasn't been addressed yet. >>>> >>>> From the install 'engine' point of view it seems the requirements >>>> from this project to the engine project are: >>>> -The ability to collect data in user readable format along the way >>>> during an install. And retain that data for later output. >>>> -Provide defined points where stopping an install would work and >>>> not modify the user system(in the case of dry run). >>>> -If it is decided that checkpointing is something we want to do for >>>> users with regard to the AI client, then the engine would have to >>>> be modified to provide the set of points where this is possible >>>> without loss of data. >>>> >>>> -The engine would also have to be responsible for the >>>> 'snapshotting' >>>> of the data to enable restarting after a stop. >>>> >>>> thanks, >>>> sarah >>>> >>>> >>>> >>>>> >>>>> Jean >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> caiman-discuss mailing list >>>>> caiman-discuss at opensolaris.org >>>>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss >>>> >>> >>> _______________________________________________ >>> caiman-discuss mailing list >>> caiman-discuss at opensolaris.org >>> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss >> >