On 11/ 9/10 08:46 PM, Karen Tung wrote:
>   Hi Darren,
> 
> Please see my response inline.
> 
> On 11/ 9/10 09:32 AM, Darren Kenny wrote:
>> Hi Karen,
>>
>> Thanks for the review.
>>
>> On 10/25/10 11:55 PM, Karen Tung wrote:
>>>    Hi Darren,
>>>
>>> Very nice and clear spec, I do have a few comments:
>>>
>>> - The engine provides the ability to stop/resume.  I know that's probably
>>> not a normal use case for the AI application.  Is there any plan to
>>> provide that as a private feature somehow for the AI developers or
>>> those debugging AI to save sometime?
>> It's certainly very likely since I'm sure Matt and myself could use it too,
>> should I be documenting this in the design, or just in a README?
>>
> I asked that question because I was wondering whether you are
> going to provide some sort of "interface" to use the stop/resume feature.
> I guess if it is something that others can use as well, it would be
> better to document it in a README or something that the users will
> read, since it is unlikely users will be reading the design spec.

Ok, I'll use a README to document such features.

> 
>>> - Section 3.3: dry-run: will it be supported at all?  If so, how?
>> Forgot about dry-run - certainly if checkpoints support it - but I wonder how
>> much is feasible in dry-run mode only when doing an install - especially 
>> around
>> the TI stage...
>>
>> AFAIR some checkpoints (via the Engine) support dry-run, so it should be
>> possible to use that, shouldn't it?
> The engine passes the dry-run flag specified by the application down to the
> checkpoints.  It is up to the checkpoint to interpret and provide the 
> dry run support.

I'll add a dry-run flag to the application, but each checkpoint will need to
ensure that they handle the flag appropriately.

> 
>> Still, it's a developer feature rather than end-user, isn't it?
> I am not sure whether you can qualify that as an end-user or
> a developer feature.  Dry-run is a feature that was requested
> by the test team.    I imagine that will be a very useful feature
> for developers as well.  Might also be useful for debugging.  For example,
> if I am trying to figure out why a certain disk is selected, but
> I don't want the data on the disk to be destroyed.

Agreed.

>> I may look at adding a 'developer' appendix if it's useful - what do you 
>> think?
>>
> IMO, we need to distinguish between supported interfaces,
> and unsupported interfaces.  It is up to the user, regardless developers
> or end users, to use those interfaces.  Then, it will be useful to show
> some use cases of how developers and end users might use these
> support and/or unsupported interfaces to do their work.

True. Supported interfaces will be documented in the design, and visible in the
usage, etc.

I will document the unsupported interfaces in the README.

>>> - Section 3.3: "Run the install" section, will progress be reported as a
>>> percentage?  Or
>>> people just see progress because they see something posted in the log file?
>>> Is the AI app going to register a progress handler with the logger to
>>> pro-actively
>>> get the progress and log it?
>> Good question, and Dave also raised this (due to some bugs in this area).
>>
>> I've not figured out how to report progress, other than the current way 
>> which is
>> via the log file, which is the current solution.
>>
>> I will probably send out an e-mail to discuss this further.
> OK.
>>> - Section 3.3.1.1: "Register checkpoints" bullet.  It would be useful
>>> to list the exact list of checkpoints and their names used in the AI app
>>> in the design spec
>>> somewhere to make sure that the if we ever change the names for
>>> <software>  in the manifest,
>>> we know what might get affected in the code.
>> I've been trying to explicitly avoid the need to expose this.
> Well, since this is the design specification, I thought it would be a 
> fair place
> to put it.  That way, the reviewers of the design can confirm that the
> right set of checkpoints are used in the right order...etc...
> 
> I completely understand that this is not going to be an interface for 
> the users.
> So, we won't put it in any user documentations or any configuration files.

That's fine then, as long as it's not seen as part of the API :)

