Exemplo n.º 1
0
 def test_format_host_info(self):
     host_info = [
         {
             "host": {
                 "bk_host_innerip": "1.1.1.1",
                 "bk_host_id": 1
             }
         },
         {
             "host": {
                 "bk_host_id": 2,
                 "bk_host_innerip": "2.2.2.2,3.3.3.3"
             }
         },
     ]
     expected_host_info = [
         {
             "bk_host_innerip": "1.1.1.1",
             "bk_host_id": 1
         },
         {
             "bk_host_id": 2,
             "bk_host_innerip": "2.2.2.2"
         },
     ]
     formatted_host_info = IPPickerHandler.format_host_info(host_info)
     self.assertEqual(formatted_host_info, expected_host_info)
Exemplo n.º 2
0
    def test__inject_topo_params(self):
        self.selector = "topo"
        topo_list = [
            {
                "bk_obj_id": "set",
                "bk_inst_id": 3
            },
            {
                "bk_obj_id": "module",
                "bk_inst_id": 5
            },
            {
                "bk_obj_id": "module",
                "bk_inst_id": 8
            },
        ]
        expected_property_filters = {
            "host_property_filter": {
                "condition": "AND",
                "rules": []
            },
            "module_property_filter": {
                "condition":
                "AND",
                "rules": [{
                    "field": "bk_module_id",
                    "operator": "in",
                    "value": [8, 5, 6, 7]
                }],
            },
            "set_property_filter": {
                "condition": "AND",
                "rules": []
            },
        }

        ip_picker_handler = IPPickerHandler(self.selector, self.username,
                                            self.bk_biz_id,
                                            self.bk_supplier_account)
        ip_picker_handler._inject_topo_params(topo_list)
        self.assertEqual(ip_picker_handler.property_filters,
                         expected_property_filters)
Exemplo n.º 3
0
 def test__topo_picker_handler(self):
     self.selector = "topo"
     params = {
         "selectors":
         self.selector,
         "topo": [{
             "bk_obj_id": "set",
             "bk_inst_id": 3
         }, {
             "bk_obj_id": "module",
             "bk_inst_id": 8
         }],
     }
     expected_result = {
         "result":
         True,
         "data": [
             {
                 "bk_host_innerip": "2.2.2.2",
                 "bk_host_outerip": "2.2.2.2",
                 "bk_host_name": "2.2.2.2",
                 "bk_host_id": 2,
                 "bk_cloud_id": 0,
             },
             {
                 "bk_host_innerip": "3.3.3.3",
                 "bk_host_outerip": "3.3.3.3",
                 "bk_host_name": "3.3.3.3",
                 "bk_host_id": 3,
                 "bk_cloud_id": 0,
             },
         ],
         "message":
         "",
     }
     ip_picker_handler = IPPickerHandler(self.selector, self.username,
                                         self.bk_biz_id,
                                         self.bk_supplier_account)
     result = ip_picker_handler.dispatch(params)
     self.assertEqual(result, expected_result)
Exemplo n.º 4
0
 def test__group_picker_handler(self):
     self.selector = "group"
     params = {
         "selectors": self.selector,
         "group": [{
             "id": "group1"
         }, {
             "id": "group2"
         }],
     }
     expected_result = {
         "result":
         True,
         "data": [
             {
                 "bk_host_innerip": "3.3.3.3",
                 "bk_host_outerip": "3.3.3.3",
                 "bk_host_name": "3.3.3.3",
                 "bk_host_id": 3,
                 "bk_cloud_id": 0,
                 "host_modules_id": [8],
             },
         ],
         "message":
         "",
     }
     ip_picker_handler = IPPickerHandler(
         self.selector,
         self.username,
         self.bk_biz_id,
         self.bk_supplier_account,
         excludes=[{
             "field": "host",
             "value": ["1.1.1.1", "2.2.2.2"]
         }],
     )
     result = ip_picker_handler.dispatch(params)
     self.assertEqual(result, expected_result)
Exemplo n.º 5
0
    def test__init_default(self):
        expected_property_filters = {
            "host_property_filter": {
                "condition": "AND",
                "rules": []
            },
            "module_property_filter": {
                "condition": "AND",
                "rules": []
            },
            "set_property_filter": {
                "condition": "AND",
                "rules": []
            },
        }

        ip_picker_handler = IPPickerHandler(self.selector, self.username,
                                            self.bk_biz_id,
                                            self.bk_supplier_account)
        self.assertEqual(ip_picker_handler.property_filters,
                         expected_property_filters)
Exemplo n.º 6
0
    def test__inject_condition_params(self):
        filters = [
            {
                "field": "host",
                "value": ["1.1.1.1", "2.2.2.2"]
            },
            {
                "field": "set",
                "value": ["set2"]
            },
            {
                "field": "set",
                "value": ["set3"]
            },
            {
                "field": "module",
                "value": ["test1"]
            },
        ]
        excludes = [{
            "field": "set",
            "value": ["set2"]
        }, {
            "field": "host",
            "value": ["3.3.3.3"]
        }]
        expected_property_filters = {
            "host_property_filter": {
                "condition":
                "AND",
                "rules": [
                    {
                        "field": "bk_host_innerip",
                        "operator": "in",
                        "value": ["1.1.1.1", "2.2.2.2"]
                    },
                    {
                        "field": "bk_host_innerip",
                        "operator": "not_in",
                        "value": ["3.3.3.3"]
                    },
                ],
            },
            "module_property_filter": {
                "condition":
                "AND",
                "rules": [
                    {
                        "field": "bk_module_id",
                        "operator": "in",
                        "value": [5, 8]
                    },
                    {
                        "field": "bk_module_id",
                        "operator": "not_in",
                        "value": [5, 6, 7]
                    },
                ],
            },
            "set_property_filter": {
                "condition": "AND",
                "rules": []
            },
        }

        ip_picker_handler = IPPickerHandler(self.selector,
                                            self.username,
                                            self.bk_biz_id,
                                            self.bk_supplier_account,
                                            filters=filters,
                                            excludes=excludes)
        self.assertEqual(ip_picker_handler.property_filters,
                         expected_property_filters)
Exemplo n.º 7
0
 def test__ip_picker_handler(self):
     self.selector = "ip"
     params = {
         "selectors":
         self.selector,
         "ip": [
             {
                 "bk_host_name":
                 "host1",
                 "bk_host_id":
                 1,
                 "agent":
                 1,
                 "cloud": [{
                     "bk_obj_name": "",
                     "id": "0",
                     "bk_obj_id": "plat",
                     "bk_obj_icon": "",
                     "bk_inst_id": 0,
                     "bk_inst_name": "default area",
                 }],
                 "bk_host_innerip":
                 "1.1.1.1",
             },
             {
                 "bk_host_name":
                 "host2",
                 "bk_host_id":
                 2,
                 "agent":
                 1,
                 "cloud": [{
                     "bk_obj_name": "",
                     "id": "0",
                     "bk_obj_id": "plat",
                     "bk_obj_icon": "",
                     "bk_inst_id": 0,
                     "bk_inst_name": "default area",
                 }],
                 "bk_host_innerip":
                 "2.2.2.2",
             },
         ],
     }
     expected_result = {
         "result":
         True,
         "data": [
             {
                 "bk_host_innerip": "1.1.1.1",
                 "bk_host_outerip": "1.1.1.1",
                 "bk_host_name": "1.1.1.1",
                 "bk_host_id": 1,
                 "bk_cloud_id": 0,
             },
             {
                 "bk_host_innerip": "2.2.2.2",
                 "bk_host_outerip": "2.2.2.2",
                 "bk_host_name": "2.2.2.2",
                 "bk_host_id": 2,
                 "bk_cloud_id": 0,
             },
         ],
         "message":
         "",
     }
     ip_picker_handler = IPPickerHandler(self.selector, self.username,
                                         self.bk_biz_id,
                                         self.bk_supplier_account)
     result = ip_picker_handler.dispatch(params)
     self.assertEqual(result, expected_result)
Exemplo n.º 8
0
 def test__fetch_host_ip_with_property_filter(self):
     property_filters = {
         "host_property_filter": {
             "condition": "AND",
             "rules": [{
                 "field": "bk_host_id",
                 "operator": "in",
                 "value": [3]
             }],
         },
         "module_property_filter": {
             "condition":
             "AND",
             "rules": [
                 {
                     "field": "bk_module_id",
                     "operator": "not_in",
                     "value": [3, 4, 5]
                 },
                 {
                     "field": "bk_module_id",
                     "operator": "in",
                     "value": [8]
                 },
             ],
         },
         "set_property_filter": {
             "condition":
             "AND",
             "rules": [
                 {
                     "field": "bk_set_id",
                     "operator": "not_in",
                     "value": [3]
                 },
                 {
                     "field": "bk_set_id",
                     "operator": "in",
                     "value": [4]
                 },
             ],
         },
     }
     expected_result = {
         "result":
         True,
         "message":
         "",
         "code":
         "0",
         "data": [{
             "bk_host_innerip": "3.3.3.3",
             "bk_host_outerip": "3.3.3.3",
             "bk_host_name": "3.3.3.3",
             "bk_host_id": 3,
             "bk_cloud_id": 0,
         }],
     }
     ip_picker_handler = IPPickerHandler(self.selector, self.username,
                                         self.bk_biz_id,
                                         self.bk_supplier_account)
     ip_picker_handler.property_filters = property_filters
     result = ip_picker_handler.fetch_host_ip_with_property_filter()
     self.assertEqual(result, expected_result)
Exemplo n.º 9
0
    def test__inject_host_params(self):
        inputted_ips = [
            {
                "bk_host_name":
                "host1",
                "bk_host_id":
                1,
                "agent":
                1,
                "cloud": [{
                    "bk_obj_name": "",
                    "id": "0",
                    "bk_obj_id": "plat",
                    "bk_obj_icon": "",
                    "bk_inst_id": 0,
                    "bk_inst_name": "default area",
                }],
                "bk_host_innerip":
                "1.1.1.1",
            },
            {
                "bk_host_name":
                "host2",
                "bk_host_id":
                2,
                "agent":
                1,
                "cloud": [{
                    "bk_obj_name": "",
                    "id": "0",
                    "bk_obj_id": "plat",
                    "bk_obj_icon": "",
                    "bk_inst_id": 0,
                    "bk_inst_name": "default area",
                }],
                "bk_host_innerip":
                "2.2.2.2",
            },
        ]
        expected_property_filters = {
            "host_property_filter": {
                "condition":
                "AND",
                "rules": [{
                    "field": "bk_host_id",
                    "operator": "in",
                    "value": [1, 2]
                }],
            },
            "module_property_filter": {
                "condition": "AND",
                "rules": []
            },
            "set_property_filter": {
                "condition": "AND",
                "rules": []
            },
        }

        ip_picker_handler = IPPickerHandler(self.selector, self.username,
                                            self.bk_biz_id,
                                            self.bk_supplier_account)
        ip_picker_handler._inject_host_params(inputted_ips)
        self.assertEqual(ip_picker_handler.property_filters,
                         expected_property_filters)