Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hey Colin, I added Config#get(String) to the KIP. Ismael On Mon, May 8, 2017 at 6:47 PM, Colin McCabewrote: > > Good idea. Should we add a Config#get(String) that can get the value of > a specific ConfigEntry? >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi Jason, Thanks for the feedback. I agree that it's useful and reasonably simple to implement. So, I've updated the KIP. Ismael On Wed, May 10, 2017 at 10:48 PM, Jason Gustafsonwrote: > Hey Ismael, > > Thanks for the KIP. The use of the Describe API might be a little limited > if it always returns the full set of topics for the requested resource. I > wonder if we can let the client provide a list of the configs they are > interested in. Perhaps something like this: > > DescribeConfigs Request (Version: 0) => [resource [config_name]] > resource => resource_type resource_name > resource_type => INT8 > resource_name => STRING > config_name => STRING > > This would reduce the overhead for use cases where the client only cares > about a small subset of configs. A null array can then indicate the desire > to fetch all configs. What do you think? > > Thanks, > Jason > > On Mon, May 8, 2017 at 10:47 AM, Colin McCabe wrote: > > > On Sun, May 7, 2017, at 20:18, Ismael Juma wrote: > > > Thanks for the feedback Colin. Comments inline. > > > > > > On Sun, May 7, 2017 at 9:29 PM, Colin McCabe > wrote: > > > > > > > > Hmm. What's the behavior if I try to list the configuration for a > > topic > > > > that doesn't exist? It seems like in this case, the whole request > has > > > > to return an error, and nothing gets listed. Shouldn't the protocol > > > > should return an error code and message per element in the batch, > > > > similar to how the other batch protocols work (CreateTopics, > > > > DeleteTopics, etc. etc.) > > > > > > > > > > CreateTopics and DeleteTopics are more like AlterConfigs and that has > an > > > error code per batch. For requests that mutate, this is essential > because > > > the operations are not transactional. I followed the same pattern as > > > ListGroups, but that doesn't take filters, so MetadataRequest is a > better > > > example. For consistency with that, I added an error code per batch. > > > > > > > We also should think about the case where someone requests > > > > configurations from multiple brokers. Since there are multiple > > requests > > > > sent over the wire in this case, there is the chance for some of them > > to > > > > fail when others have succeeded. So the API needs a way of returning > > an > > > > error per batch element. > > > > > > > > > > Yeah, that's true. For the AdminClient side, I followed the same > pattern > > > as > > > ListTopicsResponse, but it seems like DescribeTopicsResults is a better > > > example. I named this request ListConfigs for consistency with > ListAcls, > > > but it looks like they really should be DescribeConfigs and > DescribeAcls. > > > > > > > On the other hand, with configurations, each topic will have a single > > > > configuration, never more and never less. Each cluster will have a > > > > single configuration-- never more and never less. So having separate > > > > Configuration resources doesn't seem to add any value, since they > will > > > > always map 1:1 to existing resources. > > > > > > > > > > Good point. I thought about your proposal in more depth and I agree > that > > > it > > > solves the issue in a nice way. I updated the KIP. > > > > Thanks, Ismael. > > > > > > > > I guess my question is more conceptual-- if these things are all > > > > resources, shouldn't we have a single type to model all of them? We > > > > might want to add configurations to other resources later on as well. > > > > > > > > > > I've been thinking about how we could satisfy the 2 requirements of > > > having > > > a general resource type while making it clear which values are allowed > > > for > > > a given operation. I updated the KIP to use a shared resource type in > the > > > wire, renamed entity to resource, but kept a separate class and enum > for > > > ConfigResource and ConfigResource.Type. They map trivially to Resource > > > and > > > ResourceType. > > > > I still feel like it would be better to use the same type in the API. > > I'm curious what others think here? > > > > > > > > Also, I realised that I was a bit hasty when I changed Config to > > > Collection in the signature of a few methods. I think > Config > > > is the right type. It's a container for a Collection of ConfigEntry > > > instances so that we can provide useful methods to work with the > configs > > > (e.g. exclude items with defaults, etc.). > > > > Good idea. Should we add a Config#get(String) that can get the value of > > a specific ConfigEntry? > > > > > > > > Here's the full diff of the changes: > > > > > > https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action? > > pageId=68719318=14=11 > > > > > > Given that we don't have much time until the KIP freeze and this is an > > > important KIP to make the AdminClient truly useful, I will start the > vote > > > thread. That said, don't hesitate to provide additional feedback. > > > > +1. > > > > best, > > Colin > > > > > >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hey Ismael, Thanks for the KIP. The use of the Describe API might be a little limited if it always returns the full set of topics for the requested resource. I wonder if we can let the client provide a list of the configs they are interested in. Perhaps something like this: DescribeConfigs Request (Version: 0) => [resource [config_name]] resource => resource_type resource_name resource_type => INT8 resource_name => STRING config_name => STRING This would reduce the overhead for use cases where the client only cares about a small subset of configs. A null array can then indicate the desire to fetch all configs. What do you think? Thanks, Jason On Mon, May 8, 2017 at 10:47 AM, Colin McCabewrote: > On Sun, May 7, 2017, at 20:18, Ismael Juma wrote: > > Thanks for the feedback Colin. Comments inline. > > > > On Sun, May 7, 2017 at 9:29 PM, Colin McCabe wrote: > > > > > > Hmm. What's the behavior if I try to list the configuration for a > topic > > > that doesn't exist? It seems like in this case, the whole request has > > > to return an error, and nothing gets listed. Shouldn't the protocol > > > should return an error code and message per element in the batch, > > > similar to how the other batch protocols work (CreateTopics, > > > DeleteTopics, etc. etc.) > > > > > > > CreateTopics and DeleteTopics are more like AlterConfigs and that has an > > error code per batch. For requests that mutate, this is essential because > > the operations are not transactional. I followed the same pattern as > > ListGroups, but that doesn't take filters, so MetadataRequest is a better > > example. For consistency with that, I added an error code per batch. > > > > > We also should think about the case where someone requests > > > configurations from multiple brokers. Since there are multiple > requests > > > sent over the wire in this case, there is the chance for some of them > to > > > fail when others have succeeded. So the API needs a way of returning > an > > > error per batch element. > > > > > > > Yeah, that's true. For the AdminClient side, I followed the same pattern > > as > > ListTopicsResponse, but it seems like DescribeTopicsResults is a better > > example. I named this request ListConfigs for consistency with ListAcls, > > but it looks like they really should be DescribeConfigs and DescribeAcls. > > > > > On the other hand, with configurations, each topic will have a single > > > configuration, never more and never less. Each cluster will have a > > > single configuration-- never more and never less. So having separate > > > Configuration resources doesn't seem to add any value, since they will > > > always map 1:1 to existing resources. > > > > > > > Good point. I thought about your proposal in more depth and I agree that > > it > > solves the issue in a nice way. I updated the KIP. > > Thanks, Ismael. > > > > > I guess my question is more conceptual-- if these things are all > > > resources, shouldn't we have a single type to model all of them? We > > > might want to add configurations to other resources later on as well. > > > > > > > I've been thinking about how we could satisfy the 2 requirements of > > having > > a general resource type while making it clear which values are allowed > > for > > a given operation. I updated the KIP to use a shared resource type in the > > wire, renamed entity to resource, but kept a separate class and enum for > > ConfigResource and ConfigResource.Type. They map trivially to Resource > > and > > ResourceType. > > I still feel like it would be better to use the same type in the API. > I'm curious what others think here? > > > > > Also, I realised that I was a bit hasty when I changed Config to > > Collection in the signature of a few methods. I think Config > > is the right type. It's a container for a Collection of ConfigEntry > > instances so that we can provide useful methods to work with the configs > > (e.g. exclude items with defaults, etc.). > > Good idea. Should we add a Config#get(String) that can get the value of > a specific ConfigEntry? > > > > > Here's the full diff of the changes: > > > > https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action? > pageId=68719318=14=11 > > > > Given that we don't have much time until the KIP freeze and this is an > > important KIP to make the AdminClient truly useful, I will start the vote > > thread. That said, don't hesitate to provide additional feedback. > > +1. > > best, > Colin > > > > > Thanks. > > Ismael >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
On Sun, May 7, 2017, at 20:18, Ismael Juma wrote: > Thanks for the feedback Colin. Comments inline. > > On Sun, May 7, 2017 at 9:29 PM, Colin McCabewrote: > > > > Hmm. What's the behavior if I try to list the configuration for a topic > > that doesn't exist? It seems like in this case, the whole request has > > to return an error, and nothing gets listed. Shouldn't the protocol > > should return an error code and message per element in the batch, > > similar to how the other batch protocols work (CreateTopics, > > DeleteTopics, etc. etc.) > > > > CreateTopics and DeleteTopics are more like AlterConfigs and that has an > error code per batch. For requests that mutate, this is essential because > the operations are not transactional. I followed the same pattern as > ListGroups, but that doesn't take filters, so MetadataRequest is a better > example. For consistency with that, I added an error code per batch. > > > We also should think about the case where someone requests > > configurations from multiple brokers. Since there are multiple requests > > sent over the wire in this case, there is the chance for some of them to > > fail when others have succeeded. So the API needs a way of returning an > > error per batch element. > > > > Yeah, that's true. For the AdminClient side, I followed the same pattern > as > ListTopicsResponse, but it seems like DescribeTopicsResults is a better > example. I named this request ListConfigs for consistency with ListAcls, > but it looks like they really should be DescribeConfigs and DescribeAcls. > > > On the other hand, with configurations, each topic will have a single > > configuration, never more and never less. Each cluster will have a > > single configuration-- never more and never less. So having separate > > Configuration resources doesn't seem to add any value, since they will > > always map 1:1 to existing resources. > > > > Good point. I thought about your proposal in more depth and I agree that > it > solves the issue in a nice way. I updated the KIP. Thanks, Ismael. > > I guess my question is more conceptual-- if these things are all > > resources, shouldn't we have a single type to model all of them? We > > might want to add configurations to other resources later on as well. > > > > I've been thinking about how we could satisfy the 2 requirements of > having > a general resource type while making it clear which values are allowed > for > a given operation. I updated the KIP to use a shared resource type in the > wire, renamed entity to resource, but kept a separate class and enum for > ConfigResource and ConfigResource.Type. They map trivially to Resource > and > ResourceType. I still feel like it would be better to use the same type in the API. I'm curious what others think here? > > Also, I realised that I was a bit hasty when I changed Config to > Collection in the signature of a few methods. I think Config > is the right type. It's a container for a Collection of ConfigEntry > instances so that we can provide useful methods to work with the configs > (e.g. exclude items with defaults, etc.). Good idea. Should we add a Config#get(String) that can get the value of a specific ConfigEntry? > > Here's the full diff of the changes: > > https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=68719318=14=11 > > Given that we don't have much time until the KIP freeze and this is an > important KIP to make the AdminClient truly useful, I will start the vote > thread. That said, don't hesitate to provide additional feedback. +1. best, Colin > > Thanks. > Ismael
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
I meant, ListConfigs to DescribeConfigs. :) On Mon, May 8, 2017 at 4:50 PM, Ismael Jumawrote: > Quick update, I renamed ListAcls to DescribeAcls (and related classes and > methods) as that is more consistent with other protocols (like ListGroups > and DescribeGroups). > > Ismael > > On Mon, May 8, 2017 at 2:17 PM, Ismael Juma wrote: > >> Hi James, >> >> Yes, we will have a place where we perform validation independently of >> the policy. This will be quite basic in the initial version, but we can >> improve it over time. We will be able to do better than `ConfigCommand` >> because we will have access to the broker topic configs. Without access to >> the broker topic configs, not much could be validated by `ConfigCommand` >> (see https://issues.apache.org/jira/browse/KAFKA-4788, for example). >> >> Ismael >> >> On Mon, May 8, 2017 at 5:39 AM, James Cheng wrote: >> >>> The KIP talks about allowing the user to provide a AlterConfigsPolicy. I >>> assume that even if the user does not provide a custom policy, that there >>> are some basic validation that the broker will do by default? >>> >>> The reason I'm asking is I'm thinking ahead to >>> https://issues.apache.org/jira/browse/KAFKA-4680, and wanted to know if >>> there is going to be central place where we can do checks for stuff like >>> that. >>> >>> -James >>> >>> > On May 4, 2017, at 10:32 PM, Ismael Juma wrote: >>> > >>> > Hi all, >>> > >>> > We've posted "KIP-133: List and Alter Configs Admin APIs" for >>> discussion: >>> > >>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-133%3A >>> +List+and+Alter+Configs+Admin+APIs >>> > >>> > This completes the first batch of AdminClient APIs so that topic, >>> config >>> > and ACL management is supported. >>> > >>> > Please take a look. Your feedback is appreciated. >>> > >>> > Thanks, >>> > Ismael >>> >>> >> >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Quick update, I renamed ListAcls to DescribeAcls (and related classes and methods) as that is more consistent with other protocols (like ListGroups and DescribeGroups). Ismael On Mon, May 8, 2017 at 2:17 PM, Ismael Jumawrote: > Hi James, > > Yes, we will have a place where we perform validation independently of the > policy. This will be quite basic in the initial version, but we can improve > it over time. We will be able to do better than `ConfigCommand` because we > will have access to the broker topic configs. Without access to the broker > topic configs, not much could be validated by `ConfigCommand` (see > https://issues.apache.org/jira/browse/KAFKA-4788, for example). > > Ismael > > On Mon, May 8, 2017 at 5:39 AM, James Cheng wrote: > >> The KIP talks about allowing the user to provide a AlterConfigsPolicy. I >> assume that even if the user does not provide a custom policy, that there >> are some basic validation that the broker will do by default? >> >> The reason I'm asking is I'm thinking ahead to >> https://issues.apache.org/jira/browse/KAFKA-4680, and wanted to know if >> there is going to be central place where we can do checks for stuff like >> that. >> >> -James >> >> > On May 4, 2017, at 10:32 PM, Ismael Juma wrote: >> > >> > Hi all, >> > >> > We've posted "KIP-133: List and Alter Configs Admin APIs" for >> discussion: >> > >> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-133% >> 3A+List+and+Alter+Configs+Admin+APIs >> > >> > This completes the first batch of AdminClient APIs so that topic, config >> > and ACL management is supported. >> > >> > Please take a look. Your feedback is appreciated. >> > >> > Thanks, >> > Ismael >> >> >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi James, Yes, we will have a place where we perform validation independently of the policy. This will be quite basic in the initial version, but we can improve it over time. We will be able to do better than `ConfigCommand` because we will have access to the broker topic configs. Without access to the broker topic configs, not much could be validated by `ConfigCommand` (see https://issues.apache.org/jira/browse/KAFKA-4788, for example). Ismael On Mon, May 8, 2017 at 5:39 AM, James Chengwrote: > The KIP talks about allowing the user to provide a AlterConfigsPolicy. I > assume that even if the user does not provide a custom policy, that there > are some basic validation that the broker will do by default? > > The reason I'm asking is I'm thinking ahead to https://issues.apache.org/ > jira/browse/KAFKA-4680, and wanted to know if there is going to be > central place where we can do checks for stuff like that. > > -James > > > On May 4, 2017, at 10:32 PM, Ismael Juma wrote: > > > > Hi all, > > > > We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP- > 133%3A+List+and+Alter+Configs+Admin+APIs > > > > This completes the first batch of AdminClient APIs so that topic, config > > and ACL management is supported. > > > > Please take a look. Your feedback is appreciated. > > > > Thanks, > > Ismael > >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
The KIP talks about allowing the user to provide a AlterConfigsPolicy. I assume that even if the user does not provide a custom policy, that there are some basic validation that the broker will do by default? The reason I'm asking is I'm thinking ahead to https://issues.apache.org/jira/browse/KAFKA-4680, and wanted to know if there is going to be central place where we can do checks for stuff like that. -James > On May 4, 2017, at 10:32 PM, Ismael Jumawrote: > > Hi all, > > We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-133%3A+List+and+Alter+Configs+Admin+APIs > > This completes the first batch of AdminClient APIs so that topic, config > and ACL management is supported. > > Please take a look. Your feedback is appreciated. > > Thanks, > Ismael
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Thanks for the feedback Colin. Comments inline. On Sun, May 7, 2017 at 9:29 PM, Colin McCabewrote: > > Hmm. What's the behavior if I try to list the configuration for a topic > that doesn't exist? It seems like in this case, the whole request has > to return an error, and nothing gets listed. Shouldn't the protocol > should return an error code and message per element in the batch, > similar to how the other batch protocols work (CreateTopics, > DeleteTopics, etc. etc.) > CreateTopics and DeleteTopics are more like AlterConfigs and that has an error code per batch. For requests that mutate, this is essential because the operations are not transactional. I followed the same pattern as ListGroups, but that doesn't take filters, so MetadataRequest is a better example. For consistency with that, I added an error code per batch. We also should think about the case where someone requests > configurations from multiple brokers. Since there are multiple requests > sent over the wire in this case, there is the chance for some of them to > fail when others have succeeded. So the API needs a way of returning an > error per batch element. > Yeah, that's true. For the AdminClient side, I followed the same pattern as ListTopicsResponse, but it seems like DescribeTopicsResults is a better example. I named this request ListConfigs for consistency with ListAcls, but it looks like they really should be DescribeConfigs and DescribeAcls. On the other hand, with configurations, each topic will have a single > configuration, never more and never less. Each cluster will have a > single configuration-- never more and never less. So having separate > Configuration resources doesn't seem to add any value, since they will > always map 1:1 to existing resources. > Good point. I thought about your proposal in more depth and I agree that it solves the issue in a nice way. I updated the KIP. I guess my question is more conceptual-- if these things are all > resources, shouldn't we have a single type to model all of them? We > might want to add configurations to other resources later on as well. > I've been thinking about how we could satisfy the 2 requirements of having a general resource type while making it clear which values are allowed for a given operation. I updated the KIP to use a shared resource type in the wire, renamed entity to resource, but kept a separate class and enum for ConfigResource and ConfigResource.Type. They map trivially to Resource and ResourceType. Also, I realised that I was a bit hasty when I changed Config to Collection in the signature of a few methods. I think Config is the right type. It's a container for a Collection of ConfigEntry instances so that we can provide useful methods to work with the configs (e.g. exclude items with defaults, etc.). Here's the full diff of the changes: https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=68719318=14=11 Given that we don't have much time until the KIP freeze and this is an important KIP to make the AdminClient truly useful, I will start the vote thread. That said, don't hesitate to provide additional feedback. Thanks. Ismael
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
On Fri, May 5, 2017, at 19:24, Ismael Juma wrote: > Hi Colin, > > Thanks for the review. Comments inline. > > On Fri, May 5, 2017 at 9:45 PM, Colin McCabewrote: > > > As Jun commented, it's probably more consistent to use > > Collection, unless this really needs to be an ordered > > list. That way people can use any container they want. > > > > Agreed, updated the KIP. > > > public class ListConfigsResult { > > >public KafkaFuture
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi James, On Sun, May 7, 2017 at 8:36 AM, James Chengwrote: > Makes sense, and I don't have any concerns about it. Actually, I'm excited > for the capability. That means you can completely tell how a topic is > configured, without needing to have any knowledge of how the broker is > configured. > That's the goal indeed. Unrelated to this KIP, but important to keep in mind is that all brokers must have the same topic configs for things to work in a sane manner. That is a peculiarity of how topic configs work in Kafka: the fallback to broker topic configs is done during load, not during store. This makes it possible to update all topic config defaults by updating the config in every broker following by a rolling restart (or by upgrading to a new version of Kafka where broker topic config defaults has changed), but it can also be a source of weird behaviour if the broker topic configs are not consistent. There are a few ways this could be improved, but that's a subject for another KIP. :) You said that "if we fallback to the broker config (whether it's a default > or not), is_default will be true.". I assume that if I were to ListConfig > on the *broker*, then if a config is the kafka default, then is_default > will be true. And if the operator specifically set an override for the > broker config, then is_default will be false? > That's right. If that is all correct, then you can also completely tell how a broker is > configured, without needing to look at its config file. Which is pretty > convenient. > Yeah, that is indeed the goal as well. :) I'll update the KIP to clarify these important points. Thanks, Ismael
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
> On May 6, 2017, at 11:27 AM, Ismael Jumawrote: > > Hi James, > > Yes, that's right, it will return all config values. For topic configs, > that means falling back to the respective broker config value, which could > also be a default. If we fallback to the broker config (whether it's a > default or not), is_default will be true. Does this make sense? And do you > have any concerns related to this? > Ismael, Makes sense, and I don't have any concerns about it. Actually, I'm excited for the capability. That means you can completely tell how a topic is configured, without needing to have any knowledge of how the broker is configured. You said that "if we fallback to the broker config (whether it's a default or not), is_default will be true.". I assume that if I were to ListConfig on the *broker*, then if a config is the kafka default, then is_default will be true. And if the operator specifically set an override for the broker config, then is_default will be false? If that is all correct, then you can also completely tell how a broker is configured, without needing to look at its config file. Which is pretty convenient. -James > Ismael > > On Sat, May 6, 2017 at 6:19 AM, James Cheng wrote: > >> Hi Ismael, >> >> Thanks for the KIP. >> >> I see that in the ListConfigs Response protocol, that configs have an >> is_default field. Does that mean that it will include *all* config values, >> instead of just overridden ones? >> >> As an example, kafka-config.sh --describe on a topic will, right now, only >> show overridden configs. With ListConfigs, will it show all default configs >> for the topic, which includes the configs that were inherited from the >> broker configs (which themselves, might also be defaults)? >> >> Thanks, >> -James >> >>> On May 4, 2017, at 7:32 PM, Ismael Juma wrote: >>> >>> Hi all, >>> >>> We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: >>> >>> https://cwiki.apache.org/confluence/display/KAFKA/KIP- >> 133%3A+List+and+Alter+Configs+Admin+APIs >>> >>> This completes the first batch of AdminClient APIs so that topic, config >>> and ACL management is supported. >>> >>> Please take a look. Your feedback is appreciated. >>> >>> Thanks, >>> Ismael >> >>
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi James, Yes, that's right, it will return all config values. For topic configs, that means falling back to the respective broker config value, which could also be a default. If we fallback to the broker config (whether it's a default or not), is_default will be true. Does this make sense? And do you have any concerns related to this? Ismael On Sat, May 6, 2017 at 6:19 AM, James Chengwrote: > Hi Ismael, > > Thanks for the KIP. > > I see that in the ListConfigs Response protocol, that configs have an > is_default field. Does that mean that it will include *all* config values, > instead of just overridden ones? > > As an example, kafka-config.sh --describe on a topic will, right now, only > show overridden configs. With ListConfigs, will it show all default configs > for the topic, which includes the configs that were inherited from the > broker configs (which themselves, might also be defaults)? > > Thanks, > -James > > > On May 4, 2017, at 7:32 PM, Ismael Juma wrote: > > > > Hi all, > > > > We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP- > 133%3A+List+and+Alter+Configs+Admin+APIs > > > > This completes the first batch of AdminClient APIs so that topic, config > > and ACL management is supported. > > > > Please take a look. Your feedback is appreciated. > > > > Thanks, > > Ismael > >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi Ismael, Thanks for the KIP. I see that in the ListConfigs Response protocol, that configs have an is_default field. Does that mean that it will include *all* config values, instead of just overridden ones? As an example, kafka-config.sh --describe on a topic will, right now, only show overridden configs. With ListConfigs, will it show all default configs for the topic, which includes the configs that were inherited from the broker configs (which themselves, might also be defaults)? Thanks, -James > On May 4, 2017, at 7:32 PM, Ismael Jumawrote: > > Hi all, > > We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-133%3A+List+and+Alter+Configs+Admin+APIs > > This completes the first batch of AdminClient APIs so that topic, config > and ACL management is supported. > > Please take a look. Your feedback is appreciated. > > Thanks, > Ismael
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi Colin, Thanks for the review. Comments inline. On Fri, May 5, 2017 at 9:45 PM, Colin McCabewrote: > As Jun commented, it's probably more consistent to use > Collection, unless this really needs to be an ordered > list. That way people can use any container they want. > Agreed, updated the KIP. > public class ListConfigsResult { > >public KafkaFuture
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi Jun, Thanks for the review. 1. Yes, a Set would work too. I updated to take Collection for consistency as Colin said. 2. That was a typo, it should have been a boolean indicating whether we should only perform validation. Updated the KIP. Thanks, Ismael On Fri, May 5, 2017 at 6:35 PM, Jun Raowrote: > Hi, Ismael, > > Thanks for the KIP. Looks good overall. Just a couple of minor comments. > > 1. Should AdminClient.listConfigs() take a set of ConfigEntity instead of a > list? > > 2. validateOnly(boolean timeout): Should the time be Integer? > > Jun > > > On Thu, May 4, 2017 at 7:32 PM, Ismael Juma wrote: > > > Hi all, > > > > We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP- > > 133%3A+List+and+Alter+Configs+Admin+APIs > > > > This completes the first batch of AdminClient APIs so that topic, config > > and ACL management is supported. > > > > Please take a look. Your feedback is appreciated. > > > > Thanks, > > Ismael > > >
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi Ismael, Thanks for the KIP. This will be a great improvement. > public class AdminClient { >public ListConfigsResult listConfigs(List entities, > ListConfigsOptions options); >public AlterConfigsResult alterConfigs(Map> configs, > AlterConfigsOptions options); > } As Jun commented, it's probably more consistent to use Collection, unless this really needs to be an ordered list. That way people can use any container they want. > public class ListConfigsResult { >public KafkaFuture
Re: [DISCUSS] KIP-133: List and Alter Configs Admin APIs
Hi, Ismael, Thanks for the KIP. Looks good overall. Just a couple of minor comments. 1. Should AdminClient.listConfigs() take a set of ConfigEntity instead of a list? 2. validateOnly(boolean timeout): Should the time be Integer? Jun On Thu, May 4, 2017 at 7:32 PM, Ismael Jumawrote: > Hi all, > > We've posted "KIP-133: List and Alter Configs Admin APIs" for discussion: > > https://cwiki.apache.org/confluence/display/KAFKA/KIP- > 133%3A+List+and+Alter+Configs+Admin+APIs > > This completes the first batch of AdminClient APIs so that topic, config > and ACL management is supported. > > Please take a look. Your feedback is appreciated. > > Thanks, > Ismael >