mirror of https://github.com/apache/kafka.git
				
				
				
			Add test cases to test log size retention and more; patched by John Fung; reviewed by Jun Rao; KAFKA-591
git-svn-id: https://svn.apache.org/repos/asf/incubator/kafka/branches/0.8@1407680 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
		
							parent
							
								
									6800b0ed3b
								
							
						
					
					
						commit
						1cc8c3beab
					
				|  | @ -188,50 +188,38 @@ class MigrationToolTest(ReplicationUtils, SetupUtils): | |||
|                 # ============================================= | ||||
|                 i = 1 | ||||
|                 numIterations = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) | ||||
|                 bouncedEntityDownTimeSec = 1 | ||||
|                 try: | ||||
|                     bouncedEntityDownTimeSec = int(self.testcaseEnv.testcaseArgumentsDict["bounced_entity_downtime_sec"]) | ||||
|                 except: | ||||
|                     pass | ||||
| 
 | ||||
|                 while i <= numIterations: | ||||
| 
 | ||||
|                     self.log_message("Iteration " + str(i) + " of " + str(numIterations)) | ||||
| 
 | ||||
|                     self.log_message("looking up leader") | ||||
|                     leaderDict = kafka_system_test_utils.get_leader_elected_log_line( | ||||
|                         self.systemTestEnv, self.testcaseEnv, self.leaderAttributesDict) | ||||
|                     # ============================================= | ||||
|                     # Bounce Migration Tool | ||||
|                     # ============================================= | ||||
|                     bounceMigrationTool = self.testcaseEnv.testcaseArgumentsDict["bounce_migration_tool"] | ||||
|                     self.log_message("bounce_migration_tool flag : " + bounceMigrationTool) | ||||
|                     if (bounceMigrationTool.lower() == "true"): | ||||
| 
 | ||||
|                     # ========================== | ||||
|                     # leaderDict looks like this: | ||||
|                     # ========================== | ||||
|                     #{'entity_id': u'3', | ||||
|                     # 'partition': '0', | ||||
|                     # 'timestamp': 1345050255.8280001, | ||||
|                     # 'hostname': u'localhost', | ||||
|                     # 'topic': 'test_1', | ||||
|                     # 'brokerid': '3'} | ||||
|                         clusterConfigList         = self.systemTestEnv.clusterEntityConfigDictList | ||||
|                         migrationToolEntityIdList = system_test_utils.get_data_from_list_of_dicts( | ||||
|                                                     clusterConfigList, "role", "migration_tool", "entity_id") | ||||
| 
 | ||||
|                     # ============================================= | ||||
|                     # validate to see if leader election is successful | ||||
|                     # ============================================= | ||||
|                     self.log_message("validating leader election") | ||||
|                     result = kafka_system_test_utils.validate_leader_election_successful(  | ||||
|                          self.testcaseEnv, leaderDict, self.testcaseEnv.validationStatusDict) | ||||
|                         stoppedMigrationToolEntityId = migrationToolEntityIdList[0] | ||||
|                         migrationToolPPid = self.testcaseEnv.entityMigrationToolParentPidDict[stoppedMigrationToolEntityId] | ||||
| 
 | ||||
|                     # ============================================= | ||||
|                     # trigger leader re-election by stopping leader | ||||
|                     # to get re-election latency | ||||
|                     # ============================================= | ||||
|                     bounceLeaderFlag = self.testcaseEnv.testcaseArgumentsDict["bounce_leader"] | ||||
|                     self.log_message("bounce_leader flag : " + bounceLeaderFlag) | ||||
|                     if (bounceLeaderFlag.lower() == "true"): | ||||
|                         reelectionLatency = kafka_system_test_utils.get_reelection_latency( | ||||
|                             self.systemTestEnv, self.testcaseEnv, leaderDict, self.leaderAttributesDict) | ||||
|                         latencyKeyName = "Leader Election Latency - iter " + str(i) + " brokerid " + leaderDict["brokerid"] | ||||
|                         self.testcaseEnv.validationStatusDict[latencyKeyName] = str("{0:.2f}".format(reelectionLatency * 1000)) + " ms" | ||||
|                         self.log_message("stopping migration tool : " + migrationToolPPid) | ||||
|                         kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, stoppedMigrationToolEntityId, migrationToolPPid) | ||||
|                         self.anonLogger.info("sleeping for " + str(bouncedEntityDownTimeSec) + " sec") | ||||
|                         time.sleep(bouncedEntityDownTimeSec) | ||||
| 
 | ||||
|                     # ============================================= | ||||
|                         # starting previously terminated broker  | ||||
|                     # ============================================= | ||||
|                     if bounceLeaderFlag.lower() == "true": | ||||
|                         self.log_message("starting the previously terminated broker") | ||||
|                         stoppedLeaderEntityId  = leaderDict["entity_id"] | ||||
|                         kafka_system_test_utils.start_entity_in_background(self.systemTestEnv, self.testcaseEnv, stoppedLeaderEntityId) | ||||
|                         self.log_message("starting the previously terminated migration tool") | ||||
|                         kafka_system_test_utils.start_migration_tool(self.systemTestEnv, self.testcaseEnv, stoppedMigrationToolEntityId) | ||||
| 
 | ||||
