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 |                 i = 1 | ||||||
|                 numIterations = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) |                 numIterations = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) | ||||||
|  |                 bouncedEntityDownTimeSec = 1 | ||||||
|  |                 try: | ||||||
|  |                     bouncedEntityDownTimeSec = int(self.testcaseEnv.testcaseArgumentsDict["bounced_entity_downtime_sec"]) | ||||||
|  |                 except: | ||||||
|  |                     pass | ||||||
|  | 
 | ||||||
|                 while i <= numIterations: |                 while i <= numIterations: | ||||||
| 
 | 
 | ||||||
|                     self.log_message("Iteration " + str(i) + " of " + str(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( |                     # Bounce Migration Tool | ||||||
|                         self.systemTestEnv, self.testcaseEnv, self.leaderAttributesDict) |                     # ============================================= | ||||||
|          |                     bounceMigrationTool = self.testcaseEnv.testcaseArgumentsDict["bounce_migration_tool"] | ||||||
|                     # ========================== |                     self.log_message("bounce_migration_tool flag : " + bounceMigrationTool) | ||||||
|                     # leaderDict looks like this: |                     if (bounceMigrationTool.lower() == "true"): | ||||||
|                     # ========================== |  | ||||||
|                     #{'entity_id': u'3', |  | ||||||
|                     # 'partition': '0', |  | ||||||
|                     # 'timestamp': 1345050255.8280001, |  | ||||||
|                     # 'hostname': u'localhost', |  | ||||||
|                     # 'topic': 'test_1', |  | ||||||
|                     # 'brokerid': '3'} |  | ||||||
| 
 | 
 | ||||||
|                     # ============================================= |                         clusterConfigList         = self.systemTestEnv.clusterEntityConfigDictList | ||||||
|                     # validate to see if leader election is successful |                         migrationToolEntityIdList = system_test_utils.get_data_from_list_of_dicts( | ||||||
|                     # ============================================= |                                                     clusterConfigList, "role", "migration_tool", "entity_id") | ||||||
|                     self.log_message("validating leader election") | 
 | ||||||
|                     result = kafka_system_test_utils.validate_leader_election_successful(  |                         stoppedMigrationToolEntityId = migrationToolEntityIdList[0] | ||||||
|                          self.testcaseEnv, leaderDict, self.testcaseEnv.validationStatusDict) |                         migrationToolPPid = self.testcaseEnv.entityMigrationToolParentPidDict[stoppedMigrationToolEntityId] | ||||||
|          | 
 | ||||||
|                     # ============================================= |                         self.log_message("stopping migration tool : " + migrationToolPPid) | ||||||
|                     # trigger leader re-election by stopping leader |                         kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, stoppedMigrationToolEntityId, migrationToolPPid) | ||||||
|                     # to get re-election latency |                         self.anonLogger.info("sleeping for " + str(bouncedEntityDownTimeSec) + " sec") | ||||||
|                     # ============================================= |                         time.sleep(bouncedEntityDownTimeSec) | ||||||
|                     bounceLeaderFlag = self.testcaseEnv.testcaseArgumentsDict["bounce_leader"] | 
 | ||||||
|                     self.log_message("bounce_leader flag : " + bounceLeaderFlag) |                         # starting previously terminated broker  | ||||||
|                     if (bounceLeaderFlag.lower() == "true"): |                         self.log_message("starting the previously terminated migration tool") | ||||||
|                         reelectionLatency = kafka_system_test_utils.get_reelection_latency( |                         kafka_system_test_utils.start_migration_tool(self.systemTestEnv, self.testcaseEnv, stoppedMigrationToolEntityId) | ||||||
|                             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" |  | ||||||
|         |  | ||||||
|                     # ============================================= |  | ||||||
|                     # 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.anonLogger.info("sleeping for 15s") |                     self.anonLogger.info("sleeping for 15s") | ||||||
|                     time.sleep(15) |                     time.sleep(15) | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
|                   "08":"Log segment size    : 51200" |                   "08":"Log segment size    : 51200" | ||||||
|   }, |   }, | ||||||
|   "testcase_args": { |   "testcase_args": { | ||||||
|     "bounce_leader": "false", |     "bounce_migration_tool": "false", | ||||||
|     "replica_factor": "3", |     "replica_factor": "3", | ||||||
|     "num_partition": "1", |     "num_partition": "1", | ||||||
|     "num_iteration": "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 |                 i = 1 | ||||||
|                 numIterations = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) |                 numIterations = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) | ||||||
|  |                 bouncedEntityDownTimeSec = 1 | ||||||
|  |                 try: | ||||||
|  |                     bouncedEntityDownTimeSec = int(self.testcaseEnv.testcaseArgumentsDict["bounced_entity_downtime_sec"]) | ||||||
|  |                 except: | ||||||
|  |                     pass | ||||||
|  | 
 | ||||||
|                 while i <= numIterations: |                 while i <= numIterations: | ||||||
| 
 | 
 | ||||||
|                     self.log_message("Iteration " + str(i) + " of " + str(numIterations)) |                     self.log_message("Iteration " + str(i) + " of " + str(numIterations)) | ||||||
|  | @ -202,18 +208,20 @@ class MirrorMakerTest(ReplicationUtils, SetupUtils): | ||||||
|                     self.log_message("bounce_mirror_maker flag : " + bounceMirrorMaker) |                     self.log_message("bounce_mirror_maker flag : " + bounceMirrorMaker) | ||||||
|                     if (bounceMirrorMaker.lower() == "true"): |                     if (bounceMirrorMaker.lower() == "true"): | ||||||
| 
 | 
 | ||||||
|                         clusterConfigList       = self.systemTestEnv.clusterEntityConfigDictList |                         clusterConfigList          = self.systemTestEnv.clusterEntityConfigDictList | ||||||
|                         mirrorMakerEntityIdList = system_test_utils.get_data_from_list_of_dicts( |                         mirrorMakerEntityIdList    = system_test_utils.get_data_from_list_of_dicts( | ||||||
|                             clusterConfigList, "role", "mirror_maker", "entity_id") |                                                      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) |                         self.log_message("stopping mirror maker : " + mirrorMakerPPid) | ||||||
|                         kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, mirrorMakerEntityIdList[0], mirrorMakerPPid) |                         kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, stoppedMirrorMakerEntityId, mirrorMakerPPid) | ||||||
|                         time.sleep(1) |                         self.anonLogger.info("sleeping for " + str(bouncedEntityDownTimeSec) + " sec") | ||||||
|  |                         time.sleep(bouncedEntityDownTimeSec) | ||||||
| 
 | 
 | ||||||
