On 01/14/11 09:45 AM, William Schumann wrote:
Dave,
Responding to particular questions inline:

On 01/12/11 09:51 PM, Dave Miner wrote:
On 12/21/10 11:32 AM, William Schumann wrote:
Requesting code review for enhancements for service configuration
profiles in the Automated Installer.
http://cr.opensolaris.org/~wmsch/profile/

...
create_profile.py

214: Is continuing here the right thing to do when we're creating multiple 
profiles?  Does the user have a straightforward way to
clean up in the face of a partially completed "transaction"?
The user will be informed of profiles that fail to be added.  There will be no 
cleanup necessary.  The user will be expected to take
note of profiles that were not created, correct the problem for those in error, 
and resubmit them.

So what happens if I correct the ones that failed, and then re-submit the same command line with the ones that were added? What I'm trying to understand is whether the user ends up with a tedious experience or one that is easily resolved.

Other failures in this loop (such as at 261, 266) will cause the transaction to 
be aborted, so I'm concerned that inconsistent
semantics here will be challenging to support.
Will correct these to print an error message for the input profile in question 
and processing will continue to the next input profile.

delete_profile.py

93: Assuming I understand this right, providing a name that doesn't exist will 
abort the transaction at that point, but other
failures later on (111, 119) will continue.  As with create, I think consistent 
error semantics would be a good idea when handling
multiple objects.
This is like the errors just above.  Will correct in the same manner.

locate_profile.py

285: I'm doubtful this validation is the right thing to do.  It seems to 
pre-suppose that the server will have the same DTD the
client would have in the boot service, but that seems to impose a requirement 
on the server that it be updated to the latest
possible version of the DTD, which is generally undesirable to require from an 
operational point of view.  Or am I
misunderstanding how this would work?  This presumably could impact the 
validate_profile_string() function in common_profile.py, too.
This is a service_bundle DTD validation by the CGI, taking place after XML 
validation.  It's original purpose was to validate a
dynamic profile completely (files can be in the user's space), since the user 
would be free to break it after submitting it with
'installadm create-profile'.  The same DTD validation occurs for all profiles 
in create-profile.  If a DTD-level validation does not
occur on the server, it could be quite some time before the user discovers the 
error - some time during or after the installation
(or upon rebooting if not careful).  It assumes that the AI server has a copy 
of the service_bundle DTD with the correct version for
the service in question.  If the user does not update the package delivering 
service_bundle, it will have to be obtained by other
means.  It is assumed that versions of service_bundle will be differentiated by 
the version indicator at the end the file name,
currently :1, so that it can be copied to /usr/lib.  It is expected that under 
normal circumstances, the AI server is upgraded to
the level of the OS being installed.

To summarize the last paragraph:
- the correct service_bundle DTD would be required for 'installadm 
create-profile', too
- it is better to validate against the service_bundle DTD and require 
operational adjustments in the odd case, which should mean
only copying the DTD of the needed version.


I don't believe this is workable, it requires a great deal of manual fiddling by the user to achieve correct results (seemingly including installing packages that are mis-aligned with the server release) in cases where the server and clients are skewed, which are *very* common. Unless we can come up with a better answer where the, this can't remain.

Dave

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

Reply via email to