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')