|                         # starting previously terminated broker  |                         # starting previously terminated broker  | ||||||
|                         self.log_message("starting the previously terminated mirror maker") |                         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") |                     self.anonLogger.info("sleeping for 15s") | ||||||
|                     time.sleep(15) |                     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 inspect | ||||||
| import logging | import logging | ||||||
| import os | import os | ||||||
|  | import pprint | ||||||
| import signal | import signal | ||||||
| import subprocess | import subprocess | ||||||
| import sys | import sys | ||||||
|  | @ -115,7 +116,14 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                 #                   Product Specific Testing Code Starts Here:                   # |                 #                   Product Specific Testing Code Starts Here:                   # | ||||||
|                 # ============================================================================== # |                 # ============================================================================== # | ||||||
|                 # ============================================================================== # |                 # ============================================================================== # | ||||||
|      | 
 | ||||||
|  |                 # 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) |                 # initialize self.testcaseEnv with user-defined environment variables (product specific) | ||||||
|                 self.testcaseEnv.userDefinedEnvVarDict["zkConnectStr"] = "" |                 self.testcaseEnv.userDefinedEnvVarDict["zkConnectStr"] = "" | ||||||
|                 self.testcaseEnv.userDefinedEnvVarDict["stopBackgroundProducer"]    = False |                 self.testcaseEnv.userDefinedEnvVarDict["stopBackgroundProducer"]    = False | ||||||
|  | @ -170,7 +178,15 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                 kafka_system_test_utils.create_topic(self.systemTestEnv, self.testcaseEnv) |                 kafka_system_test_utils.create_topic(self.systemTestEnv, self.testcaseEnv) | ||||||
|                 self.anonLogger.info("sleeping for 5s") |                 self.anonLogger.info("sleeping for 5s") | ||||||
|                 time.sleep(5) |                 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  |                 # starting producer  | ||||||
|                 # ============================================= |                 # ============================================= | ||||||
|  | @ -188,14 +204,22 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                 numIterations    = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) |                 numIterations    = int(self.testcaseEnv.testcaseArgumentsDict["num_iteration"]) | ||||||
|                 brokerType       = self.testcaseEnv.testcaseArgumentsDict["broker_type"] |                 brokerType       = self.testcaseEnv.testcaseArgumentsDict["broker_type"] | ||||||
|                 bounceBrokerFlag = self.testcaseEnv.testcaseArgumentsDict["bounce_broker"] |                 bounceBrokerFlag = self.testcaseEnv.testcaseArgumentsDict["bounce_broker"] | ||||||
|  |                  | ||||||
|                 while i <= numIterations: |                 while i <= numIterations: | ||||||
|                     self.log_message("Iteration " + str(i) + " of " + str(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": |                     if brokerType == "leader" or brokerType == "follower": | ||||||
|                         self.log_message("looking up leader") |                         self.log_message("looking up leader") | ||||||
|                         leaderDict = kafka_system_test_utils.get_leader_elected_log_line( |                         leaderDict = kafka_system_test_utils.get_leader_elected_log_line(self.systemTestEnv, self.testcaseEnv, self.leaderAttributesDict) | ||||||
|                             self.systemTestEnv, self.testcaseEnv, self.leaderAttributesDict) | 
 | ||||||
|              |  | ||||||
|                         # ========================== |                         # ========================== | ||||||
|                         # leaderDict looks like this: |                         # leaderDict looks like this: | ||||||
|                         # ========================== |                         # ========================== | ||||||
|  | @ -205,69 +229,28 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                         # 'hostname': u'localhost', |                         # 'hostname': u'localhost', | ||||||
|                         # 'topic': 'test_1', |                         # 'topic': 'test_1', | ||||||
|                         # 'brokerid': '3'} |                         # 'brokerid': '3'} | ||||||
|             | 
 | ||||||
|                         if brokerType == "leader": |                         if brokerType == "leader": | ||||||
|                             # validate to see if leader election is successful |                             stoppedBrokerEntityId = leaderDict["entity_id"] | ||||||
|                             self.log_message("validating leader election") |                             self.log_message("Found leader with entity id: " + stoppedBrokerEntityId) | ||||||
|                             result = kafka_system_test_utils.validate_leader_election_successful( \ |                         else: # Follower | ||||||
|                                          self.testcaseEnv, leaderDict, self.testcaseEnv.validationStatusDict) |                             self.log_message("looking up follower") | ||||||
|                  |  | ||||||
|                             # 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 |  | ||||||
|                             # a list of all brokers |                             # a list of all brokers | ||||||
|                             brokerEntityIdList = system_test_utils.get_data_from_list_of_dicts( |                             brokerEntityIdList = system_test_utils.get_data_from_list_of_dicts(self.systemTestEnv.clusterEntityConfigDictList, "role", "broker", "entity_id") | ||||||
|                                 self.systemTestEnv.clusterEntityConfigDictList, "role", "broker", "entity_id") | 
 | ||||||
|          |                             # we pick the first non-leader broker as the follower | ||||||
|                             # we pick the follower from the first broker which is not the leader |  | ||||||
|                             firstFollowerEntityId = None |                             firstFollowerEntityId = None | ||||||
|                             for brokerEntityId in brokerEntityIdList: |                             for brokerEntityId in brokerEntityIdList: | ||||||
|                                 if brokerEntityId != leaderDict["entity_id"]: |                                 if brokerEntityId != leaderDict["entity_id"]: | ||||||
|                                     firstFollowerEntityId = brokerEntityId |                                     firstFollowerEntityId = brokerEntityId | ||||||
|                                     break |                                     break | ||||||
|          |                             stoppedBrokerEntityId  = firstFollowerEntityId | ||||||
|                             # stopping Follower |                             self.log_message("Found follower with entity id: " + stoppedBrokerEntityId) | ||||||
|                             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) |  | ||||||
|      |  | ||||||
|                     elif brokerType == "controller": |                     elif brokerType == "controller": | ||||||
|                         self.log_message("looking up controller") |                         self.log_message("looking up controller") | ||||||
|                         controllerDict = kafka_system_test_utils.get_controller_attributes(self.systemTestEnv, self.testcaseEnv) |                         controllerDict = kafka_system_test_utils.get_controller_attributes(self.systemTestEnv, self.testcaseEnv) | ||||||
|          | 
 | ||||||
|                         # ========================== |                         # ========================== | ||||||
|                         # controllerDict looks like this: |                         # controllerDict looks like this: | ||||||
|                         # ========================== |                         # ========================== | ||||||
|  | @ -275,26 +258,65 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                         # 'timestamp': 1345050255.8280001, |                         # 'timestamp': 1345050255.8280001, | ||||||
|                         # 'hostname': u'localhost', |                         # 'hostname': u'localhost', | ||||||
|                         # 'brokerid': '3'} |                         # 'brokerid': '3'} | ||||||
|          | 
 | ||||||
|                         # stopping Controller |                         stoppedBrokerEntityId = controllerDict["entity_id"] | ||||||
|                         self.log_message("bounce_broker flag : " + bounceBrokerFlag) |                         self.log_message("Found controller with entity id: " + stoppedBrokerEntityId) | ||||||
|                         if bounceBrokerFlag.lower() == "true": | 
 | ||||||
|  |                     # ============================================= | ||||||
|  |                     # 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"]) |                             self.log_message("stopping controller : " + controllerDict["brokerid"]) | ||||||
|                             kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, controllerDict["entity_id"],  |                             kafka_system_test_utils.stop_remote_entity(self.systemTestEnv, controllerDict["entity_id"], self.testcaseEnv.entityBrokerParentPidDict[controllerDict["entity_id"]]) | ||||||
|                                 self.testcaseEnv.entityBrokerParentPidDict[controllerDict["entity_id"]]) |  | ||||||
| 
 | 
 | ||||||