|                     self.anonLogger.info("sleeping for 15s") | ||||
|                     time.sleep(15) | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ | |||
|                   "08":"Log segment size    : 51200" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_leader": "false", | ||||
|     "bounce_migration_tool": "false", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "1", | ||||
|     "num_iteration": "1", | ||||
|  |  | |||
|  | @ -0,0 +1,112 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9994" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9995" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9996" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "/export/apps/jdk/JDK-1_6_0_27", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9890" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9891" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,136 @@ | |||
| { | ||||
|   "description": {"01":"To Test : 'Replication with Migration Tool'", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => Migration Tool => TARGET", | ||||
|                   "03":"Produce and consume messages to a single topic - single partition.", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"At the end it verifies the log size and contents", | ||||
|                   "06":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "07":"Producer dimensions : mode:async, acks:-1, comp:1", | ||||
|                   "08":"Log segment size    : 51200" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_migration_tool": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "1", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "30", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_1.log", | ||||
|       "config_filename": "kafka_server_1.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_2.log", | ||||
|       "config_filename": "kafka_server_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_3.log", | ||||
|       "config_filename": "kafka_server_3.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "async": "true", | ||||
|       "log_filename": "producer_performance_7.log", | ||||
|       "config_filename": "producer_performance_7.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_8.log", | ||||
|       "formatter": "kafka.consumer.ChecksumMessageFormatter", | ||||
|       "config_filename": "console_consumer_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "clientPort": "2191", | ||||
|       "dataDir": "/tmp/zookeeper_9", | ||||
|       "log_filename": "zookeeper_9.log", | ||||
|       "config_filename": "zookeeper_9.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_10.log", | ||||
|       "config_filename": "migration_tool_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_11.log", | ||||
|       "config_filename": "migration_tool_11.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -0,0 +1,112 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9994" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9995" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9996" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "/export/apps/jdk/JDK-1_6_0_27", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9890" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9891" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,136 @@ | |||
| { | ||||
|   "description": {"01":"To Test : 'Replication with Migration Tool'", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => Migration Tool => TARGET", | ||||
|                   "03":"Produce and consume messages to a single topic - single partition.", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"At the end it verifies the log size and contents", | ||||
|                   "06":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "07":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "08":"Log segment size    : 51200" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_migration_tool": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "1", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "30", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_1.log", | ||||
|       "config_filename": "kafka_server_1.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_2.log", | ||||
|       "config_filename": "kafka_server_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_3.log", | ||||
|       "config_filename": "kafka_server_3.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "async": "true", | ||||
|       "log_filename": "producer_performance_7.log", | ||||
|       "config_filename": "producer_performance_7.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_8.log", | ||||
|       "formatter": "kafka.consumer.ChecksumMessageFormatter", | ||||
|       "config_filename": "console_consumer_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "clientPort": "2191", | ||||
|       "dataDir": "/tmp/zookeeper_9", | ||||
|       "log_filename": "zookeeper_9.log", | ||||
|       "config_filename": "zookeeper_9.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_10.log", | ||||
|       "config_filename": "migration_tool_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_11.log", | ||||
|       "config_filename": "migration_tool_11.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -0,0 +1,141 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9900" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9901" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9902" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9903" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9904" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9905" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9906" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9907" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "/export/apps/jdk/JDK-1_6_0_27", | ||||
|             "jmx_port": "9908" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "/export/apps/jdk/JDK-1_6_0_27", | ||||
|             "jmx_port": "9909" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9910" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9911" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "12", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9912" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "13", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9913" | ||||
|         } | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,167 @@ | |||
| { | ||||
|   "description": {"01":"To Test : 'Replication with Migration Tool'", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => Migration Tool => TARGET", | ||||
|                   "03":"Produce and consume messages to 2 topics - 2 partitions.", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"At the end it verifies the log size and contents", | ||||
|                   "06":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "07":"Producer dimensions : mode:async, acks:-1, comp:1", | ||||
|                   "08":"Log segment size    : 51200" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_migration_tool": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "30", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "clientPort": "2191", | ||||
|       "dataDir": "/tmp/zookeeper_1", | ||||
|       "log_filename": "zookeeper_1.log", | ||||
|       "config_filename": "zookeeper_1.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_2.log", | ||||
|       "config_filename": "kafka_server_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_3.log", | ||||
|       "config_filename": "kafka_server_3.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_7_logs", | ||||
|       "log_filename": "kafka_server_7.log", | ||||
|       "config_filename": "kafka_server_7.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "async": "true", | ||||
|       "log_filename": "producer_performance_8.log", | ||||
|       "config_filename": "producer_performance_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "async": "true", | ||||
|       "log_filename": "producer_performance_9.log", | ||||
|       "config_filename": "producer_performance_9.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_10.log", | ||||
|       "formatter": "kafka.consumer.ChecksumMessageFormatter", | ||||
|       "config_filename": "console_consumer_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_11.log", | ||||
|       "formatter": "kafka.consumer.ChecksumMessageFormatter", | ||||
|       "config_filename": "console_consumer_11.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "12", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_12.log", | ||||
|       "config_filename": "migration_tool_12.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "13", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_13.log", | ||||
|       "config_filename": "migration_tool_13.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -0,0 +1,141 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9900" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9901" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9902" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9903" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9904" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9905" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9906" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9907" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "/export/apps/jdk/JDK-1_6_0_27", | ||||
|             "jmx_port": "9908" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "system_test/migration_tool_testsuite/0.7", | ||||
|             "java_home": "/export/apps/jdk/JDK-1_6_0_27", | ||||
|             "jmx_port": "9909" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9910" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9911" | ||||
|         }, | ||||
| 
 | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "12", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9912" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "13", | ||||
|             "hostname": "localhost", | ||||
|             "role": "migration_tool", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9913" | ||||
|         } | ||||
| 
 | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,167 @@ | |||
| { | ||||
|   "description": {"01":"To Test : 'Replication with Migration Tool'", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => Migration Tool => TARGET", | ||||
|                   "03":"Produce and consume messages to 2 topics - 2 partitions.", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"At the end it verifies the log size and contents", | ||||
|                   "06":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "07":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "08":"Log segment size    : 51200" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_migration_tool": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "30", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "clientPort": "2191", | ||||
|       "dataDir": "/tmp/zookeeper_1", | ||||
|       "log_filename": "zookeeper_1.log", | ||||
|       "config_filename": "zookeeper_1.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_2.log", | ||||
|       "config_filename": "kafka_server_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_3.log", | ||||
|       "config_filename": "kafka_server_3.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "51200", | ||||
|       "log.dir": "/tmp/kafka_server_7_logs", | ||||
|       "log_filename": "kafka_server_7.log", | ||||
|       "config_filename": "kafka_server_7.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "async": "true", | ||||
|       "log_filename": "producer_performance_8.log", | ||||
|       "config_filename": "producer_performance_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "async": "true", | ||||
|       "log_filename": "producer_performance_9.log", | ||||
|       "config_filename": "producer_performance_9.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_10.log", | ||||
|       "formatter": "kafka.consumer.ChecksumMessageFormatter", | ||||
|       "config_filename": "console_consumer_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_11.log", | ||||
|       "formatter": "kafka.consumer.ChecksumMessageFormatter", | ||||
|       "config_filename": "console_consumer_11.properties" | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "12", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_12.log", | ||||
|       "config_filename": "migration_tool_12.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "13", | ||||
|       "whitelist": ".*", | ||||
|       "num.producers": "2", | ||||
|       "num.streams": "2", | ||||
|       "producer.config": "migration_tool_testsuite/config/migration_producer.properties", | ||||
|       "consumer.config": "migration_tool_testsuite/config/migration_consumer.properties", | ||||
|       "zkclient.01.jar": "migration_tool_testsuite/0.7/lib/zkclient-0.1.jar", | ||||
|       "kafka.07.jar"   : "migration_tool_testsuite/0.7/lib/kafka-0.7.0.jar", | ||||
|       "log_filename": "migration_tool_13.log", | ||||
|       "config_filename": "migration_tool_13.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -191,6 +191,12 @@ class MirrorMakerTest(ReplicationUtils, SetupUtils): | |||
|                 # ============================================= | ||||
|                 i = 1 | ||||
|                 numIterations = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) | ||||
|                 bouncedEntityDownTimeSec = 1 | ||||
|                 try: | ||||
|                     bouncedEntityDownTimeSec = int(self.testcaseEnv.testcaseArgumentsDict["bounced_entity_downtime_sec"]) | ||||
|                 except: | ||||
|                     pass | ||||
| 
 | ||||
|                 while i <= numIterations: | ||||
| 
 | ||||
|                     self.log_message("Iteration " + str(i) + " of " + str(numIterations)) | ||||
|  | @ -205,15 +211,17 @@ class MirrorMakerTest(ReplicationUtils, SetupUtils): | |||
|                         clusterConfigList          = self.systemTestEnv.clusterEntityConfigDictList | ||||
|                         mirrorMakerEntityIdList    = system_test_utils.get_data_from_list_of_dicts( | ||||
|                                                      clusterConfigList, "role", "mirror_maker", "entity_id") | ||||
|                         stoppedMirrorMakerEntityId = mirrorMakerEntityIdList[0] | ||||
| 
 | ||||
|                         mirrorMakerPPid = self.testcaseEnv.entityMirrorMakerParentPidDict[mirrorMakerEntityIdList[0]] | ||||
|                         mirrorMakerPPid = self.testcaseEnv.entityMirrorMakerParentPidDict[stoppedMirrorMakerEntityId] | ||||
|                         self.log_message("stopping mirror maker : " + mirrorMakerPPid) | ||||
|                         kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, mirrorMakerEntityIdList[0], mirrorMakerPPid) | ||||
|                         time.sleep(1) | ||||
|                         kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, stoppedMirrorMakerEntityId, mirrorMakerPPid) | ||||
|                         self.anonLogger.info("sleeping for " + str(bouncedEntityDownTimeSec) + " sec") | ||||
|                         time.sleep(bouncedEntityDownTimeSec) | ||||
| 
 | ||||
|                         # starting previously terminated broker  | ||||
|                         self.log_message("starting the previously terminated mirror maker") | ||||
|                         kafka_system_test_utils.start_mirror_makers(self.systemTestEnv, self.testcaseEnv) | ||||
|                         kafka_system_test_utils.start_mirror_makers(self.systemTestEnv, self.testcaseEnv, stoppedMirrorMakerEntityId) | ||||
| 
 | ||||
|                     self.anonLogger.info("sleeping for 15s") | ||||
|                     time.sleep(15) | ||||
|  |  | |||
|  | @ -0,0 +1,135 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9100" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9101" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9102" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9103" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9104" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9105" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9106" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9107" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9108" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9109" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9110" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9111" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "12", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9112" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "13", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9113" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,143 @@ | |||
| { | ||||
|   "description": {"01":"Replication with Mirror Maker => Bounce Mirror Maker", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => MirrorMaker => TARGET", | ||||
|                   "03":"Set up 2-node Zk cluster for both SOURCE & TARGET", | ||||
|                   "04":"Produce and consume messages to a single topic - single partition.", | ||||
|                   "05":"This test sends messages to 3 replicas", | ||||
|                   "06":"At the end it verifies the log size and contents", | ||||
|                   "07":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "08":"Producer dimensions : mode:async, acks:-1, comp:1", | ||||
|                   "09":"Log segment size    : 10240" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_leader": "false", | ||||
|     "bounce_mirror_maker": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "1", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2108", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "clientPort": "2118", | ||||
|       "dataDir": "/tmp/zookeeper_1", | ||||
|       "log_filename": "zookeeper_1.log", | ||||
|       "config_filename": "zookeeper_1.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "clientPort": "2128", | ||||
|       "dataDir": "/tmp/zookeeper_2", | ||||
|       "log_filename": "zookeeper_2.log", | ||||
|       "config_filename": "zookeeper_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "clientPort": "2138", | ||||
|       "dataDir": "/tmp/zookeeper_3", | ||||
|       "log_filename": "zookeeper_3.log", | ||||
|       "config_filename": "zookeeper_3.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_7_logs", | ||||
|       "log_filename": "kafka_server_7.log", | ||||
|       "config_filename": "kafka_server_7.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_8_logs", | ||||
|       "log_filename": "kafka_server_8.log", | ||||
|       "config_filename": "kafka_server_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_9_logs", | ||||
|       "log_filename": "kafka_server_9.log", | ||||
|       "config_filename": "kafka_server_9.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_10.log", | ||||
|       "config_filename": "producer_performance_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_11.log", | ||||
|       "config_filename": "console_consumer_11.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "12", | ||||
|       "log_filename": "mirror_maker_12.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_12.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_12.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "13", | ||||
|       "log_filename": "mirror_maker_13.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_13.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_13.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -0,0 +1,135 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9100" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9101" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9102" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9103" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9104" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9105" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9106" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9107" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9108" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9109" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9110" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9111" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "12", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9112" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "13", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9113" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,143 @@ | |||
| { | ||||
|   "description": {"01":"Replication with Mirror Maker => Bounce Mirror Maker", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => MirrorMaker => TARGET", | ||||
|                   "03":"Set up 2-node Zk cluster for both SOURCE & TARGET", | ||||
|                   "04":"Produce and consume messages to a single topic - single partition.", | ||||
|                   "05":"This test sends messages to 3 replicas", | ||||
|                   "06":"At the end it verifies the log size and contents", | ||||
|                   "07":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "08":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "09":"Log segment size    : 10240" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_leader": "false", | ||||
|     "bounce_mirror_maker": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "1", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2108", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "clientPort": "2118", | ||||
|       "dataDir": "/tmp/zookeeper_1", | ||||
|       "log_filename": "zookeeper_1.log", | ||||
|       "config_filename": "zookeeper_1.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "clientPort": "2128", | ||||
|       "dataDir": "/tmp/zookeeper_2", | ||||
|       "log_filename": "zookeeper_2.log", | ||||
|       "config_filename": "zookeeper_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "clientPort": "2138", | ||||
|       "dataDir": "/tmp/zookeeper_3", | ||||
|       "log_filename": "zookeeper_3.log", | ||||
|       "config_filename": "zookeeper_3.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_7_logs", | ||||
|       "log_filename": "kafka_server_7.log", | ||||
|       "config_filename": "kafka_server_7.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_8_logs", | ||||
|       "log_filename": "kafka_server_8.log", | ||||
|       "config_filename": "kafka_server_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_9_logs", | ||||
|       "log_filename": "kafka_server_9.log", | ||||
|       "config_filename": "kafka_server_9.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_10.log", | ||||
|       "config_filename": "producer_performance_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_11.log", | ||||
|       "config_filename": "console_consumer_11.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "12", | ||||
|       "log_filename": "mirror_maker_12.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_12.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_12.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "13", | ||||
|       "log_filename": "mirror_maker_13.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_13.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_13.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -0,0 +1,153 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9100" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9101" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9102" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9103" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9104" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9105" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9106" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9107" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9108" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9109" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9110" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9111" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "12", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9112" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "13", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9113" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "14", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9114" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "15", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9115" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,164 @@ | |||
| { | ||||
|   "description": {"01":"Replication with Mirror Maker => Bounce Mirror Maker", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => MirrorMaker => TARGET", | ||||
|                   "03":"Set up 2-node Zk cluster for both SOURCE & TARGET", | ||||
|                   "04":"Produce and consume messages to 2 topics - 2 partitions.", | ||||
|                   "05":"This test sends messages to 3 replicas", | ||||
|                   "06":"At the end it verifies the log size and contents", | ||||
|                   "07":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "08":"Producer dimensions : mode:async, acks:-1, comp:1", | ||||
|                   "09":"Log segment size    : 10240" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_leader": "false", | ||||
|     "bounce_mirror_maker": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2108", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "clientPort": "2118", | ||||
|       "dataDir": "/tmp/zookeeper_1", | ||||
|       "log_filename": "zookeeper_1.log", | ||||
|       "config_filename": "zookeeper_1.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "clientPort": "2128", | ||||
|       "dataDir": "/tmp/zookeeper_2", | ||||
|       "log_filename": "zookeeper_2.log", | ||||
|       "config_filename": "zookeeper_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "clientPort": "2138", | ||||
|       "dataDir": "/tmp/zookeeper_3", | ||||
|       "log_filename": "zookeeper_3.log", | ||||
|       "config_filename": "zookeeper_3.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_7_logs", | ||||
|       "log_filename": "kafka_server_7.log", | ||||
|       "config_filename": "kafka_server_7.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_8_logs", | ||||
|       "log_filename": "kafka_server_8.log", | ||||
|       "config_filename": "kafka_server_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_9_logs", | ||||
|       "log_filename": "kafka_server_9.log", | ||||
|       "config_filename": "kafka_server_9.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_10.log", | ||||
|       "config_filename": "producer_performance_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_11.log", | ||||
|       "config_filename": "producer_performance_11.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "12", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_12.log", | ||||
|       "config_filename": "console_consumer_12.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "13", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_13.log", | ||||
|       "config_filename": "console_consumer_13.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "14", | ||||
|       "log_filename": "mirror_maker_14.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_14.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_14.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "15", | ||||
|       "log_filename": "mirror_maker_15.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_15.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_15.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -0,0 +1,153 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9100" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9101" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9102" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9103" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9104" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9105" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9106" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9107" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "8", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9108" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "9", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9109" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "10", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9110" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "11", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name":"source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9111" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "12", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9112" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "13", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9113" | ||||
|         }, | ||||
| 
 | ||||
|         { | ||||
|             "entity_id": "14", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9114" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "15", | ||||
|             "hostname": "localhost", | ||||
|             "role": "mirror_maker", | ||||
|             "cluster_name":"target", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9115" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,164 @@ | |||
| { | ||||
|   "description": {"01":"Replication with Mirror Maker => Bounce Mirror Maker", | ||||
|                   "02":"Set up 2 clusters such as : SOURCE => MirrorMaker => TARGET", | ||||
|                   "03":"Set up 2-node Zk cluster for both SOURCE & TARGET", | ||||
|                   "04":"Produce and consume messages to 2 topics - 2 partitions.", | ||||
|                   "05":"This test sends messages to 3 replicas", | ||||
|                   "06":"At the end it verifies the log size and contents", | ||||
|                   "07":"Use a consumer to verify no message loss in TARGET cluster.", | ||||
|                   "08":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "09":"Log segment size    : 10240" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "bounce_leader": "false", | ||||
|     "bounce_mirror_maker": "true", | ||||
|     "bounced_entity_downtime_sec": "30", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "num_messages_to_produce_per_producer_call": "50" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2108", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_0.log", | ||||
|       "config_filename": "zookeeper_0.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "clientPort": "2118", | ||||
|       "dataDir": "/tmp/zookeeper_1", | ||||
|       "log_filename": "zookeeper_1.log", | ||||
|       "config_filename": "zookeeper_1.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "clientPort": "2128", | ||||
|       "dataDir": "/tmp/zookeeper_2", | ||||
|       "log_filename": "zookeeper_2.log", | ||||
|       "config_filename": "zookeeper_2.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "clientPort": "2138", | ||||
|       "dataDir": "/tmp/zookeeper_3", | ||||
|       "log_filename": "zookeeper_3.log", | ||||
|       "config_filename": "zookeeper_3.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_4_logs", | ||||
|       "log_filename": "kafka_server_4.log", | ||||
|       "config_filename": "kafka_server_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_5_logs", | ||||
|       "log_filename": "kafka_server_5.log", | ||||
|       "config_filename": "kafka_server_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_6_logs", | ||||
|       "log_filename": "kafka_server_6.log", | ||||
|       "config_filename": "kafka_server_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "port": "9094", | ||||
|       "brokerid": "4", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_7_logs", | ||||
|       "log_filename": "kafka_server_7.log", | ||||
|       "config_filename": "kafka_server_7.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "8", | ||||
|       "port": "9095", | ||||
|       "brokerid": "5", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_8_logs", | ||||
|       "log_filename": "kafka_server_8.log", | ||||
|       "config_filename": "kafka_server_8.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "9", | ||||
|       "port": "9096", | ||||
|       "brokerid": "6", | ||||
|       "log.file.size": "10240", | ||||
|       "log.dir": "/tmp/kafka_server_9_logs", | ||||
|       "log_filename": "kafka_server_9.log", | ||||
|       "config_filename": "kafka_server_9.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "10", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_10.log", | ||||
|       "config_filename": "producer_performance_10.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "11", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_11.log", | ||||
|       "config_filename": "producer_performance_11.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "12", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_12.log", | ||||
|       "config_filename": "console_consumer_12.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "13", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_13.log", | ||||
|       "config_filename": "console_consumer_13.properties" | ||||
|     }, | ||||
| 
 | ||||
|     { | ||||
|       "entity_id": "14", | ||||
|       "log_filename": "mirror_maker_14.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_14.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_14.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "15", | ||||
|       "log_filename": "mirror_maker_15.log", | ||||
|       "mirror_consumer_config_filename": "mirror_consumer_15.properties", | ||||
|       "mirror_producer_config_filename": "mirror_producer_15.properties" | ||||
|     } | ||||
|    ] | ||||
| } | ||||
|  | @ -23,6 +23,7 @@ | |||
| import inspect | ||||
| import logging | ||||
| import os | ||||
| import pprint | ||||
| import signal | ||||
| import subprocess | ||||
| import sys | ||||
|  | @ -116,6 +117,13 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                 # ============================================================================== # | ||||
|                 # ============================================================================== # | ||||
| 
 | ||||
|                 # get optional testcase arguments | ||||
|                 logRetentionTest = "false" | ||||
|                 try: | ||||
|                     logRetentionTest = self.testcaseEnv.testcaseArgumentsDict["log_retention_test"] | ||||
|                 except: | ||||
|                     pass | ||||
| 
 | ||||
|                 # initialize self.testcaseEnv with user-defined environment variables (product specific) | ||||
|                 self.testcaseEnv.userDefinedEnvVarDict["zkConnectStr"] = "" | ||||
|                 self.testcaseEnv.userDefinedEnvVarDict["stopBackgroundProducer"]    = False | ||||
|  | @ -171,6 +179,14 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                 self.anonLogger.info("sleeping for 5s") | ||||
|                 time.sleep(5) | ||||
| 
 | ||||
|                 # ============================================= | ||||
|                 # start ConsoleConsumer if this is a Log Retention test                 | ||||
|                 # ============================================= | ||||
|                 if logRetentionTest.lower() == "true": | ||||
|                     self.log_message("starting consumer in the background") | ||||
|                     kafka_system_test_utils.start_console_consumer(self.systemTestEnv, self.testcaseEnv) | ||||
|                     time.sleep(1) | ||||
| 
 | ||||
|                 # ============================================= | ||||
|                 # starting producer  | ||||
|                 # ============================================= | ||||
|  | @ -188,13 +204,21 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                 numIterations    = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) | ||||
|                 brokerType       = self.testcaseEnv.testcaseArgumentsDict["broker_type"] | ||||
|                 bounceBrokerFlag = self.testcaseEnv.testcaseArgumentsDict["bounce_broker"] | ||||
|                  | ||||
|                 while i <= numIterations: | ||||
|                     self.log_message("Iteration " + str(i) + " of " + str(numIterations)) | ||||
|                     self.log_message("bounce_broker flag : " + bounceBrokerFlag) | ||||
| 
 | ||||
|                     leaderDict            = None | ||||
|                     controllerDict        = None | ||||
|                     stoppedBrokerEntityId = "" | ||||
| 
 | ||||
|                     # ============================================== | ||||
|                     # Find out the entity id for the stopping broker | ||||
|                     # ============================================== | ||||
|                     if brokerType == "leader" or brokerType == "follower": | ||||
|                         self.log_message("looking up leader") | ||||
|                         leaderDict = kafka_system_test_utils.get_leader_elected_log_line( | ||||
|                             self.systemTestEnv, self.testcaseEnv, self.leaderAttributesDict) | ||||
|                         leaderDict = kafka_system_test_utils.get_leader_elected_log_line(self.systemTestEnv, self.testcaseEnv, self.leaderAttributesDict) | ||||
| 
 | ||||
|                         # ========================== | ||||
|                         # leaderDict looks like this: | ||||
|  | @ -207,62 +231,21 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                         # 'brokerid': '3'} | ||||
| 
 | ||||
|                         if brokerType == "leader": | ||||
|                             # validate to see if leader election is successful | ||||
|                             self.log_message("validating leader election") | ||||
|                             result = kafka_system_test_utils.validate_leader_election_successful( \ | ||||
|                                          self.testcaseEnv, leaderDict, self.testcaseEnv.validationStatusDict) | ||||
|                  | ||||
|                             # trigger leader re-election by stopping leader to get re-election latency | ||||
|                             self.log_message("bounce_broker flag : " + bounceBrokerFlag) | ||||
|                             if bounceBrokerFlag.lower() == "true": | ||||
|                                 reelectionLatency = kafka_system_test_utils.get_reelection_latency( | ||||
|                                     self.systemTestEnv, self.testcaseEnv, leaderDict, self.leaderAttributesDict) | ||||
|                                 latencyKeyName = "Leader Election Latency - iter " + str(i) + " brokerid " + leaderDict["brokerid"] | ||||
|                                 self.testcaseEnv.validationStatusDict[latencyKeyName] = str("{0:.2f}".format(reelectionLatency * 1000)) + " ms" | ||||
|                                 self.testcaseEnv.userDefinedEnvVarDict["leaderElectionLatencyList"].append("{0:.2f}".format(reelectionLatency * 1000)) | ||||
| 
 | ||||
|                                 time.sleep(1) | ||||
| 
 | ||||
|                                 # starting previously terminated broker  | ||||
|                                 self.log_message("starting the previously terminated broker") | ||||
|                                 stoppedLeaderEntityId  = leaderDict["entity_id"] | ||||
|                                 kafka_system_test_utils.start_entity_in_background(self.systemTestEnv, self.testcaseEnv, stoppedLeaderEntityId) | ||||
|                             else: | ||||
|                                 try: | ||||
|                                     # GC Pause simulation | ||||
|                                     hostname  = leaderDict["hostname"] | ||||
|                                     pauseTime = self.testcaseEnv.testcaseArgumentsDict["pause_time_in_seconds"] | ||||
|                                     parentPid = self.testcaseEnv.entityBrokerParentPidDict[leaderDict["entity_id"]] | ||||
|                                     pidStack  = system_test_utils.get_remote_child_processes(hostname, parentPid) | ||||
|                                     system_test_utils.simulate_garbage_collection_pause_in_remote_process(hostname, pidStack, pauseTime) | ||||
|                                 except: | ||||
|                                     pass | ||||
| 
 | ||||
|                         else: # follower | ||||
|                             stoppedBrokerEntityId = leaderDict["entity_id"] | ||||
|                             self.log_message("Found leader with entity id: " + stoppedBrokerEntityId) | ||||
|                         else: # Follower | ||||
|                             self.log_message("looking up follower") | ||||
|                             # a list of all brokers | ||||
|                             brokerEntityIdList = system_test_utils.get_data_from_list_of_dicts( | ||||
|                                 self.systemTestEnv.clusterEntityConfigDictList, "role", "broker", "entity_id") | ||||
|                             brokerEntityIdList = system_test_utils.get_data_from_list_of_dicts(self.systemTestEnv.clusterEntityConfigDictList, "role", "broker", "entity_id") | ||||
| 
 | ||||
|                             # we pick the follower from the first broker which is not the leader | ||||
|                             # we pick the first non-leader broker as the follower | ||||
|                             firstFollowerEntityId = None | ||||
|                             for brokerEntityId in brokerEntityIdList: | ||||
|                                 if brokerEntityId != leaderDict["entity_id"]: | ||||
|                                     firstFollowerEntityId = brokerEntityId | ||||
|                                     break | ||||
|          | ||||
|                             # stopping Follower | ||||
|                             self.log_message("bounce_broker flag : " + bounceBrokerFlag) | ||||
|                             if bounceBrokerFlag.lower() == "true": | ||||
|                                 self.log_message("stopping follower with entity id: " + firstFollowerEntityId) | ||||
|                                 kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, firstFollowerEntityId, | ||||
|                                     self.testcaseEnv.entityBrokerParentPidDict[firstFollowerEntityId]) | ||||
| 
 | ||||
|                                 time.sleep(1) | ||||
| 
 | ||||
|                                 # starting previously terminated broker  | ||||
|                                 self.log_message("starting the previously terminated broker") | ||||
|                             stoppedBrokerEntityId  = firstFollowerEntityId | ||||
|                                 kafka_system_test_utils.start_entity_in_background(self.systemTestEnv, self.testcaseEnv, stoppedBrokerEntityId) | ||||
|                             self.log_message("Found follower with entity id: " + stoppedBrokerEntityId) | ||||
| 
 | ||||
|                     elif brokerType == "controller": | ||||
|                         self.log_message("looking up controller") | ||||
|  | @ -276,25 +259,64 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                         # 'hostname': u'localhost', | ||||
|                         # 'brokerid': '3'} | ||||
| 
 | ||||
|                         # stopping Controller | ||||
|                         self.log_message("bounce_broker flag : " + bounceBrokerFlag) | ||||
|                         if bounceBrokerFlag.lower() == "true": | ||||
|                             self.log_message("stopping controller : " + controllerDict["brokerid"]) | ||||
|                             kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, controllerDict["entity_id"],  | ||||
|                                 self.testcaseEnv.entityBrokerParentPidDict[controllerDict["entity_id"]]) | ||||
|                         stoppedBrokerEntityId = controllerDict["entity_id"] | ||||
|                         self.log_message("Found controller with entity id: " + stoppedBrokerEntityId) | ||||
| 
 | ||||
|                             time.sleep(1) | ||||
|                     # ============================================= | ||||
|                     # Bounce the broker | ||||
|                     # ============================================= | ||||
|                     if bounceBrokerFlag.lower() == "true": | ||||
|                         if brokerType == "leader": | ||||
|                             # validate to see if leader election is successful | ||||
|                             self.log_message("validating leader election") | ||||
|                             kafka_system_test_utils.validate_leader_election_successful(self.testcaseEnv, leaderDict, self.testcaseEnv.validationStatusDict) | ||||
|                  | ||||
|                             # trigger leader re-election by stopping leader to get re-election latency | ||||
|                             reelectionLatency = kafka_system_test_utils.get_reelection_latency(self.systemTestEnv, self.testcaseEnv, leaderDict, self.leaderAttributesDict) | ||||
|                             latencyKeyName = "Leader Election Latency - iter " + str(i) + " brokerid " + leaderDict["brokerid"] | ||||
|                             self.testcaseEnv.validationStatusDict[latencyKeyName] = str("{0:.2f}".format(reelectionLatency * 1000)) + " ms" | ||||
|                             self.testcaseEnv.userDefinedEnvVarDict["leaderElectionLatencyList"].append("{0:.2f}".format(reelectionLatency * 1000)) | ||||
| 
 | ||||
|                         elif brokerType == "follower": | ||||
|                             # stopping Follower | ||||
|                             self.log_message("stopping follower with entity id: " + firstFollowerEntityId) | ||||
|                             kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, firstFollowerEntityId, self.testcaseEnv.entityBrokerParentPidDict[firstFollowerEntityId]) | ||||
|     | ||||
|                         elif brokerType == "controller": | ||||
|                             # stopping Controller | ||||
|                             self.log_message("stopping controller : " + controllerDict["brokerid"]) | ||||
|                             kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, controllerDict["entity_id"], self.testcaseEnv.entityBrokerParentPidDict[controllerDict["entity_id"]]) | ||||
| 
 | ||||
|                         brokerDownTimeInSec = 5 | ||||
|                         try: | ||||
|                             brokerDownTimeInSec = int(self.testcaseEnv.testcaseArgumentsDict["broker_down_time_in_sec"]) | ||||
|                         except: | ||||
|                             pass # take default | ||||
|                         time.sleep(brokerDownTimeInSec) | ||||
| 
 | ||||
|                         # starting previously terminated broker  | ||||
|                         self.log_message("starting the previously terminated broker") | ||||
|                             stoppedBrokerEntityId  = controllerDict["entity_id"] | ||||
|                         kafka_system_test_utils.start_entity_in_background(self.systemTestEnv, self.testcaseEnv, stoppedBrokerEntityId) | ||||
| 
 | ||||
|                     else: | ||||
|                         # GC Pause simulation | ||||
|                         pauseTime = None  | ||||
|                         try: | ||||
|                             hostname  = leaderDict["hostname"] | ||||
|                             pauseTime = self.testcaseEnv.testcaseArgumentsDict["pause_time_in_seconds"] | ||||
|                             parentPid = self.testcaseEnv.entityBrokerParentPidDict[leaderDict["entity_id"]] | ||||
|                             pidStack  = system_test_utils.get_remote_child_processes(hostname, parentPid) | ||||
|                             system_test_utils.simulate_garbage_collection_pause_in_remote_process(hostname, pidStack, pauseTime) | ||||
|                         except: | ||||
|                             pass | ||||
| 
 | ||||
| 
 | ||||
|                     self.anonLogger.info("sleeping for 15s") | ||||
|                     time.sleep(15) | ||||
|                     i += 1 | ||||
|                 # while loop | ||||
| 
 | ||||
|                 # update Leader Election Latency MIN/MAX to testcaseEnv.validationStatusDict | ||||
|                 self.testcaseEnv.validationStatusDict["Leader Election Latency MIN"] = None | ||||
|                 try: | ||||
|                     self.testcaseEnv.validationStatusDict["Leader Election Latency MIN"] = \ | ||||
|  | @ -335,11 +357,25 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                     time.sleep(2) | ||||
| 
 | ||||
|                 # ============================================= | ||||
|                 # starting consumer | ||||
|                 # collect logs from remote hosts to find the | ||||
|                 # minimum common offset of a certain log | ||||
|                 # segment file among all replicas | ||||
|                 # ============================================= | ||||
|                 minStartingOffsetDict = None | ||||
|                 if logRetentionTest.lower() == "true": | ||||
|                     self.anonLogger.info("sleeping for 10s before collecting logs") | ||||
|                     time.sleep(10) | ||||
|                     kafka_system_test_utils.collect_logs_from_remote_hosts(self.systemTestEnv, self.testcaseEnv) | ||||
| 
 | ||||
|                     minStartingOffsetDict = kafka_system_test_utils.getMinCommonStartingOffset(self.systemTestEnv, self.testcaseEnv) | ||||
|                     print | ||||
|                     pprint.pprint(minStartingOffsetDict) | ||||
| 
 | ||||
|                 # ============================================= | ||||
|                 # starting debug consumer | ||||
|                 # ============================================= | ||||
|                 self.log_message("starting debug consumers in the background") | ||||
|                 #kafka_system_test_utils.start_console_consumer(self.systemTestEnv, self.testcaseEnv) | ||||
|                 kafka_system_test_utils.start_simple_consumer(self.systemTestEnv, self.testcaseEnv) | ||||
|                 kafka_system_test_utils.start_simple_consumer(self.systemTestEnv, self.testcaseEnv, minStartingOffsetDict) | ||||
|                 self.anonLogger.info("sleeping for 10s") | ||||
|                 time.sleep(10) | ||||
|                      | ||||
|  | @ -365,8 +401,13 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | |||
|                 # validate the data matched and checksum | ||||
|                 # ============================================= | ||||
|                 self.log_message("validating data matched") | ||||
|                 #kafka_system_test_utils.validate_data_matched(self.systemTestEnv, self.testcaseEnv) | ||||
|                 kafka_system_test_utils.validate_simple_consumer_data_matched(self.systemTestEnv, self.testcaseEnv) | ||||
| 
 | ||||
|                 if logRetentionTest.lower() == "true": | ||||
|                     kafka_system_test_utils.validate_simple_consumer_data_matched_across_replicas(self.systemTestEnv, self.testcaseEnv) | ||||
|                     kafka_system_test_utils.validate_data_matched(self.systemTestEnv, self.testcaseEnv) | ||||
|                 else: | ||||
|                     #kafka_system_test_utils.validate_simple_consumer_data_matched(self.systemTestEnv, self.testcaseEnv) | ||||
|                     kafka_system_test_utils.validate_simple_consumer_data_matched_across_replicas(self.systemTestEnv, self.testcaseEnv) | ||||
|                     kafka_system_test_utils.validate_broker_log_segment_checksum(self.systemTestEnv, self.testcaseEnv) | ||||
| 
 | ||||
|                 # ============================================= | ||||
|  |  | |||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,102 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : 1. log.index.interval.bytes => 490", | ||||
|                   "02":"Setting log.index.interval.bytes to slightly smaller than message size to force indexing on each message", | ||||
|                   "03":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "06":"Restart the terminated broker", | ||||
|                   "07":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "08":"At the end it verifies the log size and contents", | ||||
|                   "09":"Use a consumer to verify no message loss.", | ||||
|                   "10":"Producer dimensions : mode:sync, acks:-1, comp:0", | ||||
|                   "11":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,102 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : 1. ack => 1", | ||||
|                   "02":"Setting log.index.interval.bytes to slightly smaller than message size to force indexing on each message", | ||||
|                   "03":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "06":"Restart the terminated broker", | ||||
|                   "07":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "08":"At the end it verifies the log size and contents", | ||||
|                   "09":"Use a consumer to verify no message loss.", | ||||
|                   "10":"Producer dimensions : mode:sync, acks:1, comp:0", | ||||
|                   "11":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,102 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : 1. ack => -1, 2. comp => 1", | ||||
|                   "02":"Setting log.index.interval.bytes to slightly smaller than message size to force indexing on each message", | ||||
|                   "03":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "06":"Restart the terminated broker", | ||||
|                   "07":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "08":"At the end it verifies the log size and contents", | ||||
|                   "09":"Use a consumer to verify no message loss.", | ||||
|                   "10":"Producer dimensions : mode:sync, acks:-1, comp:1", | ||||
|                   "11":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,102 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : 1. ack => 1", | ||||
|                   "02":"Setting log.index.interval.bytes to slightly smaller than message size to force indexing on each message", | ||||
|                   "03":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "04":"This test sends messages to 3 replicas", | ||||
|                   "05":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "06":"Restart the terminated broker", | ||||
|                   "07":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "08":"At the end it verifies the log size and contents", | ||||
|                   "09":"Use a consumer to verify no message loss.", | ||||
|                   "10":"Producer dimensions : mode:sync, acks:1, comp:1", | ||||
|                   "11":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log.index.interval.bytes": "490", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,101 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : Base Test", | ||||
|                   "02":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:-1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log.index.interval.bytes": "10", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log.index.interval.bytes": "10", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log.index.interval.bytes": "10", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,98 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:1, comp:0", | ||||
|                   "10":"Log segment size    : 512000" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "512000", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "512000", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "512000", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9099" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,98 @@ | |||
| { | ||||
|   "description": {"01":"Leader Failure in Replication with multi topics & partitions : 1. mode => async; 2. comp => 0", | ||||
|                   "02":"Produce and consume messages to 2 topics - 3 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "10":"Log segment size    : 512000" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "3", | ||||
|     "num_iteration": "3", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "message_producing_free_time_sec": "15" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "512000", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "512000", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "512000", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "10000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -65,6 +65,7 @@ | |||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "producer-retry-backoff-ms": "2500", | ||||
|       "log_filename": "producer_performance.log", | ||||
|       "config_filename": "producer_performance.properties" | ||||
|     }, | ||||
|  |  | |||
|  | @ -65,6 +65,7 @@ | |||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "producer-retry-backoff-ms": "2500", | ||||
|       "log_filename": "producer_performance.log", | ||||
|       "config_filename": "producer_performance.properties" | ||||
|     }, | ||||
|  |  | |||
|  | @ -65,6 +65,7 @@ | |||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "producer-retry-backoff-ms": "2500", | ||||
|       "log_filename": "producer_performance.log", | ||||
|       "config_filename": "producer_performance.properties" | ||||
|     }, | ||||
|  |  | |||
|  | @ -65,6 +65,7 @@ | |||
|       "message": "100", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "producer-retry-backoff-ms": "2500", | ||||
|       "log_filename": "producer_performance.log", | ||||
|       "config_filename": "producer_performance.properties" | ||||
|     }, | ||||
|  |  | |||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : Base Test", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:-1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. acks => -1, comp => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:-1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. sync => false, acks => -1, comp => 0", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:-1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. acks => -1, 2. comp => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:-1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 3 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "3", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : Base Test", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:-1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. acks => -1, comp => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:-1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:sync, acks:1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"true", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. sync => false, acks => -1, comp => 0", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:-1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:1, comp:0", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "0", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. acks => -1, 2. comp => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:-1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "-1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -0,0 +1,76 @@ | |||
| { | ||||
|     "cluster_config": [ | ||||
|         { | ||||
|             "entity_id": "0", | ||||
|             "hostname": "localhost", | ||||
|             "role": "zookeeper", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9990" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "1", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9991" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "2", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9992" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "3", | ||||
|             "hostname": "localhost", | ||||
|             "role": "broker", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9993" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "4", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9997" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "5", | ||||
|             "hostname": "localhost", | ||||
|             "role": "producer_performance", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9998" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "6", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9999" | ||||
|         }, | ||||
|         { | ||||
|             "entity_id": "7", | ||||
|             "hostname": "localhost", | ||||
|             "role": "console_consumer", | ||||
|             "cluster_name": "source", | ||||
|             "kafka_home": "default", | ||||
|             "java_home": "default", | ||||
|             "jmx_port": "9191" | ||||
|         } | ||||
|     ] | ||||
| } | ||||
|  | @ -0,0 +1,103 @@ | |||
| { | ||||
|   "description": {"01":"Broker Log Retention (Replica Factor < No. of Brokers) : 1. acks => 1", | ||||
|                   "02":"Produce and consume messages to 2 topics - 2 partitions", | ||||
|                   "03":"This test sends messages to 2 replicas", | ||||
|                   "04":"To trigger leader election: find the leader and terminate by controlled failure (kill -15)", | ||||
|                   "05":"Restart the terminated broker", | ||||
|                   "06":"Lookup brokers' log4j messages and verify that leader is re-elected successfully", | ||||
|                   "07":"At the end it verifies the log size and contents", | ||||
|                   "08":"Use a consumer to verify no message loss.", | ||||
|                   "09":"Producer dimensions : mode:async, acks:1, comp:1", | ||||
|                   "10":"Log segment size    : 102400" | ||||
|   }, | ||||
|   "testcase_args": { | ||||
|     "broker_type": "leader", | ||||
|     "bounce_broker": "true", | ||||
|     "replica_factor": "2", | ||||
|     "num_partition": "2", | ||||
|     "num_iteration": "1", | ||||
|     "sleep_seconds_between_producer_calls": "1", | ||||
|     "broker_down_time_in_sec": "5", | ||||
|     "message_producing_free_time_sec": "15", | ||||
|     "log_retention_test": "true" | ||||
|   }, | ||||
|   "entities": [ | ||||
|     { | ||||
|       "entity_id": "0", | ||||
|       "clientPort": "2188", | ||||
|       "dataDir": "/tmp/zookeeper_0", | ||||
|       "log_filename": "zookeeper_2188.log", | ||||
|       "config_filename": "zookeeper_2188.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "1", | ||||
|       "port": "9091", | ||||
|       "brokerid": "1", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_1_logs", | ||||
|       "log_filename": "kafka_server_9091.log", | ||||
|       "config_filename": "kafka_server_9091.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "2", | ||||
|       "port": "9092", | ||||
|       "brokerid": "2", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_2_logs", | ||||
|       "log_filename": "kafka_server_9092.log", | ||||
|       "config_filename": "kafka_server_9092.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "3", | ||||
|       "port": "9093", | ||||
|       "brokerid": "3", | ||||
|       "log.file.size": "102400", | ||||
|       "log.retention.size": "1048576", | ||||
|       "log.dir": "/tmp/kafka_server_3_logs", | ||||
|       "log_filename": "kafka_server_9093.log", | ||||
|       "config_filename": "kafka_server_9093.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "4", | ||||
|       "topic": "test_1", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_4.log", | ||||
|       "config_filename": "producer_performance_4.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "5", | ||||
|       "topic": "test_2", | ||||
|       "threads": "5", | ||||
|       "compression-codec": "1", | ||||
|       "message-size": "500", | ||||
|       "message": "500", | ||||
|       "request-num-acks": "1", | ||||
|       "sync":"false", | ||||
|       "log_filename": "producer_performance_5.log", | ||||
|       "config_filename": "producer_performance_5.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "6", | ||||
|       "topic": "test_1", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_6.log", | ||||
|       "config_filename": "console_consumer_6.properties" | ||||
|     }, | ||||
|     { | ||||
|       "entity_id": "7", | ||||
|       "topic": "test_2", | ||||
|       "groupid": "mytestgroup", | ||||
|       "consumer-timeout-ms": "60000", | ||||
|       "log_filename": "console_consumer_7.log", | ||||
|       "config_filename": "console_consumer_7.properties" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
|  | @ -38,6 +38,14 @@ | |||
|         "testcase_0121", | ||||
|         "testcase_0122", | ||||
|         "testcase_0123", | ||||
|         "testcase_0124", | ||||
|         "testcase_0125", | ||||
|         "testcase_0126", | ||||
|         "testcase_0127", | ||||
| 
 | ||||
|         "testcase_0131", | ||||
|         "testcase_0132", | ||||
|         "testcase_0133", | ||||
| 
 | ||||
|         "testcase_0151", | ||||
|         "testcase_0152", | ||||
|  | @ -73,15 +81,41 @@ | |||
|         "testcase_0305", | ||||
|         "testcase_0306", | ||||
|         "testcase_0307", | ||||
|         "testcase_0308" | ||||
|         "testcase_0308", | ||||
| 
 | ||||
|         "testcase_4001", | ||||
|         "testcase_4002", | ||||
|         "testcase_4003", | ||||
|         "testcase_4004", | ||||
|         "testcase_4005", | ||||
|         "testcase_4006", | ||||
|         "testcase_4007", | ||||
|         "testcase_4008", | ||||
| 
 | ||||
|         "testcase_4011", | ||||
|         "testcase_4012", | ||||
|         "testcase_4013", | ||||
|         "testcase_4014", | ||||
|         "testcase_4015", | ||||
|         "testcase_4016", | ||||
|         "testcase_4017", | ||||
|         "testcase_4018" | ||||
|     ], | ||||
| 
 | ||||
|     "MigrationToolTest"  : [ | ||||
|         "testcase_9001" | ||||
|         "testcase_9001", | ||||
|         "testcase_9003", | ||||
|         "testcase_9004", | ||||
|         "testcase_9005", | ||||
|         "testcase_9006" | ||||
|     ], | ||||
| 
 | ||||
|     "MirrorMakerTest"  : [ | ||||
|         "testcase_5001", | ||||
|         "testcase_5002" | ||||
|         "testcase_5002", | ||||
|         "testcase_5003", | ||||
|         "testcase_5004", | ||||
|         "testcase_5005", | ||||
|         "testcase_5006" | ||||
|     ] | ||||
| } | ||||
|  |  | |||
|  | @ -174,6 +174,20 @@ def collect_logs_from_remote_hosts(systemTestEnv, testcaseEnv): | |||
|             logger.debug("executing command [" + cmdStr + "]", extra=d) | ||||
|             system_test_utils.sys_call(cmdStr) | ||||
| 
 | ||||
|         # ============================== | ||||
|         # collect ZK log | ||||
|         # ============================== | ||||
|         if role == "zookeeper": | ||||
|             dataLogPathName = system_test_utils.get_data_by_lookup_keyval( | ||||
|                                   testcaseEnv.testcaseConfigsList, "entity_id", entity_id, "dataDir") | ||||
| 
 | ||||
|             cmdList = ["scp -r", | ||||
|                        hostname + ":" + dataLogPathName, | ||||
|                        logPathName] | ||||
|             cmdStr  = " ".join(cmdList) | ||||
|             logger.debug("executing command [" + cmdStr + "]", extra=d) | ||||
|             system_test_utils.sys_call(cmdStr) | ||||
| 
 | ||||
|     # ============================== | ||||
|     # collect dashboards file | ||||
|     # ============================== | ||||
|  | @ -485,9 +499,12 @@ def start_brokers(systemTestEnv, testcaseEnv): | |||
|         start_entity_in_background(systemTestEnv, testcaseEnv, brokerEntityId) | ||||
| 
 | ||||
| 
 | ||||
| def start_mirror_makers(systemTestEnv, testcaseEnv): | ||||
|     clusterEntityConfigDictList = systemTestEnv.clusterEntityConfigDictList | ||||
| def start_mirror_makers(systemTestEnv, testcaseEnv, onlyThisEntityId=None): | ||||
| 
 | ||||
|     if onlyThisEntityId is not None: | ||||
|         start_entity_in_background(systemTestEnv, testcaseEnv, onlyThisEntityId) | ||||
|     else: | ||||
|         clusterEntityConfigDictList = systemTestEnv.clusterEntityConfigDictList | ||||
|         brokerEntityIdList          = system_test_utils.get_data_from_list_of_dicts(  | ||||
|                                       clusterEntityConfigDictList, "role", "mirror_maker", "entity_id") | ||||
| 
 | ||||
|  | @ -1040,9 +1057,10 @@ def get_message_checksum(logPathName): | |||
|         if not "checksum:" in line: | ||||
|             continue | ||||
|         else: | ||||
|             matchObj = re.match('.*checksum:(\d*?).*', line) | ||||
|             matchObj = re.match('.*checksum:(\d*).*', line) | ||||
|             if matchObj is not None: | ||||
|                 messageChecksumList.append( matchObj.group(1) ) | ||||
|                 checksum = matchObj.group(1) | ||||
|                 messageChecksumList.append( checksum ) | ||||
|             else: | ||||
|                 logger.error("unexpected log line : " + line, extra=d) | ||||
| 
 | ||||
|  | @ -1311,13 +1329,17 @@ def stop_all_remote_running_processes(systemTestEnv, testcaseEnv): | |||
|         stop_remote_entity(systemTestEnv, entityId, zkParentPid) | ||||
| 
 | ||||
| 
 | ||||
| def start_migration_tool(systemTestEnv, testcaseEnv): | ||||
| def start_migration_tool(systemTestEnv, testcaseEnv, onlyThisEntityId=None): | ||||
|     clusterConfigList = systemTestEnv.clusterEntityConfigDictList | ||||
|     migrationToolConfigList = system_test_utils.get_dict_from_list_of_dicts(clusterConfigList, "role", "migration_tool") | ||||
| 
 | ||||
|     migrationToolConfig = migrationToolConfigList[0] | ||||
|     host              = migrationToolConfig["hostname"] | ||||
|     for migrationToolConfig in migrationToolConfigList: | ||||
| 
 | ||||
|         entityId = migrationToolConfig["entity_id"] | ||||
| 
 | ||||
|         if onlyThisEntityId is None or entityId == onlyThisEntityId: | ||||
| 
 | ||||
|             host              = migrationToolConfig["hostname"] | ||||
|             jmxPort           = migrationToolConfig["jmx_port"]  | ||||
|             role              = migrationToolConfig["role"]  | ||||
|             kafkaHome         = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "kafka_home") | ||||
|  | @ -1357,6 +1379,20 @@ def start_migration_tool(systemTestEnv, testcaseEnv): | |||
|             cmdStr = " ".join(cmdList) | ||||
|             logger.debug("executing command: [" + cmdStr + "]", extra=d) | ||||
|             system_test_utils.async_sys_call(cmdStr) | ||||
|             time.sleep(5) | ||||
| 
 | ||||
