def test_reassignment_plan_HA_for_topic(self): host_info = rebalance_rackaware.parse_topo_info(self.cluster_topo, self.brokers_info) brokers_replica_count = [] for host in host_info: b = { rebalance_rackaware.BROKER_ID : host[rebalance_rackaware.BROKER_ID], rebalance_rackaware.LEADERS : 0, rebalance_rackaware.FOLLOWERS: 0, } brokers_replica_count.append(b) partitions_info = rebalance_rackaware.get_partition_info(self.topicInfo_lines, [], self.dummy_topic) rgen = rebalance_rackaware.ReassignmentGenerator(host_info, self.dummy_topic, partitions_info, self.compute_storage_cost) fd_ud_list, fd_list, ud_list = self.generate_fd_ud_list(3,3) alternated_list = rgen._generate_alternated_fd_ud_list(fd_ud_list, fd_list, ud_list) reassignment_plan, balanced_partitions = rgen._generate_reassignment_plan_for_topic(3,0,alternated_list,3,3,brokers_replica_count, None) topic_balanced = rgen._verify_reassignment_plan(reassignment_plan,self.dummy_topic,3,3,3) self.assertTrue(topic_balanced)
def test_generate_fd_list_ud_list(self): host_info = rebalance_rackaware.parse_topo_info(self.cluster_topo, self.brokers_info) fd_list, ud_list = rebalance_rackaware.generate_fd_list_ud_list(host_info) self.assertEqual(set(fd_list), set(['0','1','2'])) self.assertEqual(set(ud_list), set(['0','1','2']))
def test_parse_topo_info(self): host_info = rebalance_rackaware.parse_topo_info(self.cluster_topo, self.brokers_info) broker_1020 = [element for element in host_info if int(element[rebalance_rackaware.BROKER_ID]) == 1020][0] self.assertEqual(broker_1020[rebalance_rackaware.VM_ID], 12) self.assertEqual(broker_1020[rebalance_rackaware.FQDN], 'wn11-foobar') self.assertEqual(broker_1020[rebalance_rackaware.RACK], 'FD1UD1')