|                             time.sleep(1) |                         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") | ||||||
|  |                         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 | ||||||
| 
 | 
 | ||||||
|                             # 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) |  | ||||||
| 
 | 
 | ||||||
|                     self.anonLogger.info("sleeping for 15s") |                     self.anonLogger.info("sleeping for 15s") | ||||||
|                     time.sleep(15) |                     time.sleep(15) | ||||||
|                     i += 1 |                     i += 1 | ||||||
|                 # while loop |                 # while loop | ||||||
| 
 | 
 | ||||||
|  |                 # update Leader Election Latency MIN/MAX to testcaseEnv.validationStatusDict | ||||||
|                 self.testcaseEnv.validationStatusDict["Leader Election Latency MIN"] = None |                 self.testcaseEnv.validationStatusDict["Leader Election Latency MIN"] = None | ||||||
|                 try: |                 try: | ||||||
|                     self.testcaseEnv.validationStatusDict["Leader Election Latency MIN"] = \ |                     self.testcaseEnv.validationStatusDict["Leader Election Latency MIN"] = \ | ||||||
|  | @ -335,11 +357,25 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                     time.sleep(2) |                     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") |                 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, minStartingOffsetDict) | ||||||
|                 kafka_system_test_utils.start_simple_consumer(self.systemTestEnv, self.testcaseEnv) |  | ||||||
|                 self.anonLogger.info("sleeping for 10s") |                 self.anonLogger.info("sleeping for 10s") | ||||||
|                 time.sleep(10) |                 time.sleep(10) | ||||||
|                      |                      | ||||||
|  | @ -365,9 +401,14 @@ class ReplicaBasicTest(ReplicationUtils, SetupUtils): | ||||||
|                 # validate the data matched and checksum |                 # validate the data matched and checksum | ||||||
|                 # ============================================= |                 # ============================================= | ||||||
|                 self.log_message("validating data matched") |                 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_broker_log_segment_checksum(self.systemTestEnv, self.testcaseEnv) |                     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) | ||||||
| 
 | 
 | ||||||