|             pidCmdStr = "ssh " + host + " 'cat " + migrationToolLogPath + "/entity_" + entityId + "_pid' 2> /dev/null" | ||||
|             logger.debug("executing command: [" + pidCmdStr + "]", extra=d) | ||||
|             subproc = system_test_utils.sys_call_return_subproc(pidCmdStr) | ||||
| 
 | ||||
|             # keep track of the remote entity pid in a dictionary | ||||
|             for line in subproc.stdout.readlines(): | ||||
|                 if line.startswith("pid"): | ||||
|                     line = line.rstrip('\n') | ||||
|                     logger.debug("found pid line: [" + line + "]", extra=d) | ||||
|                     tokens = line.split(':') | ||||
|                     testcaseEnv.entityMigrationToolParentPidDict[entityId] = tokens[1] | ||||
| 
 | ||||
| 
 | ||||
| def validate_07_08_migrated_data_matched(systemTestEnv, testcaseEnv): | ||||
|     validationStatusDict        = testcaseEnv.validationStatusDict | ||||
|  | @ -1396,26 +1432,36 @@ def validate_07_08_migrated_data_matched(systemTestEnv, testcaseEnv): | |||
|         consumerMsgChecksumList      = get_message_checksum(consumerLogPathName) | ||||
|         producerMsgChecksumSet       = set(producerMsgChecksumList) | ||||
|         consumerMsgChecksumSet       = set(consumerMsgChecksumList) | ||||
|         producerMsgChecksumUniqList  = list(producerMsgChecksumSet) | ||||
|         consumerMsgChecksumUniqList  = list(consumerMsgChecksumSet) | ||||
| 
 | ||||
