Hi Jun,

Thanks for the review.

On Thu, Apr 27, 2017, at 14:21, Jun Rao wrote:
> Hi, Colin,
> 
> Thanks for the KIP. Looks good overall. Just a few minor comments.
> 
> 1. The controller is responsible for managing the state of topics. So, it
> makes sense for create/delete topic requests to be sent to the
> controller.
> The controller is not responsible for managing ACLs right now. So, it's a
> bit weird to send acl requests only to the controller. Sending the acl
> request to any broker is more intuitive and easier to implement.

That's a fair point.  I'll change it so that we can send these to any
broker.

> 
> 10. Since we may add new operations in the future, perhaps use 0 for the
> ALL operation?

OK.

> 
> 11. "That is, ListAclsRequest(principal=none) will return all ACLs". Do
> you
> mean principal == null?

Right, this meant principal == null.  I'll make that a little more
explicit.

> 
> 12. "Principals must possess Cluster:All permissions to call
> CreateAclsRequest". All just means all types of operations. So, we need a
> specific operation that allows CreateAclsRequest. Will that be
> ClusterAction or a new one?

Yeah, let's use ClusterAction here.

best,
Colin

> 
> Jun
> 
> On Mon, Apr 24, 2017 at 10:57 AM, Colin McCabe <cmcc...@apache.org>
> wrote:
> 
> > Thanks for taking a look, Ismael.
> >
> > On Mon, Apr 24, 2017, at 04:36, Ismael Juma wrote:
> > > Thanks Colin. A few quick comments:
> > >
> > > 1. Is there a reason why AddAclsRequest must be sent to the controller
> > > broker? When this was discussed previously, Jun suggested that such a
> > > restriction may not be necessary for this request.
> >
> > Hmm.  I guess my thinking here was that since the controller handles
> > AddTopics and DeleteTopics requests, it would be nice if it had the most
> > up-to-date ACL information.  This was also in the original KIP-4
> > proposal.  However, given that auth is ZK (or a pluggable system,
> > optionally) there is no inherent reason the controller broker has to be
> > the only one to make the change.  What do you think?
> >
> > >
> > > 2. Other protocol APIs use the Delete prefix instead of Remove. Is there
> > > a
> > > reason to deviate here? If there's a good reason to do so, we have to fix
> > > the one mention of DeleteAcls in the proposal.
> >
> > Good point.  Let's make it consistent by changing it to DeleteAcls.  I
> > will also change AddAclsRequest to CreateAclsRequest to match
> > CreateTopicsRequest.
> >
> > >
> > > 3. Do you mean "null" in the following sentence? "Note that an argument
> > > of
> > > "none" is different than a wildcard argument."
> >
> > For the string types, NULL is considered "none"; for the INT8 types, -1
> > is considered "none".
> >
> > >
> > > 4. How will the non-zero top-level error code be computed? A bit more
> > > detail on this would be helpful. As a general rule, most batch protocol
> > > APIs don't have a top level error code because errors are usually at the
> > > batch element level. This has proved to be a bit of an issue in cases
> > > where
> > > we want to return a generic error code (e.g. InvalidProtocolVersion).
> > > Also,
> > > V2 of OffsetFetch has a top-level error code[1]. However, the OffsetFetch
> > > behaviour is that we either use the top-level error code or the partition
> > > level error codes, which is different than what is being suggested here.
> >
> > The idea behind the top-level error code is to implement error codes
> > that don't have to do with elements in the batch.  For example, if we
> > implement backpressure, the server could send back an error code of
> > "slow down" telling the client to resend the request after a few
> > milliseconds have elapsed.
> >
> > As you mention, we ought to have a generic response header that would
> > let us intelligently handle situations like "server doesn't understand
> > this request version or type"  Maybe this is something that needs to be
> > handled in another KIP, though, since it would require all the responses
> > to have this, and in the same format.  I guess I will remove this for
> > now.
> >
> > >
> > > 5. Nit: In other requests we used `error_message` instead of
> > > `error_string`.
> >
> > OK.
> >
> > > 6. Regarding the migration plan, it's worth making it clear that the CLI
> > > transition is not part of this KIP.
> >
> > OK.
> >
> > >
> > > 7. Regarding the forward compatibility point, we could potentially use
> > > enums with UNKNOWN element? This pattern has been used elsewhere in Kafka
> > > and it would be good to compare it with the proposed solution. An
> > > important
> > > question is what can users do with UNKNOWN elements. If the assumption is
> > > that users ignore them, then it seems like the enum approach may be good
> > > enough.
> >
> > Hmm.  It seemed straightforward to let callers see the numeric value of
> > the element.  It makes the command-line tools more useful when
> > interacting with clusters that have newer versions of the software, for
> > example.  I guess using UNKNOWN instead of UNKNOWN(<number>) has the
> > advantage of hiding the internal representation better.
> >
> > best,
> > Colin
> >
> >
> > >
> > > Thanks,
> > > Ismael
> > >
> > > [1]
> > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-88%3A+
> > OffsetFetch+Protocol+Update
> > >
> > >
> > > On Fri, Apr 21, 2017 at 9:27 PM, Colin McCabe <cmcc...@apache.org>
> > wrote:
> > >
> > > > Hi all,
> > > >
> > > > As part of the AdminClient work, we would like to add methods for
> > > > adding, deleting, and listing access control lists (ACLs).  I wrote up
> > a
> > > > KIP to discuss implementing requests for those operations, as well as
> > > > AdminClient APIs.  Take a look at:
> > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> > > > 140%3A+Add+administrative+RPCs+for+adding%2C+deleting%2C+
> > and+listing+ACLs
> > > >
> > > > regards,
> > > > Colin
> > > >
> >

Reply via email to