|                 # ============================================= |                 # ============================================= | ||||||
|                 # draw graphs |                 # draw graphs | ||||||
|  |  | ||||||
|  | @ -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", |       "message": "100", | ||||||
|       "request-num-acks": "1", |       "request-num-acks": "1", | ||||||
|       "sync":"true", |       "sync":"true", | ||||||
|  |       "producer-retry-backoff-ms": "2500", | ||||||
|       "log_filename": "producer_performance.log", |       "log_filename": "producer_performance.log", | ||||||
|       "config_filename": "producer_performance.properties" |       "config_filename": "producer_performance.properties" | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|  | @ -65,6 +65,7 @@ | ||||||
|       "message": "100", |       "message": "100", | ||||||
|       "request-num-acks": "1", |       "request-num-acks": "1", | ||||||
|       "sync":"false", |       "sync":"false", | ||||||
|  |       "producer-retry-backoff-ms": "2500", | ||||||
|       "log_filename": "producer_performance.log", |       "log_filename": "producer_performance.log", | ||||||
|       "config_filename": "producer_performance.properties" |       "config_filename": "producer_performance.properties" | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|  | @ -65,6 +65,7 @@ | ||||||
|       "message": "100", |       "message": "100", | ||||||
|       "request-num-acks": "1", |       "request-num-acks": "1", | ||||||
|       "sync":"true", |       "sync":"true", | ||||||
|  |       "producer-retry-backoff-ms": "2500", | ||||||
|       "log_filename": "producer_performance.log", |       "log_filename": "producer_performance.log", | ||||||
|       "config_filename": "producer_performance.properties" |       "config_filename": "producer_performance.properties" | ||||||
|     }, |     }, | ||||||
|  |  | ||||||
|  | @ -65,6 +65,7 @@ | ||||||
|       "message": "100", |       "message": "100", | ||||||
|       "request-num-acks": "1", |       "request-num-acks": "1", | ||||||
|       "sync":"false", |       "sync":"false", | ||||||
|  |       "producer-retry-backoff-ms": "2500", | ||||||
|       "log_filename": "producer_performance.log", |       "log_filename": "producer_performance.log", | ||||||
|       "config_filename": "producer_performance.properties" |       "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_0121", | ||||||
|         "testcase_0122", |         "testcase_0122", | ||||||
|         "testcase_0123", |         "testcase_0123", | ||||||
|  |         "testcase_0124", | ||||||
|  |         "testcase_0125", | ||||||
|  |         "testcase_0126", | ||||||
|  |         "testcase_0127", | ||||||
|  | 
 | ||||||
|  |         "testcase_0131", | ||||||
|  |         "testcase_0132", | ||||||
|  |         "testcase_0133", | ||||||
| 
 | 
 | ||||||