|         missingMsgChecksumInConsumer = producerMsgChecksumSet - consumerMsgChecksumSet | ||||
| 
 | ||||
|         logger.debug("size of producerMsgChecksumList      : " + str(len(producerMsgChecksumList)), extra=d) | ||||
|         logger.debug("size of consumerMsgChecksumList      : " + str(len(consumerMsgChecksumList)), extra=d) | ||||
|         logger.debug("size of producerMsgChecksumSet       : " + str(len(producerMsgChecksumSet)), extra=d) | ||||
|         logger.debug("size of consumerMsgChecksumSet       : " + str(len(consumerMsgChecksumSet)), extra=d) | ||||
|         logger.debug("size of producerMsgChecksumUniqList  : " + str(len(producerMsgChecksumUniqList)), extra=d) | ||||
|         logger.debug("size of consumerMsgChecksumUniqList  : " + str(len(consumerMsgChecksumUniqList)), extra=d) | ||||
|         logger.debug("size of missingMsgChecksumInConsumer : " + str(len(missingMsgChecksumInConsumer)), extra=d) | ||||
| 
 | ||||
|         outfile = open(msgChecksumMissingInConsumerLogPathName, "w") | ||||
|         for id in missingMsgChecksumInConsumer: | ||||
|             outfile.write(id + "\n") | ||||
|         outfile.close() | ||||
| 
 | ||||