>> While I know the Transfer Software nodes need a matching checkpoint, I've 
>> been
>> talking with Ginnie and Jean about having a Transfer factory method that 
>> would
>> generate the checkpoint from the software node - that way the name (if 
>> provided)
>> in the manifest doesn't have to match the internal name of the checkpoint,
>> rather it's likely that the checkpoint will do the opposite and match the 
>> name
>> in the manifest...
>>
>> Also, there is not requirement to have a name in the manifest, so that's also
>> something to be looked at - and generating dummy names if none is specified.
>>
> Good idea..  I don't really like matching Software node names and checkpoint
> names either, but that was the best solution we came up with earlier.
> I am glad that we are revisiting that again.

Me too.

>>> - Section 3.3.1.1: "Execute the install" bullet.  This indicates that all
>>> checkpoints will be executed without interruption by the engine.
>>> Will the checkpoints be executed with stop-on-error equal to true?
>>> It might be useful for stop-on-error to be false for some of the ICT
>>> related checkpoints.
>>
>> That's interesting - I would have thought that it better to fail totally than
>> continue in an AI case, I'll mention it anyway.
>>
> When we worked on the text installer earlier this year, I remember we
> had to make a change to handle cases where we allow the installation
> to complete despite some non-critical ICT failures.
> So, I think this will be an interesting area to consider, not just for 
> AI, but
> for the other installers as well.
> 

That's good to know.

>>> - 3.3.1.2: Why is the AIFileHandler Class needed?  You can just add a
>>> new FileHandler pointing to a location other
>>> than where the default log is, if you don't want to use the default log.
>> Agreed, we just copied this from DC :)
>>
>> But after looking close, there is good reason for it in DC since the output
>> directory might not exist, so it caches logged messages until it does 
>> exist...
>>
>> So to sum up, this doesn't apply for us, so removed it.
>>
> OK.
>>> - 3.4.2: second bullet, 2nd sentence.  This talks about checking every
>>> <software>  node
>>> has a corresponding checkpoint.  For DC, it is about consistency,
>>> because the DC user
>>> specifies both the checkpoint name and the software node name.  So, we
>>> want to make sure
>>> they are the same.  For AI, the user only have control on the<software>
>>> node in the manifest.
>>> They should not have knowledge or control over the name that's used for
>>> the checkpoints.
>>> For the AI app, I believe it's important to make sure they are
>>> consistent in case either the
>>> AI app or the manifest is updated in the future, and things get out of sync.
>> As mentioned above, we are looking at ways of not having to care about the 
>> name
>> of the<software>  node in the non-DC applications. If this works we don't 
>> need
>> to worry about there being a need to match the names in the user's XML 
>> provided,
>> it'll be taken care of internally - and by the Transfer module.
>>
>> I'll put in some text to describe this proposed changes.
>>
> OK.
>>> - 3.4.3, first bullet, "DeviceDriverUpdateLive".  I asked Jack, he told
>>> me that the result
>>> of "search all" gets saved somewhere after it is applied to the live image.
>>> That way, after install, the same drivers will get installed to the new
>>> BE without
>>> having to do the search again.  Will these results be saved in the DOC
>>> somewhere?
>> The exact details of that I've not figured out, I do know that they are
>> remembered from the Live BE install - the DOC would be the correct place to 
>> put
>> it ideally, but that will depend on what the current DDU python code does.
>>
>> I've added this to the document here too.
>>
> OK.
>>> - Section 3.4.8.2: which class will be registered with the engine?
>>> BootConfigurationBaseCheckpoint
>>> which will make decision based on whether the architecture is x86 or
>>> Sparc? or
>>> the actual BootConfigurationSPARC and BootconfigurionX86 checkpoint will
>>> be registered?
>> The one registered would be the one that is appropriate.
>>
>> The call would be something like:
>>
>>    (cp_path, cp_class_name) = BootConfiguration.get_checkpoint_info()
>>    engine.register_checkpoint("boot-config", cp_path, cp_class_name)
>>
>> So the get_checkpoint_info() method would get the appropriate one.
>>
> Sounds good.
>>> - Section 3.4.8.5: Just curious, are we going to use the manifest-writer
>>> in anyway for this?
>> At the moment, no - I'd like to focus on the replication of existing
>> functionality, but it's certainly something we can look at later.
>>
> OK.
> 

Thanks,

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

Reply via email to