[wildfly-dev] Add a warning if some configuration change has wider impact and could cause error?

Bartosz Baranowski bbaranow at redhat.com
Mon Jan 9 01:55:52 EST 2017


Thanks Brian.

----- Original Message -----
> From: "Brian Stansberry" <brian.stansberry at redhat.com>
> To: "Bartosz Baranowski" <bbaranow at redhat.com>
> Cc: wildfly-dev at lists.jboss.org
> Sent: Friday, January 6, 2017 5:24:42 PM
> Subject: Re: [wildfly-dev] Add a warning if some configuration change has wider impact and could cause error?
> 
> Any opinions? This is basically a proposal to provide a formal way of
> including warning data in operations responses.
> 
> If we did it it would probably be something like:
> 
> {
>   “outcome”=>”success”,
>   “result”=>”foo”,
>   “response-headers”=> {
>     “warnings”=[
>         “blah blah blah”,
>        { “some_complex_issue: details”>[“x”,”y”,’z”]}
>     ]
>   }
> }
> 
> So a standard response header whose value is a list of ModelNode, different
> messages using different node structures, but the norm being a simple
> string.
> 
> Probably OperationContext would need to add a method addResponseWarning to
> take the details of constructing the header out of the hands of the handler
> authors.
> 
> We’d have to make sure these headers propogate properly through the domain,
> so the effort is more than simply getting standalone.

Most likely. I have very little experience with mgmt ops code in domain mode.

> 
> If the operation is a composite, there are no per-step response headers so
> the warning should not assume that the context of the warning is obvious.
> Warning authors forgetting that point is a possible source of UX issues.

In such case I think either warning has to be very explicit(detailed what/where/why) or it would become 
complex type:
 {
   “outcome”=>”success”,
   “result”=>”foo”,
   “response-headers”=> {
     “warnings”=> {
        warning => {
           operation => { address,name,parameters}
           message = [""]
           },
        warning => {
           operation => { address,name,parameters}
           message = [""]
           }
     }
   }
 }

or

{
   “outcome”=>”success”,
   “result”=>”foo”,
   “response-headers”=> {
     “warnings”=> {
        warning => {
           step => ["1"]
           message = [""]
           },
        warning => {
           step => ["2"]
           message = [""]
           }
     }
   }
 }


Though second option might be too cryptic for console users, unless it is well supported.

> 
> Is this worth the effort? This is driven by this one WFCORE-1987 issue, which
> is a bit unusual and in an ideal world would go away. But here’s the general
> pattern involved:
> 
> 2 attributes in separate parts of the model should be consistent or you wil
> get bad runtime behavior
> User can use a CLI batch to set them both atomically, but web console users
> can’t do that, so even if the user will do the right thing there will be a
> moment where they are inconsistent
> So, failing is not good (forces users to use CLI + batch)
> For the same reason a WARN in the log is not great, as unrelated users may be
> required to react to log warns, and will be annoyed by seeing them just
> because their colleague didn’t use a batch
> 
> Is that last statement enough reason to add this functionality vs just using
> the server log to warn, or just not warning at all?

No warning at all is a bad thing. Unless user is very experienced, such UX will be 
perceived as a bad design - well, unless exception/failure will be descriptive enough.
Imagine that you change one tiny detail and server fails to boot up some, seemingly 
unrelated service.

So as is, it seem to be a question of fixing current failure message( which for instance
, in case of WFCORE-1987, does not seem viable) vs standardized warning mechanism. 

> 
> In theory we could use the same facility to report management API deprecation
> warnings back. Doing that might be annoying though. Those are a less serious
> problem than this WFCORE-1987 thing.
> 
> 
> > On Jan 3, 2017, at 1:06 AM, Bartosz Baranowski <bbaranow at redhat.com> wrote:
> > 
> > Hey guys.
> > 
> > 
> > In some cases there are/will be conf changes that might require user to
> > make additional change, for instance [1].
> > In this case, if user does not edit the name in two places, when remote
> > client tries to reach out, it will fail.
> > 
> > As far as I remember, there as of now, there is no formal constraint
> > feature for config values.
> > I've talked with Brian about this and it seems and viable option would be
> > to simply add a header to response.
> > In CLI, it would be clearly visible, in console, it would require a bit  of
> > hacking to present
> > information/hint what needs to be done to configuration to make it work
> > properly.
> > 
> > 
> > Any thoughts?
> > 
> > [1] https://issues.jboss.org/browse/WFCORE-1987
> > _______________________________________________
> > wildfly-dev mailing list
> > wildfly-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/wildfly-dev
> 
> --
> Brian Stansberry
> Manager, Senior Principal Software Engineer
> JBoss by Red Hat
> 
> 
> 
>



More information about the wildfly-dev mailing list