|         logger.info("no. of unique messages on topic [" + topic + "] sent from publisher  : " + str(len(producerMsgChecksumList)), extra=d) | ||||
|         logger.info("no. of unique messages on topic [" + topic + "] received by consumer : " + str(len(consumerMsgChecksumList)), extra=d) | ||||
|         validationStatusDict["Unique messages from producer on [" + topic + "]"] = str(len(producerMsgChecksumList)) | ||||
|         validationStatusDict["Unique messages from consumer on [" + topic + "]"] = str(len(consumerMsgChecksumList)) | ||||
|         logger.info("no. of messages on topic [" + topic + "] sent from producer          : " + str(len(producerMsgChecksumList)), extra=d) | ||||
|         logger.info("no. of messages on topic [" + topic + "] received by consumer        : " + str(len(consumerMsgChecksumList)), extra=d) | ||||
|         logger.info("no. of unique messages on topic [" + topic + "] sent from producer   : " + str(len(producerMsgChecksumUniqList)),  extra=d) | ||||
|         logger.info("no. of unique messages on topic [" + topic + "] received by consumer : " + str(len(consumerMsgChecksumUniqList)),  extra=d) | ||||
|         validationStatusDict["Unique messages from producer on [" + topic + "]"] = str(len(list(producerMsgChecksumSet))) | ||||
|         validationStatusDict["Unique messages from consumer on [" + topic + "]"] = str(len(list(consumerMsgChecksumSet))) | ||||
| 
 | ||||
