)]}'
{"networking_ovn/octavia/ovn_driver.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"56bf8922137d3e49cdead12c2a6396feb9837a8b","unresolved":false,"context_lines":[{"line_number":1289,"context_line":"        port \u003d {\u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(lb_id),"},{"line_number":1290,"context_line":"                         \u0027network_id\u0027: vip_d[\u0027vip_network_id\u0027],"},{"line_number":1291,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027],"},{"line_number":1292,"context_line":"                                        \u0027ip_address\u0027: vip_d[\u0027vip_address\u0027]}],"},{"line_number":1293,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1294,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1295,"context_line":"        network_driver \u003d get_network_driver()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_e67c1322","line":1292,"range":{"start_line":1292,"start_character":41,"end_line":1292,"end_character":75},"updated":"2019-07-04 07:39:07.000000000","message":"So wouldn\u0027t this throw a KeyError if --vip-address is not specified in the commandline?","commit_id":"a869f50000c78ffc236b0b3ba78089b6ac7eb8cb"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"be88c7c637fb7aec5b687b1e7322e69d1690dfed","unresolved":false,"context_lines":[{"line_number":1289,"context_line":"        port \u003d {\u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(lb_id),"},{"line_number":1290,"context_line":"                         \u0027network_id\u0027: vip_d[\u0027vip_network_id\u0027],"},{"line_number":1291,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027],"},{"line_number":1292,"context_line":"                                        \u0027ip_address\u0027: vip_d[\u0027vip_address\u0027]}],"},{"line_number":1293,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1294,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1295,"context_line":"        network_driver \u003d get_network_driver()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_4612c7b3","line":1292,"range":{"start_line":1292,"start_character":41,"end_line":1292,"end_character":75},"in_reply_to":"7faddb67_e67c1322","updated":"2019-07-04 07:53:51.000000000","message":"enn...my fault. i did not consider that....","commit_id":"a869f50000c78ffc236b0b3ba78089b6ac7eb8cb"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"a17c1af854bc577a57e3aa174556079411fb2ea3","unresolved":false,"context_lines":[{"line_number":1291,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027]}],"},{"line_number":1292,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1293,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1294,"context_line":"        if vip_d.get(\u0027vip_address\u0027):"},{"line_number":1295,"context_line":"            port[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d vip_d[\u0027vip_address\u0027]"},{"line_number":1296,"context_line":"        network_driver \u003d get_network_driver()"},{"line_number":1297,"context_line":"        return network_driver.neutron_client.create_port(port)"},{"line_number":1298,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_fe56b706","line":1295,"range":{"start_line":1294,"start_character":8,"end_line":1295,"end_character":77},"updated":"2019-07-08 07:13:52.000000000","message":"Thanks that will work!","commit_id":"709900b3ff98fc6b1e32a4c5f4094fd1956c9d52"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ae859bc768f4e5a9792e24aa42d5ffdcca16e4","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"        return [(meminf.split(\u0027_\u0027)[1], meminf.split("},{"line_number":1432,"context_line":"            \u0027_\u0027)[2]) for meminf in existing_members.split(\u0027,\u0027)]"},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":"    def create_vip_port(self, lb_id, project_id, vip_d):"},{"line_number":1435,"context_line":"        port \u003d {\u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(lb_id),"},{"line_number":1436,"context_line":"                         \u0027network_id\u0027: vip_d[\u0027vip_network_id\u0027],"},{"line_number":1437,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027]}],"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_cf7f00de","line":1434,"updated":"2019-07-16 14:09:21.000000000","message":"You don\u0027t need to move arguments. Lets move project_id to be first as previously.","commit_id":"80b5f08a4173e6718ecc6caca0d1bd0c9167d8f4"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ae859bc768f4e5a9792e24aa42d5ffdcca16e4","unresolved":false,"context_lines":[{"line_number":1720,"context_line":"    def create_vip_port(self, lb_id, project_id, vip_dict):"},{"line_number":1721,"context_line":"        try:"},{"line_number":1722,"context_line":"            port \u003d self._ovn_helper.create_vip_port("},{"line_number":1723,"context_line":"                lb_id, project_id, vip_dict)[\u0027port\u0027]"},{"line_number":1724,"context_line":"            vip_dict[\u0027vip_port_id\u0027] \u003d port[\u0027id\u0027]"},{"line_number":1725,"context_line":"            vip_dict[\u0027vip_address\u0027] \u003d port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]"},{"line_number":1726,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_2f8a54be","line":1723,"updated":"2019-07-16 14:09:21.000000000","message":"Same here. Please move back project_id to be on first place.","commit_id":"80b5f08a4173e6718ecc6caca0d1bd0c9167d8f4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"33a184463100c568435939167720fc19f6e86d94","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027]}],"},{"line_number":1438,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1439,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1440,"context_line":"        if vip_d.get(\u0027vip_address\u0027):"},{"line_number":1441,"context_line":"            port[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d vip_d[\u0027vip_address\u0027]"},{"line_number":1442,"context_line":"        network_driver \u003d get_network_driver()"},{"line_number":1443,"context_line":"        return network_driver.neutron_client.create_port(port)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_395cd0eb","line":1440,"range":{"start_line":1440,"start_character":22,"end_line":1440,"end_character":33},"updated":"2019-07-17 14:30:40.000000000","message":"What does it mean for Octavia when vip_address (ip_address in vip_dict in Octavia https://github.com/openstack/octavia/blob/ff4680eb71cf03e4eae1a58e7a66321ddadcbead/octavia/api/drivers/utils.py#L463) is set to None? Is it even possible? Excuse my lack of knowledge in Octavia, I can\u0027t find where the parameters sent to API are validated and whether it even can be set to None. If not, then this snippet of code would be better and faster:\n\n try:\n     port[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d vip_d[\u0027vip_address\u0027]\n except KeyError:\n     pass","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"635c8ab836c7d76283a46aaefc78f977cd8993de","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027]}],"},{"line_number":1438,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1439,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1440,"context_line":"        if vip_d.get(\u0027vip_address\u0027):"},{"line_number":1441,"context_line":"            port[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d vip_d[\u0027vip_address\u0027]"},{"line_number":1442,"context_line":"        network_driver \u003d get_network_driver()"},{"line_number":1443,"context_line":"        return network_driver.neutron_client.create_port(port)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_a06b98ee","line":1440,"range":{"start_line":1440,"start_character":22,"end_line":1440,"end_character":33},"in_reply_to":"7faddb67_395cd0eb","updated":"2019-07-18 01:55:20.000000000","message":"Hi, Jakub,\nThe \u0027vip_address\u0027 you mentioned, would be validated first here.  \nhttps://github.com/openstack/octavia/blob/ff4680eb71cf03e4eae1a58e7a66321ddadcbead/octavia/api/common/types.py#L32\n\nSo I do not think it is need to validate it in this patch.","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"6115acb50fa8d6ab8160940154bb8f7922dacfbd","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027]}],"},{"line_number":1438,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1439,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1440,"context_line":"        if vip_d.get(\u0027vip_address\u0027):"},{"line_number":1441,"context_line":"            port[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d vip_d[\u0027vip_address\u0027]"},{"line_number":1442,"context_line":"        network_driver \u003d get_network_driver()"},{"line_number":1443,"context_line":"        return network_driver.neutron_client.create_port(port)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_b57baabc","line":1440,"range":{"start_line":1440,"start_character":22,"end_line":1440,"end_character":33},"in_reply_to":"7faddb67_a06b98ee","updated":"2019-07-22 08:39:38.000000000","message":"Right, if it\u0027s validated then I don\u0027t think we need this if clause and can use proper try-except block instead like  I suggested, no?","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"8b4d8eddc4a11560ff12bb6999b6bd42200383d6","unresolved":false,"context_lines":[{"line_number":1437,"context_line":"                         \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: vip_d[\u0027vip_subnet_id\u0027]}],"},{"line_number":1438,"context_line":"                         \u0027admin_state_up\u0027: True,"},{"line_number":1439,"context_line":"                         \u0027project_id\u0027: project_id}}"},{"line_number":1440,"context_line":"        if vip_d.get(\u0027vip_address\u0027):"},{"line_number":1441,"context_line":"            port[\u0027port\u0027][\u0027fixed_ips\u0027][0][\u0027ip_address\u0027] \u003d vip_d[\u0027vip_address\u0027]"},{"line_number":1442,"context_line":"        network_driver \u003d get_network_driver()"},{"line_number":1443,"context_line":"        return network_driver.neutron_client.create_port(port)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_0de2b202","line":1440,"range":{"start_line":1440,"start_character":22,"end_line":1440,"end_character":33},"in_reply_to":"7faddb67_b57baabc","updated":"2019-07-22 11:42:27.000000000","message":"yeah,I did not got your idea firstly. Done :)","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"}],"networking_ovn/tests/unit/octavia/test_ovn_driver.py":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"a17c1af854bc577a57e3aa174556079411fb2ea3","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        mock.patch.object(ovn_driver.OvnProviderHelper,"},{"line_number":204,"context_line":"                          \u0027_find_ovn_lb_with_pool_key\u0027,"},{"line_number":205,"context_line":"                          return_value\u003dself.ovn_lb).start()"},{"line_number":206,"context_line":"        self.vip_dict \u003d {\u0027vip_network_id\u0027: uuidutils.generate_uuid(),"},{"line_number":207,"context_line":"                         \u0027vip_subnet_id\u0027: uuidutils.generate_uuid()}"},{"line_number":208,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":209,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def test_member_create(self):"},{"line_number":212,"context_line":"        info \u003d {\u0027id\u0027: self.ref_member.member_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_de389bd4","line":209,"range":{"start_line":206,"start_character":0,"end_line":209,"end_character":75},"updated":"2019-07-08 07:13:52.000000000","message":"There is no vip_address key.","commit_id":"709900b3ff98fc6b1e32a4c5f4094fd1956c9d52"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"a17c1af854bc577a57e3aa174556079411fb2ea3","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def test_create_vip_port(self):"},{"line_number":394,"context_line":"        with mock.patch.object(ovn_driver, \u0027get_network_driver\u0027):"},{"line_number":395,"context_line":"            port_dict \u003d self.driver.create_vip_port(self.loadbalancer_id,"},{"line_number":396,"context_line":"                                                    self.project_id,"},{"line_number":397,"context_line":"                                                    self.vip_dict)"},{"line_number":398,"context_line":"            self.assertIsNotNone(port_dict.pop(\u0027vip_address\u0027, None))"},{"line_number":399,"context_line":"            self.assertIsNotNone(port_dict.pop(\u0027vip_port_id\u0027, None))"},{"line_number":400,"context_line":"            # The network_driver function is mocked, therefore the"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_5e526b15","line":397,"range":{"start_line":395,"start_character":9,"end_line":397,"end_character":66},"updated":"2019-07-08 07:13:52.000000000","message":"I\u0027ll add here explicitly vip_address (add it to vip_dict) and then verify if port_dict has this address set.","commit_id":"709900b3ff98fc6b1e32a4c5f4094fd1956c9d52"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"73c9113de279e5826b08f23d1a5a9a651627fb24","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def test_create_vip_port(self):"},{"line_number":394,"context_line":"        with mock.patch.object(ovn_driver, \u0027get_network_driver\u0027):"},{"line_number":395,"context_line":"            port_dict \u003d self.driver.create_vip_port(self.loadbalancer_id,"},{"line_number":396,"context_line":"                                                    self.project_id,"},{"line_number":397,"context_line":"                                                    self.vip_dict)"},{"line_number":398,"context_line":"            self.assertIsNotNone(port_dict.pop(\u0027vip_address\u0027, None))"},{"line_number":399,"context_line":"            self.assertIsNotNone(port_dict.pop(\u0027vip_port_id\u0027, None))"},{"line_number":400,"context_line":"            # The network_driver function is mocked, therefore the"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_a8beaf62","line":397,"range":{"start_line":395,"start_character":9,"end_line":397,"end_character":66},"in_reply_to":"7faddb67_177e0619","updated":"2019-07-09 07:47:29.000000000","message":"I\u0027ll try to add in the test assert that \u0027network_driver.neutron_client.create_port\u0027 has been called with dict that contains the vip_address you passed, but:\n\n1) first modify the context manager:\n\nwith mock.patch.object(ovn_driver, \u0027get_network_driver\u0027) as gn:\n...\n\n2) add key and value for \u0027vip_address\u0027 in self.vip_dict before create_vip_port()\n\n3) check if mocked network_driver.neutron_client.create_port has been called with proper vip_address, that should be enough:\n\ngn.neutron_client.create_port.assert_called_once_with(\n{\u0027port\u0027: {\u0027network_id\u0027: ... \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027: \u0027d860247a-0c85-40da-8fb4-74b678bc828f\u0027}, \u0027vip_address\u0027: GIVEN_ADDRESS]...}})\n\nrest of values and keys that contains this dict you can get from testclass (check self).","commit_id":"709900b3ff98fc6b1e32a4c5f4094fd1956c9d52"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"480bf872e9e2c9f700aa037ac7c8b687419429bf","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def test_create_vip_port(self):"},{"line_number":394,"context_line":"        with mock.patch.object(ovn_driver, \u0027get_network_driver\u0027):"},{"line_number":395,"context_line":"            port_dict \u003d self.driver.create_vip_port(self.loadbalancer_id,"},{"line_number":396,"context_line":"                                                    self.project_id,"},{"line_number":397,"context_line":"                                                    self.vip_dict)"},{"line_number":398,"context_line":"            self.assertIsNotNone(port_dict.pop(\u0027vip_address\u0027, None))"},{"line_number":399,"context_line":"            self.assertIsNotNone(port_dict.pop(\u0027vip_port_id\u0027, None))"},{"line_number":400,"context_line":"            # The network_driver function is mocked, therefore the"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_177e0619","line":397,"range":{"start_line":395,"start_character":9,"end_line":397,"end_character":66},"in_reply_to":"7faddb67_5e526b15","updated":"2019-07-09 00:56:19.000000000","message":"I just find one method\u003cget_network_driver\u003e can be mocked, but it is the return result of method (self.heleper.create_vip_port). I think ,if mocked the method\u003cget_network_driver\u003e , the result is just what we put, nothing could be check. I can check if it has vip_adress ,but I do not know how to check if the vip_address is we supplied. What do you think :)","commit_id":"709900b3ff98fc6b1e32a4c5f4094fd1956c9d52"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"a17c1af854bc577a57e3aa174556079411fb2ea3","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            # The finally output is include vip_address, vip_port_id,"},{"line_number":404,"context_line":"            # vip_network_id and vip_subnet_id."},{"line_number":405,"context_line":"            for key, value in port_dict.items():"},{"line_number":406,"context_line":"                self.assertEqual(value, self.vip_output[key])"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"class TestOvnProviderHelper(TestOvnOctaviaBase):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_7e1c076a","line":406,"range":{"start_line":406,"start_character":15,"end_line":406,"end_character":61},"updated":"2019-07-08 07:13:52.000000000","message":"Please look at line L209.\n\nport_dict at this time doesn\u0027t include vip_address, so this assert will not check if given ip address has been set as VIP for loadbalancer.","commit_id":"709900b3ff98fc6b1e32a4c5f4094fd1956c9d52"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ae859bc768f4e5a9792e24aa42d5ffdcca16e4","unresolved":false,"context_lines":[{"line_number":1182,"context_line":"                     \u0027project_id\u0027: self.project_id}}"},{"line_number":1183,"context_line":"        with mock.patch.object(ovn_driver, \u0027get_network_driver\u0027) as gn:"},{"line_number":1184,"context_line":"            self.vip_dict[\u0027vip_address\u0027] \u003d \u002710.1.10.1\u0027"},{"line_number":1185,"context_line":"            self.helper.create_vip_port(self.loadbalancer_id,"},{"line_number":1186,"context_line":"                                        self.project_id,"},{"line_number":1187,"context_line":"                                        self.vip_dict)"},{"line_number":1188,"context_line":"            expected_call \u003d ["}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_8f6fc8fa","line":1185,"range":{"start_line":1185,"start_character":45,"end_line":1185,"end_character":60},"updated":"2019-07-16 14:09:21.000000000","message":"Please move back project_id to be first here.\nIf there is no special need we shouldn\u0027t change functions definitions.","commit_id":"80b5f08a4173e6718ecc6caca0d1bd0c9167d8f4"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"04ae859bc768f4e5a9792e24aa42d5ffdcca16e4","unresolved":false,"context_lines":[{"line_number":1198,"context_line":"                     \u0027admin_state_up\u0027: True,"},{"line_number":1199,"context_line":"                     \u0027project_id\u0027: self.project_id}}"},{"line_number":1200,"context_line":"        with mock.patch.object(ovn_driver, \u0027get_network_driver\u0027) as gn:"},{"line_number":1201,"context_line":"            self.helper.create_vip_port(self.loadbalancer_id,"},{"line_number":1202,"context_line":"                                        self.project_id,"},{"line_number":1203,"context_line":"                                        self.vip_dict)"},{"line_number":1204,"context_line":"            expected_call \u003d ["},{"line_number":1205,"context_line":"                mock.call().neutron_client.create_port(expected_dict)]"},{"line_number":1206,"context_line":"            gn.assert_has_calls(expected_call)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_ef7d1cb2","line":1203,"range":{"start_line":1201,"start_character":0,"end_line":1203,"end_character":54},"updated":"2019-07-16 14:09:21.000000000","message":"Same here","commit_id":"80b5f08a4173e6718ecc6caca0d1bd0c9167d8f4"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"33a184463100c568435939167720fc19f6e86d94","unresolved":false,"context_lines":[{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    def test_create_vip_port_vip_selected(self):"},{"line_number":1175,"context_line":"        expected_dict \u003d {"},{"line_number":1176,"context_line":"            \u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(self.loadbalancer_id),"},{"line_number":1177,"context_line":"                     \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027:"},{"line_number":1178,"context_line":"                                    self.vip_dict[\u0027vip_subnet_id\u0027],"},{"line_number":1179,"context_line":"                                    \u0027ip_address\u0027:\u002710.1.10.1\u0027}],"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_d9fb3cbe","line":1176,"range":{"start_line":1176,"start_character":41,"end_line":1176,"end_character":49},"updated":"2019-07-17 14:30:40.000000000","message":"nit: you can implicitly type it to str by\n\n \u0027ovn-lb-vip-%s\u0027 % self.loadbalancer_id","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"8e0098a13457f51301bcb72577a344ba9dc9302c","unresolved":false,"context_lines":[{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    def test_create_vip_port_vip_selected(self):"},{"line_number":1175,"context_line":"        expected_dict \u003d {"},{"line_number":1176,"context_line":"            \u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(self.loadbalancer_id),"},{"line_number":1177,"context_line":"                     \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027:"},{"line_number":1178,"context_line":"                                    self.vip_dict[\u0027vip_subnet_id\u0027],"},{"line_number":1179,"context_line":"                                    \u0027ip_address\u0027:\u002710.1.10.1\u0027}],"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_b5ee4ab2","line":1176,"range":{"start_line":1176,"start_character":41,"end_line":1176,"end_character":49},"in_reply_to":"7faddb67_3b011d07","updated":"2019-07-22 08:23:58.000000000","message":"Better would be to just use:\n\u0027ovn-lb-vip-%s\u0027 % self.loadbalancer_id\n\nYou can change it in the example you gave :)","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"0a9a09ef2d58bdb2ec7702f0603002231dc26061","unresolved":false,"context_lines":[{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    def test_create_vip_port_vip_selected(self):"},{"line_number":1175,"context_line":"        expected_dict \u003d {"},{"line_number":1176,"context_line":"            \u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(self.loadbalancer_id),"},{"line_number":1177,"context_line":"                     \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027:"},{"line_number":1178,"context_line":"                                    self.vip_dict[\u0027vip_subnet_id\u0027],"},{"line_number":1179,"context_line":"                                    \u0027ip_address\u0027:\u002710.1.10.1\u0027}],"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_3b011d07","line":1176,"range":{"start_line":1176,"start_character":41,"end_line":1176,"end_character":49},"in_reply_to":"7faddb67_a03958f2","updated":"2019-07-18 03:22:54.000000000","message":"Hi,Jakub,\nI found another patch has change this code in other form,I think it looks cool, so I change it as they do. How do you think?\nhttps://github.com/openstack/networking-ovn/blob/master/networking_ovn/octavia/ovn_driver.py#L1504","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"635c8ab836c7d76283a46aaefc78f977cd8993de","unresolved":false,"context_lines":[{"line_number":1173,"context_line":""},{"line_number":1174,"context_line":"    def test_create_vip_port_vip_selected(self):"},{"line_number":1175,"context_line":"        expected_dict \u003d {"},{"line_number":1176,"context_line":"            \u0027port\u0027: {\u0027name\u0027: \u0027ovn-lb-vip-\u0027 + str(self.loadbalancer_id),"},{"line_number":1177,"context_line":"                     \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027:"},{"line_number":1178,"context_line":"                                    self.vip_dict[\u0027vip_subnet_id\u0027],"},{"line_number":1179,"context_line":"                                    \u0027ip_address\u0027:\u002710.1.10.1\u0027}],"}],"source_content_type":"text/x-python","patch_set":10,"id":"7faddb67_a03958f2","line":1176,"range":{"start_line":1176,"start_character":41,"end_line":1176,"end_character":49},"in_reply_to":"7faddb67_d9fb3cbe","updated":"2019-07-18 01:55:20.000000000","message":"sounds good. I will change it.","commit_id":"8574648fc8813a6a3adc9de743b7d2f4cedf3db2"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"f170c6c705441a77101a9d2e7d70573572ba3d83","unresolved":false,"context_lines":[{"line_number":1282,"context_line":""},{"line_number":1283,"context_line":"    def test_create_vip_port_vip_selected(self):"},{"line_number":1284,"context_line":"        expected_dict \u003d {"},{"line_number":1285,"context_line":"            \u0027port\u0027: {\u0027name\u0027: ovn_const.LB_VIP_PORT_PREFIX +"},{"line_number":1286,"context_line":"                     str(self.loadbalancer_id),"},{"line_number":1287,"context_line":"                     \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027:"},{"line_number":1288,"context_line":"                                    self.vip_dict[\u0027vip_subnet_id\u0027],"},{"line_number":1289,"context_line":"                                    \u0027ip_address\u0027:\u002710.1.10.1\u0027}],"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_d525060c","line":1286,"range":{"start_line":1285,"start_character":0,"end_line":1286,"end_character":47},"updated":"2019-07-22 08:27:32.000000000","message":"Using this prefix is fine!\nYou can combine the string as:\n\u0027%s%s\u0027 % (ovn_const.LB_VIP_PORT_PREFIX, self.loadbalancer_id)","commit_id":"3e6c864b6a15b251018479a703815c5fc60814e7"},{"author":{"_account_id":29874,"name":"Taoyunxiang","email":"taoyunxiang_yewu@cmss.chinamobile.com","username":"Yunxiang"},"change_message_id":"8b4d8eddc4a11560ff12bb6999b6bd42200383d6","unresolved":false,"context_lines":[{"line_number":1282,"context_line":""},{"line_number":1283,"context_line":"    def test_create_vip_port_vip_selected(self):"},{"line_number":1284,"context_line":"        expected_dict \u003d {"},{"line_number":1285,"context_line":"            \u0027port\u0027: {\u0027name\u0027: ovn_const.LB_VIP_PORT_PREFIX +"},{"line_number":1286,"context_line":"                     str(self.loadbalancer_id),"},{"line_number":1287,"context_line":"                     \u0027fixed_ips\u0027: [{\u0027subnet_id\u0027:"},{"line_number":1288,"context_line":"                                    self.vip_dict[\u0027vip_subnet_id\u0027],"},{"line_number":1289,"context_line":"                                    \u0027ip_address\u0027:\u002710.1.10.1\u0027}],"}],"source_content_type":"text/x-python","patch_set":11,"id":"7faddb67_6dd1e62f","line":1286,"range":{"start_line":1285,"start_character":0,"end_line":1286,"end_character":47},"in_reply_to":"7faddb67_d525060c","updated":"2019-07-22 11:42:27.000000000","message":"done:)","commit_id":"3e6c864b6a15b251018479a703815c5fc60814e7"}]}
