Sarah Jelinek wrote:
> Jean McCormack wrote:
>> Ethan Quach wrote:
>>>
>>>
>>> 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.
>>>
>>> This wasn't what I was thinking dryrun to be. If dryrun is just
>>> stopping at a specific step, why are we defining dryrun as an
>>> entity at all? I was thinking dryrun to be a complete end-to-end
>>> run of the install process, minus any disk write activity.
>> In fact, the disk activity is all at the end so it's the same thing. 
>> However, now you're making
>> me take a step back and I see why people are confused. I'm thinking 
>> from looking at the current
>> code too much. In that case they are the same thing. However this 
>> design needs to think about the fact that
>> they may not be. So dry run will be different and will be as stated, 
>> the install process minus the disk activity.
>
> I think defining dry run as stopping at a specific set is ok. The step 
> we would stop at is the part right before the disk activity, that is 
> target instantiation. So, by defining dryrun as an ease of use as 
> stopping at this step seems like it is the same as stopping.
>
> Dryrun is effectively doing everything up to the point of modification 
> of the system. So, even if we have an engine that does things 
> differently than we do today, we still have to do certain things to 
> get to the point of modification of the system, right?
>
> The following has to be done in order(I think):
> -target discovery
> -some choice of target disk based on installer type
> -gathering of user input, either GUI or manifest or ?
> -Putting that user input, plus installer determined data in to a 
> format understood by the 'engine'.
> -running the engine.
>
> So, dryrun is the stop point before 'running the engine'. Am I 
> thinking about this incorrectly?
I became concerned that with a different design there could be something 
that happens after running the engine. So stating
more clearly seemed appropriate. I believe they actually are one and the 
same at this point in time.

Jean
>
>>
>> Jean
>>>
>>> I was also thinking that dryrun is totally separate from the
>>> start/stop points feature, but that they could be used together
>>> if desired.
>>>
>>>>
>>>> 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.
>>>
>>> How does the recorded information at a stopping point get
>>> fed back into the installer when user decides to start the
>>> install again?
>> Sarah and I discussed the possibility of recording the information in 
>> a file which gets read when the install is restarted. That  
>> discussion was meant as an exercise in "can we do this" and not meant 
>> as a implementation decision.
>
> Right, we just talked mostly about could we do it. how we do it is 
> another discussion.
>
>>>
>>> Once a stop has occurred, can we resume from where we
>>> stopped? Can we resume and also tell it where to stop next?
>>> Do we have to always restart from the beginning again?
>> We can resume from where we stopped and tell it to stop again. We do 
>> not need to restart from the beginning.
>
> Or, we can restart from the beginning. That, however is a special 
> case. That is, if the installer is asked to restart after say having 
> created a root pool, it would have to know to clean up the original 
> root pool and anything else it did before starting over.
>
>>>
>>> As a developer, I find it useful to be able to:
>>>
>>> 1. stop, get a shell to poke around, resume the installation from
>>> where I stopped.
>>> 2. stop, get a shell to poke around, restart the installation from
>>> some point I've already passed.
>>> 3. stop, get a shell to poke around, restart the installation from
>>> the beginning.
>> We should be able to do these.
>>>
>>>
>>> the "get a shell to poke around" part is really not an issue
>>> for AI, since there's always the console login shell available
>>> for that.
>>>
>> Yes.
>>>>
>>>> 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.
>>>
>>> Are dryrun and the start/stops points functionality intended to
>>> be supported public user interfaces? 
>>
>> dryrun should be since test will be using it and people who are used 
>> to the similar functionality in jumpstart may want it.
>> I'm not so sure on the start/stop functionality. My inclination is to 
>> say no but I'd like to hear reasons for either side.
>>
>
> I wouldn't think stop/start should be exported as public. Dryrun 
> should be.
>
>
>
> thanks,
> sarah
> *****
>> Jean
>>>
>>>
>>> thanks,
>>> -ethan
>>>
>>>>
>>>> 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
>>
>


Reply via email to