|         "testcase_0151", |         "testcase_0151", | ||||||
|         "testcase_0152", |         "testcase_0152", | ||||||
|  | @ -73,15 +81,41 @@ | ||||||
|         "testcase_0305", |         "testcase_0305", | ||||||
|         "testcase_0306", |         "testcase_0306", | ||||||
|         "testcase_0307", |         "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"  : [ |     "MigrationToolTest"  : [ | ||||||
|         "testcase_9001" |         "testcase_9001", | ||||||
|  |         "testcase_9003", | ||||||
|  |         "testcase_9004", | ||||||
|  |         "testcase_9005", | ||||||
|  |         "testcase_9006" | ||||||
|     ], |     ], | ||||||
| 
 | 
 | ||||||
|     "MirrorMakerTest"  : [ |     "MirrorMakerTest"  : [ | ||||||
|         "testcase_5001", |         "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) |             logger.debug("executing command [" + cmdStr + "]", extra=d) | ||||||
|             system_test_utils.sys_call(cmdStr) |             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 |     # collect dashboards file | ||||||
|     # ============================== |     # ============================== | ||||||
|  | @ -485,14 +499,17 @@ def start_brokers(systemTestEnv, testcaseEnv): | ||||||
|         start_entity_in_background(systemTestEnv, testcaseEnv, brokerEntityId) |         start_entity_in_background(systemTestEnv, testcaseEnv, brokerEntityId) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def start_mirror_makers(systemTestEnv, testcaseEnv): | def start_mirror_makers(systemTestEnv, testcaseEnv, onlyThisEntityId=None): | ||||||
|     clusterEntityConfigDictList = systemTestEnv.clusterEntityConfigDictList |  | ||||||
| 
 | 
 | ||||||
|     brokerEntityIdList = system_test_utils.get_data_from_list_of_dicts(  |     if onlyThisEntityId is not None: | ||||||
|         clusterEntityConfigDictList, "role", "mirror_maker", "entity_id") |         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") | ||||||
| 
 | 
 | ||||||
|     for brokerEntityId in brokerEntityIdList: |         for brokerEntityId in brokerEntityIdList: | ||||||
|         start_entity_in_background(systemTestEnv, testcaseEnv, brokerEntityId) |             start_entity_in_background(systemTestEnv, testcaseEnv, brokerEntityId) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_broker_shutdown_log_line(systemTestEnv, testcaseEnv, leaderAttributesDict): | def get_broker_shutdown_log_line(systemTestEnv, testcaseEnv, leaderAttributesDict): | ||||||
|  | @ -1040,9 +1057,10 @@ def get_message_checksum(logPathName): | ||||||
|         if not "checksum:" in line: |         if not "checksum:" in line: | ||||||
|             continue |             continue | ||||||
|         else: |         else: | ||||||
|             matchObj = re.match('.*checksum:(\d*?).*', line) |             matchObj = re.match('.*checksum:(\d*).*', line) | ||||||
|             if matchObj is not None: |             if matchObj is not None: | ||||||
|                 messageChecksumList.append( matchObj.group(1) ) |                 checksum = matchObj.group(1) | ||||||
|  |                 messageChecksumList.append( checksum ) | ||||||
|             else: |             else: | ||||||
|                 logger.error("unexpected log line : " + line, extra=d) |                 logger.error("unexpected log line : " + line, extra=d) | ||||||
| 
 | 
 | ||||||
|  | @ -1311,52 +1329,70 @@ def stop_all_remote_running_processes(systemTestEnv, testcaseEnv): | ||||||
|         stop_remote_entity(systemTestEnv, entityId, zkParentPid) |         stop_remote_entity(systemTestEnv, entityId, zkParentPid) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def start_migration_tool(systemTestEnv, testcaseEnv): | def start_migration_tool(systemTestEnv, testcaseEnv, onlyThisEntityId=None): | ||||||
|     clusterConfigList = systemTestEnv.clusterEntityConfigDictList |     clusterConfigList = systemTestEnv.clusterEntityConfigDictList | ||||||
|     migrationToolConfigList = system_test_utils.get_dict_from_list_of_dicts(clusterConfigList, "role", "migration_tool") |     migrationToolConfigList = system_test_utils.get_dict_from_list_of_dicts(clusterConfigList, "role", "migration_tool") | ||||||
| 
 | 
 | ||||||
|     migrationToolConfig = migrationToolConfigList[0] |     for migrationToolConfig in migrationToolConfigList: | ||||||
|     host              = migrationToolConfig["hostname"] |  | ||||||
|     entityId          = migrationToolConfig["entity_id"] |  | ||||||
|     jmxPort           = migrationToolConfig["jmx_port"]  |  | ||||||
|     role              = migrationToolConfig["role"]  |  | ||||||
|     kafkaHome         = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "kafka_home") |  | ||||||
|     javaHome          = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "java_home") |  | ||||||
|     jmxPort           = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "jmx_port") |  | ||||||
|     kafkaRunClassBin  = kafkaHome + "/bin/kafka-run-class.sh" |  | ||||||
| 
 | 
 | ||||||