|         if ( len(missingMsgChecksumInConsumer) == 0 and len(producerMsgChecksumList) > 0 ): | ||||
|         if ( len(producerMsgChecksumList) > 0 and len(list(producerMsgChecksumSet)) == len(list(consumerMsgChecksumSet))): | ||||
|             validationStatusDict["Validate for data matched on topic [" + topic + "]"] = "PASSED" | ||||
|             #return True | ||||
|         else: | ||||
|             validationStatusDict["Validate for data matched on topic [" + topic + "]"] = "FAILED" | ||||
|             logger.info("See " + msgChecksumMissingInConsumerLogPathName + " for missing MessageID", extra=d) | ||||
|             #return False | ||||
| 
 | ||||
| def validate_broker_log_segment_checksum(systemTestEnv, testcaseEnv, clusterName="source"): | ||||
| 
 | ||||
|  | @ -1542,7 +1588,7 @@ def validate_broker_log_segment_checksum(systemTestEnv, testcaseEnv, clusterName | |||
|     else: | ||||
|         validationStatusDict["Validate for merged log segment checksum in cluster [" + clusterName + "]"] = "FAILED" | ||||
| 
 | ||||
| def start_simple_consumer(systemTestEnv, testcaseEnv): | ||||
| def start_simple_consumer(systemTestEnv, testcaseEnv, minStartingOffsetDict=None): | ||||
| 
 | ||||
|     clusterList        = systemTestEnv.clusterEntityConfigDictList | ||||
|     consumerConfigList = system_test_utils.get_dict_from_list_of_dicts(clusterList, "role", "console_consumer") | ||||
|  | @ -1586,45 +1632,42 @@ def start_simple_consumer(systemTestEnv, testcaseEnv): | |||
|             numPartitions = int(numPartitions) | ||||
| 
 | ||||
|         replicaIndex   = 1 | ||||
|         startingOffset = -2 | ||||
|         brokerPortList = brokerListStr.split(',') | ||||
|         for brokerPort in brokerPortList: | ||||
| 
 | ||||
|             k = 0 | ||||
|             while (k < numPartitions): | ||||
|                 logger.info("starting debug consumer for replica on [" + brokerPort + "] partition [" + str(k) + "]", extra=d) | ||||
|             partitionId = 0 | ||||
|             while (partitionId < numPartitions): | ||||
|                 logger.info("starting debug consumer for replica on [" + brokerPort + "] partition [" + str(partitionId) + "]", extra=d) | ||||
| 
 | ||||
|                 if minStartingOffsetDict is not None: | ||||
|                     topicPartition = topic + "-" + str(partitionId) | ||||
|                     startingOffset = minStartingOffsetDict[topicPartition] | ||||
| 
 | ||||
|                 outputFilePathName = consumerLogPath + "/simple_consumer_" + topic + "-" + str(partitionId) + "_r" + str(replicaIndex) + ".log" | ||||
|                 brokerPortLabel = brokerPort.replace(":", "_") | ||||
|                 cmdList = ["ssh " + host, | ||||
|                            "'JAVA_HOME=" + javaHome, | ||||
|                            kafkaRunClassBin + " kafka.tools.SimpleConsumerShell", | ||||
|                            "--broker-list " + brokerListStr, | ||||
|                            "--topic " + topic, | ||||
|                            "--partition " + str(k), | ||||
|                            "--partition " + str(partitionId), | ||||
|                            "--replica " + str(replicaIndex), | ||||
|                            "--offset " + str(startingOffset), | ||||
|                            "--no-wait-at-logend ", | ||||
|                            " >> " + consumerLogPath + "/simple_consumer_" + str(replicaIndex) + ".log", | ||||
|                            " > " + outputFilePathName, | ||||
|                            " & echo pid:$! > " + consumerLogPath + "/entity_" + entityId + "_pid'"] | ||||
|      | ||||
|                 cmdStr = " ".join(cmdList) | ||||
|      | ||||
|                 logger.debug("executing command: [" + cmdStr + "]", extra=d) | ||||
|                 system_test_utils.async_sys_call(cmdStr) | ||||
|                 time.sleep(2) | ||||
|                 subproc_1 = system_test_utils.sys_call_return_subproc(cmdStr) | ||||
|                 # dummy for-loop to wait until the process is completed | ||||
|                 for line in subproc_1.stdout.readlines(): | ||||
|                     pass  | ||||
|                 time.sleep(1) | ||||
|     | ||||
|                 pidCmdStr = "ssh " + host + " 'cat " + consumerLogPath + "/entity_" + entityId + "_pid'" | ||||
|                 logger.debug("executing command: [" + pidCmdStr + "]", extra=d) | ||||
|                 subproc = system_test_utils.sys_call_return_subproc(pidCmdStr) | ||||
|      | ||||
|                 # keep track of the remote entity pid in a dictionary | ||||
|                 for line in subproc.stdout.readlines(): | ||||
|                     if line.startswith("pid"): | ||||
|                         line = line.rstrip('\n') | ||||
|                         logger.debug("found pid line: [" + line + "]", extra=d) | ||||
|                         tokens = line.split(':') | ||||
|                         testcaseEnv.consumerHostParentPidDict[host] = tokens[1] | ||||
|      | ||||
|                 logger.info("sleeping for 5 sec",extra=d) | ||||
|                 time.sleep(5) | ||||
|                 k += 1 | ||||
|                 partitionId += 1 | ||||
|             replicaIndex += 1 | ||||
| 
 | ||||
| def validate_simple_consumer_data_matched(systemTestEnv, testcaseEnv): | ||||
|  | @ -1733,4 +1776,187 @@ def get_controller_attributes(systemTestEnv, testcaseEnv): | |||
|                                           tcConfigsList, "brokerid", brokerid, "entity_id") | ||||
|     return controllerDict | ||||
| 
 | ||||
