)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c40286e37e7640511bb7002722dd9773c8f6f051","unresolved":true,"context_lines":[{"line_number":13,"context_line":"notifications are received."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In this patch, notifications are listened and subport status should be"},{"line_number":16,"context_line":"updated when trunk/subport is crated amd subport is already added to"},{"line_number":17,"context_line":"trunk:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    device_id: \u003ctrunk_id\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"4a1063a5_d52d2a7a","line":16,"range":{"start_line":16,"start_character":30,"end_line":16,"end_character":40},"updated":"2021-09-02 11:28:11.000000000","message":"nit: created and","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9f61c285d4a5963f07fcb8770d37c376a9635bad","unresolved":true,"context_lines":[{"line_number":13,"context_line":"notifications are received."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In this patch, notifications are listened and subport status should be"},{"line_number":16,"context_line":"updated when trunk/subport is crated amd subport is already added to"},{"line_number":17,"context_line":"trunk:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    device_id: \u003ctrunk_id\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7c6c59bd_27d9f615","line":16,"range":{"start_line":16,"start_character":30,"end_line":16,"end_character":40},"in_reply_to":"4a1063a5_d52d2a7a","updated":"2021-09-03 09:09:04.000000000","message":"done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9239a95953fe414b81e310913739b082aa72d139","unresolved":false,"context_lines":[{"line_number":13,"context_line":"notifications are received."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In this patch, notifications are listened and subport status should be"},{"line_number":16,"context_line":"updated when trunk/subport is crated amd subport is already added to"},{"line_number":17,"context_line":"trunk:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    device_id: \u003ctrunk_id\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bb44cb4e_9b1f490c","line":16,"range":{"start_line":16,"start_character":30,"end_line":16,"end_character":40},"in_reply_to":"7c6c59bd_27d9f615","updated":"2021-09-03 09:11:52.000000000","message":"Done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"}],"neutron/services/trunk/plugin.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c40286e37e7640511bb7002722dd9773c8f6f051","unresolved":true,"context_lines":[{"line_number":492,"context_line":"                subports \u003d payload.metadata[\u0027subports\u0027]"},{"line_number":493,"context_line":"                parent_port \u003d directory.get_plugin().get_port("},{"line_number":494,"context_line":"                    context.get_admin_context(),"},{"line_number":495,"context_line":"                    payload.states[1][\u0027port_id\u0027])"},{"line_number":496,"context_line":"                host_id \u003d parent_port[\u0027binding:host_id\u0027]"},{"line_number":497,"context_line":"        elif event \u003d\u003d events.AFTER_DELETE:"},{"line_number":498,"context_line":"            host_id \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"f2e22683_a1acfd58","line":495,"range":{"start_line":495,"start_character":20,"end_line":495,"end_character":37},"updated":"2021-09-02 11:28:11.000000000","message":"are we sure \u0027states\u0027 will always have \u003e\u003d 2 elements? I\u0027d add a check or just changed to \u0027latest_state\u0027","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9239a95953fe414b81e310913739b082aa72d139","unresolved":false,"context_lines":[{"line_number":492,"context_line":"                subports \u003d payload.metadata[\u0027subports\u0027]"},{"line_number":493,"context_line":"                parent_port \u003d directory.get_plugin().get_port("},{"line_number":494,"context_line":"                    context.get_admin_context(),"},{"line_number":495,"context_line":"                    payload.states[1][\u0027port_id\u0027])"},{"line_number":496,"context_line":"                host_id \u003d parent_port[\u0027binding:host_id\u0027]"},{"line_number":497,"context_line":"        elif event \u003d\u003d events.AFTER_DELETE:"},{"line_number":498,"context_line":"            host_id \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ae216afb_97672f35","line":495,"range":{"start_line":495,"start_character":20,"end_line":495,"end_character":37},"in_reply_to":"dc12121e_5e26b477","updated":"2021-09-03 09:11:52.000000000","message":"Done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9f61c285d4a5963f07fcb8770d37c376a9635bad","unresolved":true,"context_lines":[{"line_number":492,"context_line":"                subports \u003d payload.metadata[\u0027subports\u0027]"},{"line_number":493,"context_line":"                parent_port \u003d directory.get_plugin().get_port("},{"line_number":494,"context_line":"                    context.get_admin_context(),"},{"line_number":495,"context_line":"                    payload.states[1][\u0027port_id\u0027])"},{"line_number":496,"context_line":"                host_id \u003d parent_port[\u0027binding:host_id\u0027]"},{"line_number":497,"context_line":"        elif event \u003d\u003d events.AFTER_DELETE:"},{"line_number":498,"context_line":"            host_id \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"dc12121e_5e26b477","line":495,"range":{"start_line":495,"start_character":20,"end_line":495,"end_character":37},"in_reply_to":"f2e22683_a1acfd58","updated":"2021-09-03 09:09:04.000000000","message":"for subport creating scenario, original and current trunk are required. I also add a check in case program might be crashed.","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b92e0862e498341306d94c943e9aa16caeb9705","unresolved":true,"context_lines":[{"line_number":15,"context_line":"import copy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import eventlet"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from neutron_lib.api.definitions import port as port_def"},{"line_number":20,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":21,"context_line":"from neutron_lib.api.definitions import trunk as trunk_apidef"}],"source_content_type":"text/x-python","patch_set":3,"id":"d3e41143_d038435b","line":18,"updated":"2021-09-07 07:20:17.000000000","message":"no blank line here as eventlet is 3rd party import as well","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"edc6409d21ed7e64bb15aedbacf9c2f6afa2aaf5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import copy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import eventlet"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from neutron_lib.api.definitions import port as port_def"},{"line_number":20,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":21,"context_line":"from neutron_lib.api.definitions import trunk as trunk_apidef"}],"source_content_type":"text/x-python","patch_set":3,"id":"0e6c6cac_db890f13","line":18,"in_reply_to":"d3e41143_d038435b","updated":"2021-09-08 07:54:31.000000000","message":"Done","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"}],"neutron/tests/unit/services/trunk/test_plugin.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c40286e37e7640511bb7002722dd9773c8f6f051","unresolved":true,"context_lines":[{"line_number":382,"context_line":"            trunk_obj.update()"},{"line_number":383,"context_line":"            payload \u003d events.DBEventPayload("},{"line_number":384,"context_line":"                self.context, resource_id\u003dtrunk_obj.id, states\u003d(trunk_obj,))"},{"line_number":385,"context_line":"            self.trunk_plugin._update_device_attributes("},{"line_number":386,"context_line":"                resources.TRUNK, events.AFTER_CREATE, None, payload)"},{"line_number":387,"context_line":"            time.sleep(0.2)"},{"line_number":388,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"8c6f77a9_b5a6dc5f","line":385,"range":{"start_line":385,"start_character":30,"end_line":385,"end_character":55},"updated":"2021-09-02 11:28:11.000000000","message":"isn\u0027t this triggered automatically when trunk is created?","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9f61c285d4a5963f07fcb8770d37c376a9635bad","unresolved":true,"context_lines":[{"line_number":382,"context_line":"            trunk_obj.update()"},{"line_number":383,"context_line":"            payload \u003d events.DBEventPayload("},{"line_number":384,"context_line":"                self.context, resource_id\u003dtrunk_obj.id, states\u003d(trunk_obj,))"},{"line_number":385,"context_line":"            self.trunk_plugin._update_device_attributes("},{"line_number":386,"context_line":"                resources.TRUNK, events.AFTER_CREATE, None, payload)"},{"line_number":387,"context_line":"            time.sleep(0.2)"},{"line_number":388,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c0d7a2af_6e1209f4","line":385,"range":{"start_line":385,"start_character":30,"end_line":385,"end_character":55},"in_reply_to":"8c6f77a9_b5a6dc5f","updated":"2021-09-03 09:09:04.000000000","message":"yes. And subport create event is also triggered and the last status is dealing subport create event. Has to manually call the function and check the status","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9239a95953fe414b81e310913739b082aa72d139","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            trunk_obj.update()"},{"line_number":383,"context_line":"            payload \u003d events.DBEventPayload("},{"line_number":384,"context_line":"                self.context, resource_id\u003dtrunk_obj.id, states\u003d(trunk_obj,))"},{"line_number":385,"context_line":"            self.trunk_plugin._update_device_attributes("},{"line_number":386,"context_line":"                resources.TRUNK, events.AFTER_CREATE, None, payload)"},{"line_number":387,"context_line":"            time.sleep(0.2)"},{"line_number":388,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c90e1a63_e809bc50","line":385,"range":{"start_line":385,"start_character":30,"end_line":385,"end_character":55},"in_reply_to":"c0d7a2af_6e1209f4","updated":"2021-09-03 09:11:52.000000000","message":"Done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c40286e37e7640511bb7002722dd9773c8f6f051","unresolved":true,"context_lines":[{"line_number":384,"context_line":"                self.context, resource_id\u003dtrunk_obj.id, states\u003d(trunk_obj,))"},{"line_number":385,"context_line":"            self.trunk_plugin._update_device_attributes("},{"line_number":386,"context_line":"                resources.TRUNK, events.AFTER_CREATE, None, payload)"},{"line_number":387,"context_line":"            time.sleep(0.2)"},{"line_number":388,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":389,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":390,"context_line":"            self.assertEqual(subport_obj.device_owner,"}],"source_content_type":"text/x-python","patch_set":1,"id":"82950681_ef09994f","line":387,"range":{"start_line":387,"start_character":12,"end_line":387,"end_character":27},"updated":"2021-09-02 11:28:11.000000000","message":"consider define helper func to check port\u0027s device_owner and device_id and use it with wait_until_true util. 0.2 might not be suitable for all testing environments","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9f61c285d4a5963f07fcb8770d37c376a9635bad","unresolved":true,"context_lines":[{"line_number":384,"context_line":"                self.context, resource_id\u003dtrunk_obj.id, states\u003d(trunk_obj,))"},{"line_number":385,"context_line":"            self.trunk_plugin._update_device_attributes("},{"line_number":386,"context_line":"                resources.TRUNK, events.AFTER_CREATE, None, payload)"},{"line_number":387,"context_line":"            time.sleep(0.2)"},{"line_number":388,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":389,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":390,"context_line":"            self.assertEqual(subport_obj.device_owner,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c96fdd97_bd529e92","line":387,"range":{"start_line":387,"start_character":12,"end_line":387,"end_character":27},"in_reply_to":"82950681_ef09994f","updated":"2021-09-03 09:09:04.000000000","message":"done.\n\nadd wait_until_true to check port status.\n\nIn scenario that the initial status and final status are the same, sleep for a short while waiting its middle status is updated.","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9239a95953fe414b81e310913739b082aa72d139","unresolved":false,"context_lines":[{"line_number":384,"context_line":"                self.context, resource_id\u003dtrunk_obj.id, states\u003d(trunk_obj,))"},{"line_number":385,"context_line":"            self.trunk_plugin._update_device_attributes("},{"line_number":386,"context_line":"                resources.TRUNK, events.AFTER_CREATE, None, payload)"},{"line_number":387,"context_line":"            time.sleep(0.2)"},{"line_number":388,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":389,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":390,"context_line":"            self.assertEqual(subport_obj.device_owner,"}],"source_content_type":"text/x-python","patch_set":1,"id":"238f0a0b_f465a71f","line":387,"range":{"start_line":387,"start_character":12,"end_line":387,"end_character":27},"in_reply_to":"c96fdd97_bd529e92","updated":"2021-09-03 09:11:52.000000000","message":"Done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"c40286e37e7640511bb7002722dd9773c8f6f051","unresolved":true,"context_lines":[{"line_number":422,"context_line":"            time.sleep(0.2)"},{"line_number":423,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":424,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":425,"context_line":"            self.assertEqual(subport_obj.device_owner,"},{"line_number":426,"context_line":"                             constants.TRUNK_SUBPORT_OWNER)"},{"line_number":427,"context_line":"            self.assertEqual(subport_obj.device_id, trunk[\u0027id\u0027])"},{"line_number":428,"context_line":"            payload \u003d events.DBEventPayload("},{"line_number":429,"context_line":"                self.context,"},{"line_number":430,"context_line":"                resource_id\u003dtrunk_obj.id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d09aa7a0_2243efad","line":427,"range":{"start_line":425,"start_character":12,"end_line":427,"end_character":64},"updated":"2021-09-02 11:28:11.000000000","message":"should it also check for proper \u0027binding:host\u0027?","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9239a95953fe414b81e310913739b082aa72d139","unresolved":false,"context_lines":[{"line_number":422,"context_line":"            time.sleep(0.2)"},{"line_number":423,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":424,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":425,"context_line":"            self.assertEqual(subport_obj.device_owner,"},{"line_number":426,"context_line":"                             constants.TRUNK_SUBPORT_OWNER)"},{"line_number":427,"context_line":"            self.assertEqual(subport_obj.device_id, trunk[\u0027id\u0027])"},{"line_number":428,"context_line":"            payload \u003d events.DBEventPayload("},{"line_number":429,"context_line":"                self.context,"},{"line_number":430,"context_line":"                resource_id\u003dtrunk_obj.id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"0a732392_d0b78142","line":427,"range":{"start_line":425,"start_character":12,"end_line":427,"end_character":64},"in_reply_to":"a9d096c4_fd919ffb","updated":"2021-09-03 09:11:52.000000000","message":"Done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"9f61c285d4a5963f07fcb8770d37c376a9635bad","unresolved":true,"context_lines":[{"line_number":422,"context_line":"            time.sleep(0.2)"},{"line_number":423,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":424,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":425,"context_line":"            self.assertEqual(subport_obj.device_owner,"},{"line_number":426,"context_line":"                             constants.TRUNK_SUBPORT_OWNER)"},{"line_number":427,"context_line":"            self.assertEqual(subport_obj.device_id, trunk[\u0027id\u0027])"},{"line_number":428,"context_line":"            payload \u003d events.DBEventPayload("},{"line_number":429,"context_line":"                self.context,"},{"line_number":430,"context_line":"                resource_id\u003dtrunk_obj.id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a9d096c4_fd919ffb","line":427,"range":{"start_line":425,"start_character":12,"end_line":427,"end_character":64},"in_reply_to":"d09aa7a0_2243efad","updated":"2021-09-03 09:09:04.000000000","message":"done","commit_id":"d913d7b18e4079e0317ad7816a6f00620570d727"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b92e0862e498341306d94c943e9aa16caeb9705","unresolved":true,"context_lines":[{"line_number":391,"context_line":"                    self.context,"},{"line_number":392,"context_line":"                    id\u003d[childport[\u0027port\u0027][\u0027id\u0027]]"},{"line_number":393,"context_line":"                ).device_owner \u003d\u003d constants.TRUNK_SUBPORT_OWNER,"},{"line_number":394,"context_line":"                timeout\u003d2)"},{"line_number":395,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":396,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":397,"context_line":"            self.assertEqual(subport_obj.device_owner,"}],"source_content_type":"text/x-python","patch_set":3,"id":"f31eba7a_819ef25d","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":25},"updated":"2021-09-07 07:20:17.000000000","message":"2 might still be too small for some environments, example: https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_31c/807076/3/check-arm64/openstack-tox-py39-arm64/31cb958/testr_results.html - I\u0027d suggest to make it at least 5","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"edc6409d21ed7e64bb15aedbacf9c2f6afa2aaf5","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                    self.context,"},{"line_number":392,"context_line":"                    id\u003d[childport[\u0027port\u0027][\u0027id\u0027]]"},{"line_number":393,"context_line":"                ).device_owner \u003d\u003d constants.TRUNK_SUBPORT_OWNER,"},{"line_number":394,"context_line":"                timeout\u003d2)"},{"line_number":395,"context_line":"            subport_obj \u003d ports.Port.get_object(self.context,"},{"line_number":396,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":397,"context_line":"            self.assertEqual(subport_obj.device_owner,"}],"source_content_type":"text/x-python","patch_set":3,"id":"100790ab_d945dd36","line":394,"range":{"start_line":394,"start_character":16,"end_line":394,"end_character":25},"in_reply_to":"f31eba7a_819ef25d","updated":"2021-09-08 07:54:31.000000000","message":"Done","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b92e0862e498341306d94c943e9aa16caeb9705","unresolved":true,"context_lines":[{"line_number":443,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":444,"context_line":"            self.assertEqual(subport_obj.device_owner,"},{"line_number":445,"context_line":"                             constants.TRUNK_SUBPORT_OWNER)"},{"line_number":446,"context_line":"            self.assertEqual(subport_obj.device_id, trunk[\u0027id\u0027])"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test__update_device_attributes_subport_delete(self):"},{"line_number":449,"context_line":"        with self.port() as parent, self.port() as childport:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffcd14bf_c149c747","line":446,"updated":"2021-09-07 07:20:17.000000000","message":"consider creating port with binding:host_id and check host update here as well","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"edc6409d21ed7e64bb15aedbacf9c2f6afa2aaf5","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":444,"context_line":"            self.assertEqual(subport_obj.device_owner,"},{"line_number":445,"context_line":"                             constants.TRUNK_SUBPORT_OWNER)"},{"line_number":446,"context_line":"            self.assertEqual(subport_obj.device_id, trunk[\u0027id\u0027])"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test__update_device_attributes_subport_delete(self):"},{"line_number":449,"context_line":"        with self.port() as parent, self.port() as childport:"}],"source_content_type":"text/x-python","patch_set":3,"id":"e8f7ecf4_e0dcb1ce","line":446,"in_reply_to":"ffcd14bf_c149c747","updated":"2021-09-08 07:54:31.000000000","message":"Done","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"7b92e0862e498341306d94c943e9aa16caeb9705","unresolved":true,"context_lines":[{"line_number":472,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":473,"context_line":"            self.assertEqual(\u0027\u0027, subport_obj.device_owner)"},{"line_number":474,"context_line":"            self.assertEqual(\u0027\u0027, subport_obj.device_id)"},{"line_number":475,"context_line":"            self.assertEqual(\u0027\u0027, subport_obj.bindings[0][\u0027host\u0027])"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"class TrunkPluginCompatDriversTestCase(test_plugin.Ml2PluginV2TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"4f74c816_1efe25f4","line":475,"range":{"start_line":475,"start_character":12,"end_line":475,"end_character":65},"updated":"2021-09-07 07:20:17.000000000","message":"I guess this never changed, please create port with binding:host_id to check that it will be cleared on delete","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"edc6409d21ed7e64bb15aedbacf9c2f6afa2aaf5","unresolved":false,"context_lines":[{"line_number":472,"context_line":"                                                id\u003d[childport[\u0027port\u0027][\u0027id\u0027]])"},{"line_number":473,"context_line":"            self.assertEqual(\u0027\u0027, subport_obj.device_owner)"},{"line_number":474,"context_line":"            self.assertEqual(\u0027\u0027, subport_obj.device_id)"},{"line_number":475,"context_line":"            self.assertEqual(\u0027\u0027, subport_obj.bindings[0][\u0027host\u0027])"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"class TrunkPluginCompatDriversTestCase(test_plugin.Ml2PluginV2TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"20ad402f_5bf38282","line":475,"range":{"start_line":475,"start_character":12,"end_line":475,"end_character":65},"in_reply_to":"4f74c816_1efe25f4","updated":"2021-09-08 07:54:31.000000000","message":"Done","commit_id":"bb26e63444a05949795c830c898b99662ef6fe5d"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"edc6409d21ed7e64bb15aedbacf9c2f6afa2aaf5","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import testtools"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron.common import utils"},{"line_number":23,"context_line":"from neutron_lib.api.definitions import portbindings"}],"source_content_type":"text/x-python","patch_set":5,"id":"2f1da933_e3a52437","line":20,"in_reply_to":"4fa190e9_e84abb5a","updated":"2021-09-08 07:54:31.000000000","message":"\u003e pep8: I100 Import statements are in the wrong order. \u0027import time\u0027 should be before \u0027import testtools\u0027 and in a different group.\n\nPlease fix.","commit_id":"6908b45c4931b98b6f1efdd594c0ef3db727c4aa"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3e3889c005d17342d4d0a22b619eefe44dff4c26","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5906b200_d6b13998","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":11},"updated":"2021-09-09 11:11:06.000000000","message":"Please check https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template - accirding to it \u0027time\u0027 should be in first group, \u0027testtools\u0027 - in the second","commit_id":"309ee108343fa25064551e90b4eea6a828e9bbf4"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"2fb065f841d92e0c269c4338ca1e6d3c3125fd5c","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7e971ede_8bf50f9f","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":11},"in_reply_to":"5906b200_d6b13998","updated":"2021-09-09 12:27:14.000000000","message":"get the following error when i put time before testtools\n\nLine 20\npep8: I100 Import statements are in the wrong order. \u0027import time\u0027 should be before \u0027import testtools\u0027 and in a different group.","commit_id":"309ee108343fa25064551e90b4eea6a828e9bbf4"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"fefb602a28f6ca9efcb6e307d5470f8f56765ade","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron.common import utils"},{"line_number":23,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":24,"context_line":"from neutron_lib.callbacks import events"},{"line_number":25,"context_line":"from neutron_lib.callbacks import registry"}],"source_content_type":"text/x-python","patch_set":6,"id":"34f325d8_25e45085","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":32},"updated":"2021-09-09 11:31:38.000000000","message":"this should go to the 3rd group","commit_id":"309ee108343fa25064551e90b4eea6a828e9bbf4"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"2fb065f841d92e0c269c4338ca1e6d3c3125fd5c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron.common import utils"},{"line_number":23,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":24,"context_line":"from neutron_lib.callbacks import events"},{"line_number":25,"context_line":"from neutron_lib.callbacks import registry"}],"source_content_type":"text/x-python","patch_set":6,"id":"3b2f310d_cb735dd8","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":32},"in_reply_to":"34f325d8_25e45085","updated":"2021-09-09 12:27:14.000000000","message":"Done","commit_id":"309ee108343fa25064551e90b4eea6a828e9bbf4"},{"author":{"_account_id":32667,"name":"Mamatisa Nurmatov","email":"nurmatov.mamatisa@huawei.com","username":"isabek"},"change_message_id":"3660e983f77a7cd758336d307faf891a90219527","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"280fc01e_355e3140","line":18,"updated":"2021-09-09 12:41:25.000000000","message":"Oleg means that \u0027import time\u0027 should be in first group:\n\nimport time\nfrom unittest import mock","commit_id":"070ff6445a7080e8276baf2923e84d18fd28b31e"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"eb7171efe9d4227440833d1c0869ec6b2c50e049","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from unittest import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"28632d47_de28058b","line":18,"in_reply_to":"280fc01e_355e3140","updated":"2021-09-09 13:05:49.000000000","message":"Done","commit_id":"070ff6445a7080e8276baf2923e84d18fd28b31e"},{"author":{"_account_id":32667,"name":"Mamatisa Nurmatov","email":"nurmatov.mamatisa@huawei.com","username":"isabek"},"change_message_id":"3660e983f77a7cd758336d307faf891a90219527","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":23,"context_line":"from neutron_lib.callbacks import events"}],"source_content_type":"text/x-python","patch_set":7,"id":"d1889128_d31a51a6","line":20,"updated":"2021-09-09 12:41:25.000000000","message":"And \u0027import testtools\u0027 in second group,\nAfter \u0027from neutron_lib.services.trunk import constants\u0027, same is before change","commit_id":"070ff6445a7080e8276baf2923e84d18fd28b31e"},{"author":{"_account_id":33145,"name":"Kevin Li","email":"liwenhai3@huawei.com","username":"liwenhai"},"change_message_id":"eb7171efe9d4227440833d1c0869ec6b2c50e049","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import time"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import testtools"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron_lib.api.definitions import portbindings"},{"line_number":23,"context_line":"from neutron_lib.callbacks import events"}],"source_content_type":"text/x-python","patch_set":7,"id":"578bd159_4b9ae622","line":20,"in_reply_to":"d1889128_d31a51a6","updated":"2021-09-09 13:05:49.000000000","message":"Done","commit_id":"070ff6445a7080e8276baf2923e84d18fd28b31e"}]}