|     logger.info("starting kafka migration tool", extra=d) |         entityId = migrationToolConfig["entity_id"] | ||||||
|     migrationToolLogPath     = get_testcase_config_log_dir_pathname(testcaseEnv, "migration_tool", entityId, "default") |  | ||||||
|     migrationToolLogPathName = migrationToolLogPath + "/migration_tool.log" |  | ||||||
|     testcaseEnv.userDefinedEnvVarDict["migrationToolLogPathName"] = migrationToolLogPathName |  | ||||||
| 
 | 
 | ||||||
|     testcaseConfigsList = testcaseEnv.testcaseConfigsList |         if onlyThisEntityId is None or entityId == onlyThisEntityId: | ||||||
|     numProducers    = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "num.producers") |  | ||||||
|     numStreams      = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "num.streams") |  | ||||||
|     producerConfig  = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "producer.config") |  | ||||||
|     consumerConfig  = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "consumer.config") |  | ||||||
|     zkClientJar     = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "zkclient.01.jar") |  | ||||||
|     kafka07Jar      = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "kafka.07.jar") |  | ||||||
|     whiteList       = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "whitelist") |  | ||||||
|     logFile         = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "log_filename") |  | ||||||
| 
 | 
 | ||||||
|     cmdList = ["ssh " + host, |             host              = migrationToolConfig["hostname"] | ||||||
|                "'JAVA_HOME=" + javaHome, |             jmxPort           = migrationToolConfig["jmx_port"]  | ||||||
|                "JMX_PORT=" + jmxPort, |             role              = migrationToolConfig["role"]  | ||||||
|                kafkaRunClassBin + " kafka.tools.KafkaMigrationTool", |             kafkaHome         = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "kafka_home") | ||||||
|                "--whitelist="        + whiteList, |             javaHome          = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "java_home") | ||||||
|                "--num.producers="    + numProducers, |             jmxPort           = system_test_utils.get_data_by_lookup_keyval(clusterConfigList, "entity_id", entityId, "jmx_port") | ||||||
|                "--num.streams="      + numStreams, |             kafkaRunClassBin  = kafkaHome + "/bin/kafka-run-class.sh" | ||||||
|                "--producer.config="  + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + producerConfig, | 
 | ||||||
|                "--consumer.config="  + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + consumerConfig, |             logger.info("starting kafka migration tool", extra=d) | ||||||
|                "--zkclient.01.jar="  + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + zkClientJar, |             migrationToolLogPath     = get_testcase_config_log_dir_pathname(testcaseEnv, "migration_tool", entityId, "default") | ||||||
|                "--kafka.07.jar="     + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + kafka07Jar, |             migrationToolLogPathName = migrationToolLogPath + "/migration_tool.log" | ||||||
|                " &> " + migrationToolLogPath + "/migrationTool.log", |             testcaseEnv.userDefinedEnvVarDict["migrationToolLogPathName"] = migrationToolLogPathName | ||||||
|                " & echo pid:$! > " + migrationToolLogPath + "/entity_" + entityId + "_pid'"] | 
 | ||||||
|  |             testcaseConfigsList = testcaseEnv.testcaseConfigsList | ||||||
|  |             numProducers    = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "num.producers") | ||||||
|  |             numStreams      = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "num.streams") | ||||||
|  |             producerConfig  = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "producer.config") | ||||||
|  |             consumerConfig  = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "consumer.config") | ||||||
|  |             zkClientJar     = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "zkclient.01.jar") | ||||||
|  |             kafka07Jar      = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "kafka.07.jar") | ||||||
|  |             whiteList       = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "whitelist") | ||||||
|  |             logFile         = system_test_utils.get_data_by_lookup_keyval(testcaseConfigsList, "entity_id", entityId, "log_filename") | ||||||
|  | 
 | ||||||
|  |             cmdList = ["ssh " + host, | ||||||
|  |                        "'JAVA_HOME=" + javaHome, | ||||||
|  |                        "JMX_PORT=" + jmxPort, | ||||||
|  |                        kafkaRunClassBin + " kafka.tools.KafkaMigrationTool", | ||||||
|  |                        "--whitelist="        + whiteList, | ||||||
|  |                        "--num.producers="    + numProducers, | ||||||
|  |                        "--num.streams="      + numStreams, | ||||||
|  |                        "--producer.config="  + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + producerConfig, | ||||||
|  |                        "--consumer.config="  + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + consumerConfig, | ||||||
|  |                        "--zkclient.01.jar="  + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + zkClientJar, | ||||||
|  |                        "--kafka.07.jar="     + systemTestEnv.SYSTEM_TEST_BASE_DIR + "/" + kafka07Jar, | ||||||
|  |                        " &> " + migrationToolLogPath + "/migrationTool.log", | ||||||
|  |                        " & echo pid:$! > " + migrationToolLogPath + "/entity_" + entityId + "_pid'"] | ||||||
|  | 
 | ||||||