| def getMinCommonStartingOffset(systemTestEnv, testcaseEnv, clusterName="source"): | ||||
| 
 | ||||
|     brokerLogStartOffsetDict = {} | ||||
|     minCommonStartOffsetDict = {} | ||||
| 
 | ||||
|     tcConfigsList        = testcaseEnv.testcaseConfigsList | ||||
|     clusterConfigList    = systemTestEnv.clusterEntityConfigDictList | ||||
|     allBrokerConfigList  = system_test_utils.get_dict_from_list_of_dicts(clusterConfigList, "role", "broker") | ||||
|     brokerEntityIdList   = system_test_utils.get_data_from_list_of_dicts(allBrokerConfigList, "cluster_name", clusterName, "entity_id") | ||||
| 
 | ||||
|     # loop through all brokers | ||||
|     for brokerEntityId in sorted(brokerEntityIdList): | ||||
|         # remoteLogSegmentPathName : /tmp/kafka_server_4_logs | ||||
|         # => remoteLogSegmentDir   : kafka_server_4_logs | ||||
|         remoteLogSegmentPathName = system_test_utils.get_data_by_lookup_keyval(tcConfigsList, "entity_id", brokerEntityId, "log.dir") | ||||
|         remoteLogSegmentDir      = os.path.basename(remoteLogSegmentPathName) | ||||
|         logPathName              = get_testcase_config_log_dir_pathname(testcaseEnv, "broker", brokerEntityId, "default") | ||||
|         localLogSegmentPath      = logPathName + "/" + remoteLogSegmentDir | ||||
| 
 | ||||
|         # loop through all topicPartition directories such as : test_1-0, test_1-1, ...  | ||||
|         for topicPartition in sorted(os.listdir(localLogSegmentPath)): | ||||
|             # found a topic-partition directory | ||||
|             if os.path.isdir(localLogSegmentPath + "/" + topicPartition): | ||||
| 
 | ||||
|                 # startingOffsetKey : <brokerEntityId>:<topicPartition>  (eg. 1:test_1-0) | ||||
|                 startingOffsetKey = brokerEntityId + ":" + topicPartition | ||||
| 
 | ||||
|                 # log segment files are located in : localLogSegmentPath + "/" + topicPartition | ||||
|                 # sort the log segment files under each topic-partition | ||||
|                 for logFile in sorted(os.listdir(localLogSegmentPath + "/" + topicPartition)): | ||||
| 
 | ||||
|                     # logFile is located at: | ||||
|                     # system_test/xxxx_testsuite/testcase_xxxx/logs/broker-1/kafka_server_1_logs/test_1-0/00000000000000003800.log | ||||
|                     if logFile.endswith(".log"): | ||||
|                         matchObj = re.match("0*(.*)\.log", logFile)    # remove the leading zeros & the file extension | ||||
|                         startingOffset = matchObj.group(1)             # this is the starting offset from the file name | ||||
|                         if len(startingOffset) == 0:                   # when log filename is: 00000000000000000000.log | ||||
|                             startingOffset = "0" | ||||
| 
 | ||||
