import logging
import unittest
import clb_utils
import gateway_config


class MyTestCase(unittest.TestCase):
    def test_add_backend_servers_with_clbs(self):
        clb_client = clb_utils.connect_client(access_key_id=gateway_config.clb_client_params['access_key_id'],
                                              access_key_secret=gateway_config.clb_client_params['access_key_secret'],
                                              region_id=gateway_config.clb_client_params['region_id'])
        health_instances = [('i-bp10y6fsz6obfw5uqa7z', '192.168.207.72')]
        clb_utils.add_backend_servers_with_clbs(client=clb_client,
                                                clb_id_list=gateway_config.clb_id_list,
                                                instances=health_instances)

    def test_set_instance_weight_process_with_clbs(self):
        clb_client = clb_utils.connect_client(access_key_id=gateway_config.clb_client_params['access_key_id'],
                                              access_key_secret=gateway_config.clb_client_params['access_key_secret'],
                                              region_id=gateway_config.clb_client_params['region_id'])
        health_instances = ['i-bp10y6fsz6obfw5uqa7z']
        add_weight_list = [(10, 5), (20, 5), (40, 5), (60, 5), (80, 5), (95, 5)]
        clb_utils.set_instance_weight_process_with_clbs(client=clb_client,
                                                        clb_id_list=gateway_config.clb_id_list,
                                                        instance_id_list=health_instances,
                                                        weight_list=add_weight_list)


    def test_get_instance_ids(self):
        clb_client = clb_utils.connect_client(access_key_id=gateway_config.clb_client_params['access_key_id'],
                                              access_key_secret=gateway_config.clb_client_params['access_key_secret'],
                                              region_id=gateway_config.clb_client_params['region_id'])
        online_instance_ids = clb_utils.get_instance_ids(client=clb_client,
                                   clb_id=gateway_config.clb_id_list[0])
        logging.info(online_instance_ids)

    def test_remove_backend_servers_with_clbs(self):
        clb_client = clb_utils.connect_client(access_key_id=gateway_config.clb_client_params['access_key_id'],
                                              access_key_secret=gateway_config.clb_client_params['access_key_secret'],
                                              region_id=gateway_config.clb_client_params['region_id'])
        instance_ids = ['i-bp10y6fsz6obfw5uqa7z']
        clb_utils.remove_backend_servers_with_clbs(client=clb_client,
                                                   clb_id_list=gateway_config.clb_id_list,
                                                   instances=instance_ids)


if __name__ == '__main__':
    unittest.main()