|  |             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] | ||||||
| 
 | 
 | ||||||
|     cmdStr = " ".join(cmdList) |  | ||||||
|     logger.debug("executing command: [" + cmdStr + "]", extra=d) |  | ||||||
|     system_test_utils.async_sys_call(cmdStr) |  | ||||||
| 
 | 
 | ||||||
| def validate_07_08_migrated_data_matched(systemTestEnv, testcaseEnv): | def validate_07_08_migrated_data_matched(systemTestEnv, testcaseEnv): | ||||||
|     validationStatusDict        = testcaseEnv.validationStatusDict |     validationStatusDict        = testcaseEnv.validationStatusDict | ||||||
|  | @ -1392,30 +1428,40 @@ def validate_07_08_migrated_data_matched(systemTestEnv, testcaseEnv): | ||||||
|         consumerLogPath     = get_testcase_config_log_dir_pathname(testcaseEnv, "console_consumer", matchingConsumerEntityId, "default") |         consumerLogPath     = get_testcase_config_log_dir_pathname(testcaseEnv, "console_consumer", matchingConsumerEntityId, "default") | ||||||
|         consumerLogPathName = consumerLogPath + "/console_consumer.log" |         consumerLogPathName = consumerLogPath + "/console_consumer.log" | ||||||
| 
 | 
 | ||||||
|         producerMsgChecksumList   = get_message_checksum(producerLogPathName) |         producerMsgChecksumList      = get_message_checksum(producerLogPathName) | ||||||
|         consumerMsgChecksumList   = get_message_checksum(consumerLogPathName) |         consumerMsgChecksumList      = get_message_checksum(consumerLogPathName) | ||||||
|         producerMsgChecksumSet    = set(producerMsgChecksumList) |         producerMsgChecksumSet       = set(producerMsgChecksumList) | ||||||
|         consumerMsgChecksumSet    = set(consumerMsgChecksumList) |         consumerMsgChecksumSet       = set(consumerMsgChecksumList) | ||||||
|  |         producerMsgChecksumUniqList  = list(producerMsgChecksumSet) | ||||||
|  |         consumerMsgChecksumUniqList  = list(consumerMsgChecksumSet) | ||||||
| 
 | 
 | ||||||
|         missingMsgChecksumInConsumer = producerMsgChecksumSet - 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") |         outfile = open(msgChecksumMissingInConsumerLogPathName, "w") | ||||||
|         for id in missingMsgChecksumInConsumer: |         for id in missingMsgChecksumInConsumer: | ||||||
|             outfile.write(id + "\n") |             outfile.write(id + "\n") | ||||||
|         outfile.close() |         outfile.close() | ||||||
| 
 | 
 | ||||||
|         logger.info("no. of unique messages on topic [" + topic + "] sent from publisher  : " + str(len(producerMsgChecksumList)), extra=d) |         logger.info("no. of messages on topic [" + topic + "] sent from producer          : " + str(len(producerMsgChecksumList)), extra=d) | ||||||
|         logger.info("no. of unique messages on topic [" + topic + "] received by consumer : " + str(len(consumerMsgChecksumList)), extra=d) |         logger.info("no. of messages on topic [" + topic + "] received by consumer        : " + str(len(consumerMsgChecksumList)), extra=d) | ||||||
|         validationStatusDict["Unique messages from producer on [" + topic + "]"] = str(len(producerMsgChecksumList)) |         logger.info("no. of unique messages on topic [" + topic + "] sent from producer   : " + str(len(producerMsgChecksumUniqList)),  extra=d) | ||||||
|         validationStatusDict["Unique messages from consumer on [" + topic + "]"] = str(len(consumerMsgChecksumList)) |         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" |             validationStatusDict["Validate for data matched on topic [" + topic + "]"] = "PASSED" | ||||||
|             #return True |  | ||||||
|         else: |         else: | ||||||
|             validationStatusDict["Validate for data matched on topic [" + topic + "]"] = "FAILED" |             validationStatusDict["Validate for data matched on topic [" + topic + "]"] = "FAILED" | ||||||
|             logger.info("See " + msgChecksumMissingInConsumerLogPathName + " for missing MessageID", extra=d) |             logger.info("See " + msgChecksumMissingInConsumerLogPathName + " for missing MessageID", extra=d) | ||||||
|             #return False |  | ||||||
| 
 | 
 | ||||||
| def validate_broker_log_segment_checksum(systemTestEnv, testcaseEnv, clusterName="source"): | def validate_broker_log_segment_checksum(systemTestEnv, testcaseEnv, clusterName="source"): | ||||||
| 
 | 
 | ||||||