|                         # starting offset of a topic-partition can be retrieved from the filename of the first log segment | ||||
|                         # => break out of this innest for-loop after processing the first log segment file | ||||
|                         brokerLogStartOffsetDict[startingOffsetKey] = startingOffset | ||||
|                         break | ||||
| 
 | ||||
|     # brokerLogStartOffsetDict is like this: | ||||
|     # {u'1:test_1-0': u'400', | ||||
|     #  u'1:test_1-1': u'400', | ||||
|     #  u'1:test_2-0': u'200', | ||||
|     #  u'1:test_2-1': u'200', | ||||
|     #  u'2:test_1-0': u'400', | ||||
|     #  u'2:test_1-1': u'400', | ||||
|     #  u'2:test_2-0': u'200', | ||||
|     #  u'2:test_2-1': u'200', | ||||
|     #  u'3:test_1-0': '0', | ||||
|     #  u'3:test_1-1': '0', | ||||
|     #  u'3:test_2-0': '0', | ||||
|     #  u'3:test_2-1': '0'} | ||||
| 
 | ||||
|     # loop through brokerLogStartOffsetDict to get the min common starting offset for each topic-partition     | ||||
|     for brokerTopicPartition in sorted(brokerLogStartOffsetDict.iterkeys()): | ||||
|         topicPartition = brokerTopicPartition.split(':')[1] | ||||
| 
 | ||||
|         if topicPartition in minCommonStartOffsetDict: | ||||
|             # key exists => if the new value is greater, replace the existing value with new | ||||
|             if minCommonStartOffsetDict[topicPartition] < brokerLogStartOffsetDict[brokerTopicPartition]: | ||||
|                 minCommonStartOffsetDict[topicPartition] = brokerLogStartOffsetDict[brokerTopicPartition] | ||||
|         else: | ||||
|             # key doesn't exist => add it to the dictionary | ||||
|             minCommonStartOffsetDict[topicPartition] = brokerLogStartOffsetDict[brokerTopicPartition] | ||||
| 
 | ||||
|     # returning minCommonStartOffsetDict which is like this: | ||||
|     # {u'test_1-0': u'400', | ||||
|     #  u'test_1-1': u'400', | ||||
|     #  u'test_2-0': u'200', | ||||
|     #  u'test_2-1': u'200'} | ||||
|     return minCommonStartOffsetDict | ||||
| 
 | ||||
| def validate_simple_consumer_data_matched_across_replicas(systemTestEnv, testcaseEnv): | ||||
|     validationStatusDict        = testcaseEnv.validationStatusDict | ||||
|     clusterEntityConfigDictList = systemTestEnv.clusterEntityConfigDictList | ||||
|     consumerEntityIdList        = system_test_utils.get_data_from_list_of_dicts( | ||||
|                                   clusterEntityConfigDictList, "role", "console_consumer", "entity_id") | ||||
|     replicaFactor               = testcaseEnv.testcaseArgumentsDict["replica_factor"] | ||||
|     numPartition                = testcaseEnv.testcaseArgumentsDict["num_partition"] | ||||
| 
 | ||||
|     # Unique messages from producer on [test_1]  :  1500 | ||||
|     # Unique messages from consumer on [test_1]  :  1500 | ||||
| 
 | ||||
|     # Unique messages from consumer on [test_1] at simple_consumer_test_1-0_r1.log  :  750 | ||||
|     # Unique messages from consumer on [test_1] at simple_consumer_test_1-0_r2.log  :  750 | ||||
|     # Unique messages from consumer on [test_1] at simple_consumer_test_1-0_r3.log  :  0 | ||||
| 
 | ||||
|     # Unique messages from consumer on [test_1] at simple_consumer_test_1-1_r1.log  :  0 | ||||
|     # Unique messages from consumer on [test_1] at simple_consumer_test_1-1_r2.log  :  750 | ||||
|     # Unique messages from consumer on [test_1] at simple_consumer_test_1-1_r3.log  :  750 | ||||
| 
 | ||||
|     # ================================================== | ||||
| 
 | ||||
|     # Unique messages from producer on [test_2]  :  1000 | ||||
|     # Unique messages from consumer on [test_2]  :  1000 | ||||
| 
 | ||||
|     # Unique messages from consumer on [test_2] at simple_consumer_test_2-0_r1.log  :  500 | ||||
|     # Unique messages from consumer on [test_2] at simple_consumer_test_2-0_r2.log  :  0 | ||||
|     # Unique messages from consumer on [test_2] at simple_consumer_test_2-0_r3.log  :  500 | ||||
| 
 | ||||
|     # Unique messages from consumer on [test_2] at simple_consumer_test_2-1_r1.log  :  500 | ||||
|     # Unique messages from consumer on [test_2] at simple_consumer_test_2-1_r2.log  :  500 | ||||
|     # Unique messages from consumer on [test_2] at simple_consumer_test_2-1_r3.log  :  0 | ||||
| 
 | ||||
|     mismatchCounter = 0 | ||||
|     for consumerEntityId in consumerEntityIdList: | ||||
| 
 | ||||
|         topic           = system_test_utils.get_data_by_lookup_keyval(testcaseEnv.testcaseConfigsList, "entity_id", consumerEntityId, "topic") | ||||
|         consumerLogPath = get_testcase_config_log_dir_pathname(testcaseEnv, "console_consumer", consumerEntityId, "default") | ||||
| 
 | ||||
|         replicaIdxMsgCountDictList = [] | ||||
|         # replicaIdxMsgCountDictList is being used as follows: | ||||
|         # | ||||
|         # the above replica message count will be organized as follows: | ||||
|         # index of the list would map to the partitionId | ||||
|         # each element in the list maps to the replicaIdx-MessageCount | ||||
|         # to validate that : | ||||
|         # 1. there should be "no. of broker" of non-zero message count and they are equal | ||||
|         # 2. there should be "no. of broker - replication factor" of zero count | ||||
|         # [{"1": "750", "2": "750", "3": "0"  }, | ||||
|         #  {"1": "0"  , "2": "750", "3": "750"}] | ||||
| 
 | ||||
|         j = 0 | ||||
|         while j < int(numPartition): | ||||
|             newDict = {} | ||||
|             replicaIdxMsgCountDictList.append(newDict) | ||||
|             j += 1 | ||||
| 
 | ||||
|         for logFile in sorted(os.listdir(consumerLogPath)): | ||||
| 
 | ||||
|             if logFile.startswith("simple_consumer_") and logFile.endswith(".log"): | ||||
|                 matchObj    = re.match("simple_consumer_"+topic+"-(\d*)_r(\d*)\.log" , logFile) | ||||
|                 partitionId = int(matchObj.group(1)) | ||||
|                 replicaIdx  = int(matchObj.group(2)) | ||||
| 
 | ||||
|                 consumerLogPathName   = consumerLogPath + "/" + logFile | ||||
|                 consumerMsgIdList     = get_message_id(consumerLogPathName) | ||||
|                 consumerMsgIdSet      = set(consumerMsgIdList) | ||||
| 
 | ||||
|                 replicaIdxMsgCountDictList[partitionId][replicaIdx] = len(consumerMsgIdSet) | ||||
| 
 | ||||
|                 logger.info("no. of unique messages on topic [" + topic + "] at " + logFile + " : " + str(len(consumerMsgIdSet)), extra=d) | ||||
|                 validationStatusDict["Unique messages from consumer on [" + topic + "] at " + logFile] = str(len(consumerMsgIdSet)) | ||||
| 
 | ||||
|         pprint.pprint(replicaIdxMsgCountDictList) | ||||
| 
 | ||||
|         partitionId = 0 | ||||
|         while partitionId < int(numPartition): | ||||
|             zeroMsgCounter    = 0 | ||||
|             nonZeroMsgCounter = 0 | ||||
|             nonZeroMsgValue   = -1 | ||||
| 
 | ||||
|             for replicaIdx in sorted(replicaIdxMsgCountDictList[partitionId].iterkeys()): | ||||
|                 if replicaIdxMsgCountDictList[partitionId][int(replicaIdx)] == 0: | ||||
|                     zeroMsgCounter += 1 | ||||
|                 else: | ||||
|                     if nonZeroMsgValue == -1: | ||||
|                         nonZeroMsgValue = replicaIdxMsgCountDictList[partitionId][int(replicaIdx)] | ||||
|                     else: | ||||
|                         if nonZeroMsgValue != replicaIdxMsgCountDictList[partitionId][int(replicaIdx)]: | ||||
|                             mismatchCounter += 1 | ||||
|                     nonZeroMsgCounter += 1 | ||||
|             partitionId += 1 | ||||
| 
 | ||||
|             logger.info("topic " + topic + " : no. of brokers with zero msg count     : " + str(zeroMsgCounter), extra=d) | ||||
|             logger.info("topic " + topic + " : no. of brokers with non-zero msg count : " + str(nonZeroMsgCounter), extra=d) | ||||
|             logger.info("topic " + topic + " : non-zero brokers msg count             : " + str(nonZeroMsgValue), extra=d) | ||||
| 
 | ||||
|         if mismatchCounter == 0: | ||||
|             validationStatusDict["Validate for data matched on topic [" + topic + "] across replicas"] = "PASSED" | ||||
|         else: | ||||
|             validationStatusDict["Validate for data matched on topic [" + topic + "] across replicas"] = "FAILED" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -51,6 +51,12 @@ class TestcaseEnv(): | |||
|     # { 0: 12345, 1: 12389, ... } | ||||
|     entityMirrorMakerParentPidDict = {} | ||||
| 
 | ||||
|     # dictionary of entity_id to ppid for migration tool entities | ||||
|     # key: entity_id | ||||
|     # val: ppid of broker associated to that entity_id | ||||
|     # { 0: 12345, 1: 12389, ... } | ||||
|     entityMigrationToolParentPidDict = {} | ||||
| 
 | ||||
|     # dictionary of entity_id to list of JMX ppid | ||||
|     # key: entity_id | ||||
|     # val: list of JMX ppid associated to that entity_id | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue