@@ -27,6 +27,7 @@ module Protocol
2727 API_VERSIONS_API = 18
2828 CREATE_TOPICS_API = 19
2929 DELETE_TOPICS_API = 20
30+ CREATE_PARTITIONS_API = 37
3031
3132 # A mapping from numeric API keys to symbolic API names.
3233 APIS = {
@@ -45,6 +46,7 @@ module Protocol
4546 API_VERSIONS_API => :api_versions ,
4647 CREATE_TOPICS_API => :create_topics ,
4748 DELETE_TOPICS_API => :delete_topics ,
49+ CREATE_PARTITIONS_API => :create_partitions
4850 }
4951
5052 # A mapping from numeric error codes to exception classes.
@@ -95,13 +97,13 @@ module Protocol
9597 # @param error_code Integer
9698 # @raise [ProtocolError]
9799 # @return [nil]
98- def self . handle_error ( error_code )
100+ def self . handle_error ( error_code , error_message = nil )
99101 if error_code == 0
100102 # No errors, yay!
101103 elsif error = ERRORS [ error_code ]
102- raise error
104+ raise error , error_message
103105 else
104- raise UnknownError , "Unknown error with code #{ error_code } "
106+ raise UnknownError , "Unknown error with code #{ error_code } #{ error_message } "
105107 end
106108 end
107109
@@ -145,3 +147,5 @@ def self.api_name(api_key)
145147require "kafka/protocol/create_topics_response"
146148require "kafka/protocol/delete_topics_request"
147149require "kafka/protocol/delete_topics_response"
150+ require "kafka/protocol/create_partitions_request"
151+ require "kafka/protocol/create_partitions_response"
0 commit comments