|  | @ -1542,7 +1588,7 @@ def validate_broker_log_segment_checksum(systemTestEnv, testcaseEnv, clusterName | ||||||
|     else: |     else: | ||||||
|         validationStatusDict["Validate for merged log segment checksum in cluster [" + clusterName + "]"] = "FAILED" |         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 |     clusterList        = systemTestEnv.clusterEntityConfigDictList | ||||||
|     consumerConfigList = system_test_utils.get_dict_from_list_of_dicts(clusterList, "role", "console_consumer") |     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) |             numPartitions = int(numPartitions) | ||||||
| 
 | 
 | ||||||
|         replicaIndex   = 1 |         replicaIndex   = 1 | ||||||
|  |         startingOffset = -2 | ||||||
|         brokerPortList = brokerListStr.split(',') |         brokerPortList = brokerListStr.split(',') | ||||||
|         for brokerPort in brokerPortList: |         for brokerPort in brokerPortList: | ||||||
| 
 | 
 | ||||||
|             k = 0 |             partitionId = 0 | ||||||
|             while (k < numPartitions): |             while (partitionId < numPartitions): | ||||||
|                 logger.info("starting debug consumer for replica on [" + brokerPort + "] partition [" + str(k) + "]", extra=d) |                 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(":", "_") |                 brokerPortLabel = brokerPort.replace(":", "_") | ||||||
|                 cmdList = ["ssh " + host, |                 cmdList = ["ssh " + host, | ||||||
|                            "'JAVA_HOME=" + javaHome, |                            "'JAVA_HOME=" + javaHome, | ||||||
|                            kafkaRunClassBin + " kafka.tools.SimpleConsumerShell", |                            kafkaRunClassBin + " kafka.tools.SimpleConsumerShell", | ||||||
|                            "--broker-list " + brokerListStr, |                            "--broker-list " + brokerListStr, | ||||||
|                            "--topic " + topic, |                            "--topic " + topic, | ||||||
|                            "--partition " + str(k), |                            "--partition " + str(partitionId), | ||||||
|                            "--replica " + str(replicaIndex), |                            "--replica " + str(replicaIndex), | ||||||
|  |                            "--offset " + str(startingOffset), | ||||||
|                            "--no-wait-at-logend ", |                            "--no-wait-at-logend ", | ||||||
|                            " >> " + consumerLogPath + "/simple_consumer_" + str(replicaIndex) + ".log", |                            " > " + outputFilePathName, | ||||||
|                            " & echo pid:$! > " + consumerLogPath + "/entity_" + entityId + "_pid'"] |                            " & echo pid:$! > " + consumerLogPath + "/entity_" + entityId + "_pid'"] | ||||||
|      |      | ||||||
|                 cmdStr = " ".join(cmdList) |                 cmdStr = " ".join(cmdList) | ||||||
|      |      | ||||||
|                 logger.debug("executing command: [" + cmdStr + "]", extra=d) |                 logger.debug("executing command: [" + cmdStr + "]", extra=d) | ||||||
|                 system_test_utils.async_sys_call(cmdStr) |                 subproc_1 = system_test_utils.sys_call_return_subproc(cmdStr) | ||||||
|                 time.sleep(2) |                 # dummy for-loop to wait until the process is completed | ||||||
|      |                 for line in subproc_1.stdout.readlines(): | ||||||
|                 pidCmdStr = "ssh " + host + " 'cat " + consumerLogPath + "/entity_" + entityId + "_pid'" |                     pass  | ||||||
|                 logger.debug("executing command: [" + pidCmdStr + "]", extra=d) |                 time.sleep(1) | ||||||
|                 subproc = system_test_utils.sys_call_return_subproc(pidCmdStr) |     | ||||||
|      |                 partitionId += 1 | ||||||
|                 # 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 |  | ||||||
|             replicaIndex += 1 |             replicaIndex += 1 | ||||||
| 
 | 
 | ||||||
| def validate_simple_consumer_data_matched(systemTestEnv, testcaseEnv): | def validate_simple_consumer_data_matched(systemTestEnv, testcaseEnv): | ||||||
|  | @ -1733,4 +1776,187 @@ def get_controller_attributes(systemTestEnv, testcaseEnv): | ||||||
|                                           tcConfigsList, "brokerid", brokerid, "entity_id") |                                           tcConfigsList, "brokerid", brokerid, "entity_id") | ||||||
|     return controllerDict |     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, ... } |     # { 0: 12345, 1: 12389, ... } | ||||||
|     entityMirrorMakerParentPidDict = {} |     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 |     # dictionary of entity_id to list of JMX ppid | ||||||
|     # key: entity_id |     # key: entity_id | ||||||
|     # val: list of JMX ppid associated to that entity_id |     # val: list of JMX ppid associated to that entity_id | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue