Jack Schwartz wrote: > Hi Jean and Karen. > > On 05/27/09 13:47, Jean McCormack wrote: >> Karen Tung wrote: >>> Hi Jean, >>> >>> Some comments in-line. I also have a question at the end of this >>> discussion. >>> >>> Jean McCormack wrote: >>>> >>>> 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. >>>> 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. >>>> >>>> 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. >>> Given the requirements you stated above, I think that one way that >>> would work to solve the problem is >>> to create a "complete final manifest" file after all the >>> pre-processing by the client (choosing the disk, slices...etc..). >>> This file could even include all the state information that's needed >>> to actually start the installer. >>> If pause/stop is not selected, the file will be passed directly to >>> the installer engine. If pause/stop is selected, >>> the installer engine can restart when given this "final manifest" >>> with all needed info to restart. >>> That way, the user will know for certain what parameters are used >>> for the install. >>> If they want, the user can even save this file somewhere and use it >>> as input for the next time >>> they do AI install, and they know for sure what will happen. >> That's actually something similar to what Sarah and I discussed. Some >> file to contain the state. We'll need to retain this idea for use >> during our detailed design phase. >> >>>> >>>> >>>> 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. >>> If we have the "final manifest" described above, the installation >>> steps can be broken up, >>> and the install can stop and restart at anytime just >>> like DC does today using ZFS snapshot, since we would have all the >>> information needed for the whole install. This assumes >>> that no other state information is generated that need to be passed >>> around after the installation starts. >>> Is there such info that you know of right now? >> There are parts of the install where zfs snapshots aren't available >> yet. So depending upon that functionality at this point isn't >> something we want to do. >> >>> >>>> >>>> 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. >>>> >>>> Jean >>>> >>>> >>> With your design on this component, what kind of semantic validation >>> are you planning to do with the user's input? >>> When are you planning to do the semantic validation, and how are you >>> going to do the validation? >>> I am asking because in the semantic validation part of >>> the XML parser redesign effort, I would need to have this kind of >>> information. >> At this point in time, I'm not sure it will need any semantic >> validation from the XML parser. Since the manifest comes in rather >> late in the install, it's not the preferred way of interacting with >> the user. > Surely a user will be able to explicitly state a field in a manifest. > What about users and passwords? Those aren't going to be derived or > determined by the installer. There's also been lots of discussion > about disk specifications in the manifest. These fields also include > fields which, when not explicitly specified by a user, would otherwise > be given a derived default value. > > As long as there is user input in a manifest which requires validation > above the syntax checking afforded by schemas, then there is a need > for semantic validation. > > > A different issue is *where* that semantic validation will be done. > Will it be done in the parser, or will it be done in the installer > code itself? IMO it is more maintainable to do it in the parser, > because both the server and the client can do the checks from the same > "template", and keep all validation code in one place. > > This assessment is part of the XML parsing work AI is one customer of > that work. If all projects (AI and DC) decide parser-based semantic > validation isn't needed, then it doesn't need to get done. Please let > the XML parsing rework team know.
Sorry. I thought Karen was talking explicitly about the user control issue. For that I didn't see anything beyond what the client project in general needs. Have you received the client project requirements? Jean > Thanks, > Jack >