Hi Sarah and Dave,
Perhaps, as I'd love to see create-client go the way of the dodo,
this would be integrated into a dry run feature? The client data could be
provided and then the server would specify why a particular manifest was
chosen doing manifest selection and derived profile generation; then the
feature would run the semantic validation against that chosen manifest -
again providing reasons for any failures.
That seems to be a logical way to support such a thorough check. I
agree that is seems manifest publication time wouldn't be when to do such
a specific check as the manifest may be intended for any number of
clients. Perhaps I'm just being unimaginative though?
Thank you,
Clay
On Wed, 20 May 2009, Sarah Jelinek wrote:
> Hi Dave and Jack,
>
>>>>>
>>>>
>>>> I'd view it as an important requirement that we be able to perform full
>>>> semantic verification on the server. Why is this regarded as optional?
>>> It's not that it's optional on the server, it's that the server cannot
>>> provide the full client context to do full validation. Of course we want
>>> to do as much validation as we can on both the server and the client.
>>>
>>
>> I would expect that a user could supply whatever context we desire to use,
>> either synthetically or via importation of some client context that was
>> generated from a real client. From the point of view of the validator, the
>> client is just a bunch of parameters, which can also be supplied via other
>> avenues. Requiring real, live clients in order to validate thus seems
>> unnecessary.
>
> I don't think in all validation scenarios we require real, live clients. But,
> we have to know that some validation is not possible if we don't have the
> context for which we are doing the validation. The issue with some of the
> semantic validation, specific to the client, is that beyond simple 'syntax'
> checking or format checking of something like a target device specification,
> without a live client or a set of client data that provides this information,
> it is hard to validate the schema. So, are you proposing we provide for
> 'importing' the client data if the user so desires so we can do more
> contextual validation when setting up a service? I am not sure why we would
> want to do that actually.
>
> Seems to me a service is independent of the client. Clients discover
> services, and one service will be used to produce an installed system, but
> the manifests that are provided in that service may apply to many clients.
> Providing this contextual semantic validation as a user is setting up a
> service seems to break what our model is. As you note, we would have to have
> some data regarding the client to do this type of validation, which implies
> that the user setting up the service would have to know which clients the
> service applied to, if they wanted to make use of it.
>
> During specific client setup, that is installadm create-client, we could do
> this.
>
> sarah
> ****
>
>
>
>
>>
>>> In response to your reply to Clay:
>>> > Wouldn't it be desirable to be able to construct a virtual validation
>>> > "environment" on the server based on user input? Let them specify
>>> > the disk configuration, the memory, etc. and validate against it. Such
>>> > functionality would seem to be necessary in order to effectively test
>>> > this, wouldn't it?
>>>
>>> Please elaborate, because as I understand, I'm not sure this is feasible
>>> so I may just not get what you're saying.
>>>
>>> For example, as Clay said in his first response, in the case of a disk
>>> configuration, how would the user know that such a disk by that name
>>> really exists on the client? We can't assume the client is up and
>>> available, or even if it is up, that the disk would have that name in its
>>> currently-booted OS instance.
>>
>> See my note above about synthetic environments. If our only answer to
>> testing out sets of criteria is to "boot and hope", then I think we've
>> fallen far short of what's possible.
>>
>>>>
>>>>> Problem statement 1: AI's multiple parsers present unneeded
>>>>> complexity and unmaintainability.
>>>>> ===========================================================
>>>>> - Things to consider for a single parser:
>>>>> - functionality for data retrieval and search, schema compatibility,
>>>>> how supported / maintainable is the parser
>>>> ...
>>>>> The main argument for using lxml would be that it is supported from the
>>>>> outside. However, that ManifestServ is supported by us means we can
>>>>> more
>>>>> easily tweek it to add any needed functionality which remains. If lxml
>>>>> were
>>>>> used, we would have to fix our code which interfaced with it if it
>>>>> changed, but
>>>>> we would have to do the same for ManifestServ if libxml2 changed.
>>>>>
>>>>
>>>> It wasn't entirely clear from the discussion in the notes that we've
>>>> actually identified requirements that lxml doesn't meet. Do we have
>>>> that?
>>> lxml meets most of the requirements we would need, but it would require
>>> some work writing new wrapper code to use it, and ManifestServ has this
>>> already done. For example, lxml does have something we can use for
>>> semantic validation but would require event handlers and other code to
>>> make it work. ManifestServ already presents a complete system for this
>>> using libxml2. lxml won't buy us anything more than what ManifestServ
>>> already delivers, and will require an effort to make it useful which isn't
>>> required with ManifestServ.
>>>
>>> One shortcoming of lxml vs ManifestServ is that it doesn't have as good of
>>> a capability for narrowing of matches based on values of multiple child
>>> nodes.
>>>
>>
>> I don't have any particular bias one way or another, but there's up-front
>> vs. on-going effort involved in any choice made, and I'd expect to see some
>> evaluation of those trade-offs in the design proposal.
>>
>> Dave
>> _______________________________________________
>> 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
>