)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"c002a1d2e89d03e62302d47aaa6b93c37224535c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"32f0cb52_2b2fffcf","updated":"2022-04-15 06:28:48.000000000","message":"recheck","commit_id":"44a7a18c64d33de6bd43b02837ff0741c71d7715"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"4968591f7ee7a29a3f3a4a4bc4ae0380b0540203","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b4a7c187_14b779a1","updated":"2022-04-29 09:33:04.000000000","message":"recheck","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"43fbb2d2c63eb1008a9bc5bffc244052bcd35efe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"51ffe2ea_0e3fe088","updated":"2022-05-22 05:48:14.000000000","message":"recheck","commit_id":"2ae4e0ee67c27903d04dee3be9310e698da553f2"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"ff37d2dd879070b84acf9852a4bdd3b53d472c37","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f603a8b0_fd67c590","updated":"2022-05-23 06:17:53.000000000","message":"recheck","commit_id":"2ae4e0ee67c27903d04dee3be9310e698da553f2"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"4397cb74cd04d6c8e22e14982821380e628f7b14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ffb883f0_0d6a13ab","updated":"2022-05-30 00:29:03.000000000","message":"recheck","commit_id":"2ae4e0ee67c27903d04dee3be9310e698da553f2"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3f2cfb4e3822a5a101f4f968ca833a21775fbc8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2e6de3bb_1bc1d970","updated":"2022-06-07 12:41:59.000000000","message":"This looks good, just one nit and one minor problem.","commit_id":"d6ca30d2ab452ed65f940a9cdf2b503b1dbf707e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"288e92e0bdf40d9b12ca0dabd2948b15ab090230","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9650044d_2e27eb2f","updated":"2022-06-27 11:18:10.000000000","message":"Just one question about Ports listing:","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d36eb326b4cd57f56e1e511dc8e3ac81cf1ea0ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2d353840_8e1531f8","updated":"2022-06-14 02:12:45.000000000","message":"recheck","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8e71c0d98edb0755c3ab13e8c1bcfa28e0596e17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3cc6459a_51902348","updated":"2022-06-20 08:47:56.000000000","message":"recheck","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6c704e0c4b1a031cb21dbf0c3986a411ef6a0ca7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"beaf2542_fff62e03","updated":"2022-06-14 05:43:22.000000000","message":"recheck","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"afc724e81b63be3124fa266510b6320503f80cf5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"30df0b26_35211553","updated":"2022-07-07 10:21:10.000000000","message":"recheck","commit_id":"843062328821927d1b662bc1c82ba7146d4e6c85"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4119603c74608ef44c39424d5b3a31bba2133b26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"be9acb66_a5b7d1ed","updated":"2022-08-11 14:56:25.000000000","message":"Seems like the error on yoga is genuine, but definitely not caused by this patch. I\u0027ll look into this.","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"4abcb1ee491968baec0bab2200bc8bc1a2a54391","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"06d95d3a_2fc8fc6c","updated":"2022-08-16 13:30:05.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"ed27397f51a04030e38203d51faf263421ecb7bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"401504e0_78e8c5b8","updated":"2022-08-04 11:00:53.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8d5d32d35a830494ae74ba0aa3ef2806ff2d5068","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4700a237_50c13166","updated":"2022-08-06 09:52:21.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"bbe3019a4a26af88206e029f7a5516d752f8cbe7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"822ac1cf_fbe6bccd","updated":"2022-07-11 08:48:45.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"d710a13f4b1b044d93926aeecca31e0085c11207","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c7ee1a32_3c5af80b","updated":"2022-07-22 15:11:52.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"52d2e071b92790b1000a47770356fb66e2aab029","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cb6366f3_449138e5","updated":"2022-07-21 12:04:26.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d9b0b39ffa8642e4a2cb2440afc0d4b6db73b3e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"db697fab_7f9d54a3","updated":"2022-07-12 00:43:59.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"1cb8985b17563e88718270b3e1dcc23826f002bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e3a33ff7_41bc55d3","updated":"2022-07-08 05:40:07.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"394aa4477c53b374c530a4dc1e1242befca134ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e5b283a5_867e0e59","updated":"2022-08-06 00:54:45.000000000","message":"recheck","commit_id":"a0f138e761fe78bf24ca76fdfbd84544b1309b42"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"5ff45ef979b5b73ca48565c67d58d30f3092870a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"36548fbd_1ca3e4ac","updated":"2022-08-16 14:47:34.000000000","message":"I\u0027ve added Depends-On a patch that Neutron folks suggested might be a missing backport. Let\u0027s see.","commit_id":"4b0fceea709fe9fb23764174444b88087d262490"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d883b18b8a8e7489f34abfc0f10ac1586cbe75d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e3d66eb1_07a705ec","updated":"2022-08-17 07:38:00.000000000","message":"Looks like Depends-On helped.","commit_id":"4b0fceea709fe9fb23764174444b88087d262490"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a265b79741e29adc43327af94dd3e83e549a980d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7509e823_383d715b","updated":"2022-08-16 19:14:57.000000000","message":"recheck\n\nThat\u0027s a bit different error, let\u0027s try again.","commit_id":"4b0fceea709fe9fb23764174444b88087d262490"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"e901d6854dc4ac3ca5094233e38ce133af858236","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"affd8851_793af6f7","in_reply_to":"e3d66eb1_07a705ec","updated":"2022-08-18 01:24:20.000000000","message":"Thank you very much for your hard work.","commit_id":"4b0fceea709fe9fb23764174444b88087d262490"}],"kuryr_tempest_plugin/tests/scenario/base.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a27ad8f1f454551668b298d073d9c3c3d683db89","unresolved":true,"context_lines":[{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    @classmethod"},{"line_number":999,"context_line":"    def wait_for_kuryr_resource(cls, namespace, resource_kind, name,"},{"line_number":1000,"context_line":"                                wait_status\u003dTrue, status_key\u003dNone):"},{"line_number":1001,"context_line":"        start \u003d time.time()"},{"line_number":1002,"context_line":"        while time.time() - start \u003c consts.KURYR_RESOURCE_CHECK_TIMEOUT:"},{"line_number":1003,"context_line":"            time.sleep(5)"}],"source_content_type":"text/x-python","patch_set":3,"id":"828ae694_0c51ea87","line":1000,"range":{"start_line":1000,"start_character":32,"end_line":1000,"end_character":49},"updated":"2022-05-16 17:25:11.000000000","message":"It seems that everywhere this function is called it will wait for status, this probably can be removed.","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6bd1d788cc2c938ff7d9861ad66f8a6025d5c335","unresolved":false,"context_lines":[{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    @classmethod"},{"line_number":999,"context_line":"    def wait_for_kuryr_resource(cls, namespace, resource_kind, name,"},{"line_number":1000,"context_line":"                                wait_status\u003dTrue, status_key\u003dNone):"},{"line_number":1001,"context_line":"        start \u003d time.time()"},{"line_number":1002,"context_line":"        while time.time() - start \u003c consts.KURYR_RESOURCE_CHECK_TIMEOUT:"},{"line_number":1003,"context_line":"            time.sleep(5)"}],"source_content_type":"text/x-python","patch_set":3,"id":"75268d7e_a8489b07","line":1000,"range":{"start_line":1000,"start_character":32,"end_line":1000,"end_character":49},"in_reply_to":"828ae694_0c51ea87","updated":"2022-05-21 08:48:46.000000000","message":"Done","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a27ad8f1f454551668b298d073d9c3c3d683db89","unresolved":true,"context_lines":[{"line_number":1015,"context_line":"                return resource_crd"},{"line_number":1016,"context_line":"            except KeyError:"},{"line_number":1017,"context_line":"                continue"},{"line_number":1018,"context_line":"        raise lib_exc.TimeoutException()"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"    @classmethod"},{"line_number":1021,"context_line":"    def get_pod_list(cls, namespace\u003d\u0027default\u0027, label_selector\u003d\u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7e0425f2_6cc9f74e","line":1018,"range":{"start_line":1018,"start_character":14,"end_line":1018,"end_character":40},"updated":"2022-05-16 17:25:11.000000000","message":"can you add a message to the timeoutException?","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6bd1d788cc2c938ff7d9861ad66f8a6025d5c335","unresolved":false,"context_lines":[{"line_number":1015,"context_line":"                return resource_crd"},{"line_number":1016,"context_line":"            except KeyError:"},{"line_number":1017,"context_line":"                continue"},{"line_number":1018,"context_line":"        raise lib_exc.TimeoutException()"},{"line_number":1019,"context_line":""},{"line_number":1020,"context_line":"    @classmethod"},{"line_number":1021,"context_line":"    def get_pod_list(cls, namespace\u003d\u0027default\u0027, label_selector\u003d\u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"60dae5fc_7d620f22","line":1018,"range":{"start_line":1018,"start_character":14,"end_line":1018,"end_character":40},"in_reply_to":"7e0425f2_6cc9f74e","updated":"2022-05-21 08:48:46.000000000","message":"Done","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3f2cfb4e3822a5a101f4f968ca833a21775fbc8e","unresolved":true,"context_lines":[{"line_number":1011,"context_line":"                continue"},{"line_number":1012,"context_line":"            if not status_key:"},{"line_number":1013,"context_line":"                return resource_crd"},{"line_number":1014,"context_line":"            try:"},{"line_number":1015,"context_line":"                resource_crd[\u0027status\u0027][status_key]"},{"line_number":1016,"context_line":"                return resource_crd"},{"line_number":1017,"context_line":"            except KeyError:"},{"line_number":1018,"context_line":"                continue"},{"line_number":1019,"context_line":"        msg \u003d (\"Timed out waiting for %(resource_kind)s/%(resource_name)s \""},{"line_number":1020,"context_line":"               \"status %(status_key)s\" % {\"resource_kind\": resource_kind,"},{"line_number":1021,"context_line":"                                          \"resource_name\": name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"f4fca1f7_d2c7b590","line":1018,"range":{"start_line":1014,"start_character":0,"end_line":1018,"end_character":24},"updated":"2022-06-07 12:41:59.000000000","message":"You might also want to test if the key isn\u0027t empty.","commit_id":"d6ca30d2ab452ed65f940a9cdf2b503b1dbf707e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d00255a4eb62a902065ab5a2221ca2cb54b0e220","unresolved":false,"context_lines":[{"line_number":1011,"context_line":"                continue"},{"line_number":1012,"context_line":"            if not status_key:"},{"line_number":1013,"context_line":"                return resource_crd"},{"line_number":1014,"context_line":"            try:"},{"line_number":1015,"context_line":"                resource_crd[\u0027status\u0027][status_key]"},{"line_number":1016,"context_line":"                return resource_crd"},{"line_number":1017,"context_line":"            except KeyError:"},{"line_number":1018,"context_line":"                continue"},{"line_number":1019,"context_line":"        msg \u003d (\"Timed out waiting for %(resource_kind)s/%(resource_name)s \""},{"line_number":1020,"context_line":"               \"status %(status_key)s\" % {\"resource_kind\": resource_kind,"},{"line_number":1021,"context_line":"                                          \"resource_name\": name,"}],"source_content_type":"text/x-python","patch_set":6,"id":"73c5c63d_d1348569","line":1018,"range":{"start_line":1014,"start_character":0,"end_line":1018,"end_character":24},"in_reply_to":"f4fca1f7_d2c7b590","updated":"2022-06-11 03:09:27.000000000","message":"Done","commit_id":"d6ca30d2ab452ed65f940a9cdf2b503b1dbf707e"}],"kuryr_tempest_plugin/tests/scenario/test_annotation_project.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"6e831420c0fd51b6ac84dc7bce50d750d22e5407","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(TestAnnotationProjectScenario, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.project_id \u003d cls.os_primary.projects_client.project_id"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027edb10a26-4572-4565-80e4-af16af4186d3\u0027)"},{"line_number":42,"context_line":"    def test_create_namespace_and_pod(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1021276b_568056e3","line":39,"updated":"2022-04-25 11:37:54.000000000","message":"Is this the same as the default project ID?\nIt would be interesting to use a different project ID to exercise Kuryr creating resources for other projects.","commit_id":"44a7a18c64d33de6bd43b02837ff0741c71d7715"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"97e63ff561dad60e9ec530d60a3a2e2339ee1664","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(TestAnnotationProjectScenario, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.project_id \u003d cls.os_primary.projects_client.project_id"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027edb10a26-4572-4565-80e4-af16af4186d3\u0027)"},{"line_number":42,"context_line":"    def test_create_namespace_and_pod(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"f0b9413d_5a26e8e3","line":39,"in_reply_to":"1021276b_568056e3","updated":"2022-04-29 06:07:28.000000000","message":"Well, this project id is different between different test cases, It is generated during test case run.","commit_id":"44a7a18c64d33de6bd43b02837ff0741c71d7715"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d9c6d278c2b37d034914f388884605f8d1b04e80","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def resource_setup(cls):"},{"line_number":38,"context_line":"        super(TestAnnotationProjectScenario, cls).resource_setup()"},{"line_number":39,"context_line":"        cls.project_id \u003d cls.os_primary.projects_client.project_id"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @decorators.idempotent_id(\u0027edb10a26-4572-4565-80e4-af16af4186d3\u0027)"},{"line_number":42,"context_line":"    def test_create_namespace_and_pod(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"cd7871c7_5c2c4371","line":39,"in_reply_to":"f0b9413d_5a26e8e3","updated":"2022-05-14 02:37:09.000000000","message":"Done","commit_id":"44a7a18c64d33de6bd43b02837ff0741c71d7715"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a27ad8f1f454551668b298d073d9c3c3d683db89","unresolved":true,"context_lines":[{"line_number":18,"context_line":"from kuryr_tempest_plugin.tests.scenario import base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"CONF \u003d config.CONF"},{"line_number":21,"context_line":"K8s_ANNOTATION_PROJECT \u003d \u0027openstack.org/kuryr-project\u0027"},{"line_number":22,"context_line":"KURYR_PORT_CRD_PLURAL \u003d \u0027kuryrports\u0027"},{"line_number":23,"context_line":"KURYR_LOAD_BALANCER_CRD_PLURAL \u003d \u0027kuryrloadbalancers\u0027"},{"line_number":24,"context_line":"KURYR_NETWORK_POLICY_CRD_PLURAL \u003d \u0027kuryrnetworkpolicies\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestAnnotationProjectScenario(base.BaseKuryrScenarioTest):"}],"source_content_type":"text/x-python","patch_set":3,"id":"4ff260da_a24f9518","line":24,"range":{"start_line":21,"start_character":0,"end_line":24,"end_character":56},"updated":"2022-05-16 17:25:11.000000000","message":"can we add this constants to the const file?\n\nhttps://github.com/openstack/kuryr-tempest-plugin/blob/master/kuryr_tempest_plugin/tests/scenario/consts.py","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6bd1d788cc2c938ff7d9861ad66f8a6025d5c335","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from kuryr_tempest_plugin.tests.scenario import base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"CONF \u003d config.CONF"},{"line_number":21,"context_line":"K8s_ANNOTATION_PROJECT \u003d \u0027openstack.org/kuryr-project\u0027"},{"line_number":22,"context_line":"KURYR_PORT_CRD_PLURAL \u003d \u0027kuryrports\u0027"},{"line_number":23,"context_line":"KURYR_LOAD_BALANCER_CRD_PLURAL \u003d \u0027kuryrloadbalancers\u0027"},{"line_number":24,"context_line":"KURYR_NETWORK_POLICY_CRD_PLURAL \u003d \u0027kuryrnetworkpolicies\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class TestAnnotationProjectScenario(base.BaseKuryrScenarioTest):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7fd2548b_20f15eae","line":24,"range":{"start_line":21,"start_character":0,"end_line":24,"end_character":56},"in_reply_to":"4ff260da_a24f9518","updated":"2022-05-21 08:48:46.000000000","message":"Done","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a27ad8f1f454551668b298d073d9c3c3d683db89","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        annotations \u003d {K8s_ANNOTATION_PROJECT: self.project_id}"},{"line_number":44,"context_line":"        namespace_name, namespace \u003d self.create_namespace("},{"line_number":45,"context_line":"            annotations\u003dannotations)"},{"line_number":46,"context_line":"        self.namespaces.append(namespace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        existing_namespaces \u003d [ns.metadata.name"},{"line_number":49,"context_line":"                               for ns in self.list_namespaces().items]"}],"source_content_type":"text/x-python","patch_set":3,"id":"0005c266_ffe51308","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":41},"updated":"2022-05-16 17:25:11.000000000","message":"why is it being added to a list of namespaces? Is it to make sure the namespaces are cleaned up upon tests finishing?","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6bd1d788cc2c938ff7d9861ad66f8a6025d5c335","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        annotations \u003d {K8s_ANNOTATION_PROJECT: self.project_id}"},{"line_number":44,"context_line":"        namespace_name, namespace \u003d self.create_namespace("},{"line_number":45,"context_line":"            annotations\u003dannotations)"},{"line_number":46,"context_line":"        self.namespaces.append(namespace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        existing_namespaces \u003d [ns.metadata.name"},{"line_number":49,"context_line":"                               for ns in self.list_namespaces().items]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9d581bce_b1589080","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":41},"in_reply_to":"0005c266_ffe51308","updated":"2022-05-21 08:48:46.000000000","message":"\u003e why is it being added to a list of namespaces? Is it to make sure the namespaces are cleaned up upon tests finishing?\n\nYep, the namespace will auto clean up at https://github.com/openstack/kuryr-tempest-plugin/blob/master/kuryr_tempest_plugin/tests/scenario/base.py#L79","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"b90ecb1b7fc5c686e7d20435920130caf3ff2eba","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        annotations \u003d {K8s_ANNOTATION_PROJECT: self.project_id}"},{"line_number":44,"context_line":"        namespace_name, namespace \u003d self.create_namespace("},{"line_number":45,"context_line":"            annotations\u003dannotations)"},{"line_number":46,"context_line":"        self.namespaces.append(namespace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        existing_namespaces \u003d [ns.metadata.name"},{"line_number":49,"context_line":"                               for ns in self.list_namespaces().items]"}],"source_content_type":"text/x-python","patch_set":3,"id":"4d03a63c_07443b78","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":41},"in_reply_to":"9d581bce_b1589080","updated":"2022-06-03 09:59:55.000000000","message":"Ack","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a27ad8f1f454551668b298d073d9c3c3d683db89","unresolved":true,"context_lines":[{"line_number":45,"context_line":"            annotations\u003dannotations)"},{"line_number":46,"context_line":"        self.namespaces.append(namespace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        existing_namespaces \u003d [ns.metadata.name"},{"line_number":49,"context_line":"                               for ns in self.list_namespaces().items]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.assertIn(namespace_name, existing_namespaces)"},{"line_number":52,"context_line":"        pod_name, _ \u003d self.create_pod(labels\u003d{\"app\": \u0027pod-label\u0027},"},{"line_number":53,"context_line":"                                      namespace\u003dnamespace_name)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a35d9013_6e610bd5","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":58},"updated":"2022-05-16 17:25:11.000000000","message":"what is the reason for checking if the namespace was create after the namespace creation was triggered?","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d00255a4eb62a902065ab5a2221ca2cb54b0e220","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            annotations\u003dannotations)"},{"line_number":46,"context_line":"        self.namespaces.append(namespace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        existing_namespaces \u003d [ns.metadata.name"},{"line_number":49,"context_line":"                               for ns in self.list_namespaces().items]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.assertIn(namespace_name, existing_namespaces)"},{"line_number":52,"context_line":"        pod_name, _ \u003d self.create_pod(labels\u003d{\"app\": \u0027pod-label\u0027},"},{"line_number":53,"context_line":"                                      namespace\u003dnamespace_name)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ef9bb779_8fffe1e2","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":58},"in_reply_to":"64851096_6e6491bb","updated":"2022-06-11 03:09:27.000000000","message":"Done","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6bd1d788cc2c938ff7d9861ad66f8a6025d5c335","unresolved":true,"context_lines":[{"line_number":45,"context_line":"            annotations\u003dannotations)"},{"line_number":46,"context_line":"        self.namespaces.append(namespace)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        existing_namespaces \u003d [ns.metadata.name"},{"line_number":49,"context_line":"                               for ns in self.list_namespaces().items]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.assertIn(namespace_name, existing_namespaces)"},{"line_number":52,"context_line":"        pod_name, _ \u003d self.create_pod(labels\u003d{\"app\": \u0027pod-label\u0027},"},{"line_number":53,"context_line":"                                      namespace\u003dnamespace_name)"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"64851096_6e6491bb","line":51,"range":{"start_line":48,"start_character":0,"end_line":51,"end_character":58},"in_reply_to":"a35d9013_6e610bd5","updated":"2022-05-21 08:48:46.000000000","message":"I unintentional wrote this，maybe they are redundant codes.","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"a27ad8f1f454551668b298d073d9c3c3d683db89","unresolved":true,"context_lines":[{"line_number":79,"context_line":"            annotations\u003dannotations)"},{"line_number":80,"context_line":"        self.namespaces.append(namespace)"},{"line_number":81,"context_line":"        pod_labels \u003d {\"app\": \u0027pod-label\u0027}"},{"line_number":82,"context_line":"        self.create_pod(labels\u003dpod_labels, namespace\u003dnamespace_name)"},{"line_number":83,"context_line":"        service_name, _ \u003d self.create_service("},{"line_number":84,"context_line":"            pod_labels, namespace\u003dnamespace_name)"},{"line_number":85,"context_line":"        kuryr_loadbalancer_crd \u003d self.wait_for_kuryr_resource("},{"line_number":86,"context_line":"            namespace_name, KURYR_LOAD_BALANCER_CRD_PLURAL, service_name,"},{"line_number":87,"context_line":"            status_key\u003d\u0027loadbalancer\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"e5339bb3_d9abb92e","line":84,"range":{"start_line":82,"start_character":0,"end_line":84,"end_character":49},"updated":"2022-05-16 17:25:11.000000000","message":"you might want consider using this function instead \"create_setup_for_service_test\"[1]. It will handle all the Pod, Service and resources clean up\n\n[1]https://github.com/openstack/kuryr-tempest-plugin/blob/master/kuryr_tempest_plugin/tests/scenario/base.py#L759","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6bd1d788cc2c938ff7d9861ad66f8a6025d5c335","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            annotations\u003dannotations)"},{"line_number":80,"context_line":"        self.namespaces.append(namespace)"},{"line_number":81,"context_line":"        pod_labels \u003d {\"app\": \u0027pod-label\u0027}"},{"line_number":82,"context_line":"        self.create_pod(labels\u003dpod_labels, namespace\u003dnamespace_name)"},{"line_number":83,"context_line":"        service_name, _ \u003d self.create_service("},{"line_number":84,"context_line":"            pod_labels, namespace\u003dnamespace_name)"},{"line_number":85,"context_line":"        kuryr_loadbalancer_crd \u003d self.wait_for_kuryr_resource("},{"line_number":86,"context_line":"            namespace_name, KURYR_LOAD_BALANCER_CRD_PLURAL, service_name,"},{"line_number":87,"context_line":"            status_key\u003d\u0027loadbalancer\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"b506567d_b553387d","line":84,"range":{"start_line":82,"start_character":0,"end_line":84,"end_character":49},"in_reply_to":"e5339bb3_d9abb92e","updated":"2022-05-21 08:48:46.000000000","message":"Done","commit_id":"24c7be13acbb7c5cdf241b1467b8b3e4ec82e075"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"b90ecb1b7fc5c686e7d20435920130caf3ff2eba","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        namespace_name, namespace \u003d self.create_namespace("},{"line_number":72,"context_line":"            annotations\u003dannotations)"},{"line_number":73,"context_line":"        self.namespaces.append(namespace)"},{"line_number":74,"context_line":"        service_name, pods \u003d self.create_setup_for_service_test()"},{"line_number":75,"context_line":"        kuryr_loadbalancer_crd \u003d self.wait_for_kuryr_resource("},{"line_number":76,"context_line":"            namespace_name, consts.KURYR_LOAD_BALANCER_CRD_PLURAL,"},{"line_number":77,"context_line":"            service_name, status_key\u003d\u0027loadbalancer\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f3a3d7d_3b39bba7","line":74,"range":{"start_line":74,"start_character":29,"end_line":74,"end_character":65},"updated":"2022-06-03 09:59:55.000000000","message":"Shouldn\u0027t the Service be created in the Namespace created at line 71? We might want to pass the namespace name as parameter","commit_id":"2ae4e0ee67c27903d04dee3be9310e698da553f2"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d00255a4eb62a902065ab5a2221ca2cb54b0e220","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        namespace_name, namespace \u003d self.create_namespace("},{"line_number":72,"context_line":"            annotations\u003dannotations)"},{"line_number":73,"context_line":"        self.namespaces.append(namespace)"},{"line_number":74,"context_line":"        service_name, pods \u003d self.create_setup_for_service_test()"},{"line_number":75,"context_line":"        kuryr_loadbalancer_crd \u003d self.wait_for_kuryr_resource("},{"line_number":76,"context_line":"            namespace_name, consts.KURYR_LOAD_BALANCER_CRD_PLURAL,"},{"line_number":77,"context_line":"            service_name, status_key\u003d\u0027loadbalancer\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"740baf98_f2b5a6d1","line":74,"range":{"start_line":74,"start_character":29,"end_line":74,"end_character":65},"in_reply_to":"1f3a3d7d_3b39bba7","updated":"2022-06-11 03:09:27.000000000","message":"Done","commit_id":"2ae4e0ee67c27903d04dee3be9310e698da553f2"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"3f2cfb4e3822a5a101f4f968ca833a21775fbc8e","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        port_name \u003d namespace_name + \"/\" + pod_name"},{"line_number":62,"context_line":"        ports \u003d self.os_admin.ports_client.list_ports("},{"line_number":63,"context_line":"            **{\u0027project_id\u0027: self.project_id, \u0027name\u0027: port_name})"},{"line_number":64,"context_line":"        self.assertEqual(len(ports[\u0027ports\u0027]), 1)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_create_service(self):"},{"line_number":67,"context_line":"        if not CONF.kuryr_kubernetes.kuryrloadbalancers:"}],"source_content_type":"text/x-python","patch_set":6,"id":"4cfef5df_d3859d32","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":48},"updated":"2022-06-07 12:41:59.000000000","message":"This will probably fail if port pools are enabled, in which case creation of a single pod will trigger several ports creation. I\u0027d rather check if number of the ports is higher than 0.","commit_id":"d6ca30d2ab452ed65f940a9cdf2b503b1dbf707e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"d00255a4eb62a902065ab5a2221ca2cb54b0e220","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        port_name \u003d namespace_name + \"/\" + pod_name"},{"line_number":62,"context_line":"        ports \u003d self.os_admin.ports_client.list_ports("},{"line_number":63,"context_line":"            **{\u0027project_id\u0027: self.project_id, \u0027name\u0027: port_name})"},{"line_number":64,"context_line":"        self.assertEqual(len(ports[\u0027ports\u0027]), 1)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_create_service(self):"},{"line_number":67,"context_line":"        if not CONF.kuryr_kubernetes.kuryrloadbalancers:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3df598db_056c6ab6","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":48},"in_reply_to":"4cfef5df_d3859d32","updated":"2022-06-11 03:09:27.000000000","message":"Done","commit_id":"d6ca30d2ab452ed65f940a9cdf2b503b1dbf707e"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"288e92e0bdf40d9b12ca0dabd2948b15ab090230","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        port_name \u003d namespace_name + \"/\" + pod_name"},{"line_number":62,"context_line":"        ports \u003d self.os_admin.ports_client.list_ports("},{"line_number":63,"context_line":"            **{\u0027project_id\u0027: self.project_id, \u0027name\u0027: port_name})"},{"line_number":64,"context_line":"        self.assertTrue(len(ports[\u0027ports\u0027]) \u003e 0)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_create_service(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"a665c264_374034a2","line":63,"updated":"2022-06-27 11:18:10.000000000","message":"setting the Name to a Port is only allowed when port_debug config is enabled and by default is disabled https://github.com/openstack/kuryr-kubernetes/blob/master/kuryr_kubernetes/config.py#L148-L151.\n\nDo you see a named Port being created?","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6609224b2c74914d918a8b29c113e7687deeb0fd","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        port_name \u003d namespace_name + \"/\" + pod_name"},{"line_number":62,"context_line":"        ports \u003d self.os_admin.ports_client.list_ports("},{"line_number":63,"context_line":"            **{\u0027project_id\u0027: self.project_id, \u0027name\u0027: port_name})"},{"line_number":64,"context_line":"        self.assertTrue(len(ports[\u0027ports\u0027]) \u003e 0)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_create_service(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"d4eaefd2_0a449aa5","line":63,"in_reply_to":"a665c264_374034a2","updated":"2022-07-07 06:23:01.000000000","message":"When use devstack to deploy kuryr-kubernetes, the configuretion option will be set as True default.\n\nhttps://github.com/openstack/kuryr-kubernetes/blob/master/devstack/settings#L38","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"50252fff132b4bf03975c96a134918ed0f4730d3","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        port_name \u003d namespace_name + \"/\" + pod_name"},{"line_number":62,"context_line":"        ports \u003d self.os_admin.ports_client.list_ports("},{"line_number":63,"context_line":"            **{\u0027project_id\u0027: self.project_id, \u0027name\u0027: port_name})"},{"line_number":64,"context_line":"        self.assertTrue(len(ports[\u0027ports\u0027]) \u003e 0)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def test_create_service(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"8986d1e9_a9b0dc1e","line":63,"in_reply_to":"d4eaefd2_0a449aa5","updated":"2022-07-08 01:44:50.000000000","message":"Done","commit_id":"e69ba5501d8b2fbd89239f8b9a56073024b76e17"}]}
