)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"6b8c3c6b43b58e68b31294715018da038acbcefe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"87fd2166_50c292f1","updated":"2021-12-20 09:25:29.000000000","message":"Gate errors complaining about V1EndpointPort are most likely related to new kubernetes client version released and unrelated to this patch.\n\nThis error is however related:\n\n Traceback (most recent call last):\n   File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/kuryr_tempest_plugin/tests/scenario/test_service.py\", line 254, in test_deployment_scale\n     self.scale_deployment(5, deployment_name)\n   File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/kuryr_tempest_plugin/tests/scenario/base.py\", line 441, in scale_deployment\n     self.wait_for_status(180, 15, self.get_pods_ready_num,\n   File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/kuryr_tempest_plugin/tests/scenario/base.py\", line 1578, in wait_for_status\n     result \u003d func(*kargs, **kwargs)\n   File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/kuryr_tempest_plugin/tests/scenario/base.py\", line 290, in get_pods_ready_num\n     ready_pods \u003d sum([cls.get_readiness_state(p) for p in pods])\n TypeError: unsupported operand type(s) for +: \u0027int\u0027 and \u0027NoneType\u0027","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":4727,"name":"Itzik Brown","email":"itzikb@redhat.com","username":"itzikb1"},"change_message_id":"29438353bc6f3f76cda9ed1a6f9b075610665c97","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9905a34e_535d0b4c","updated":"2021-12-20 07:44:44.000000000","message":"Nice catch!","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"aabc9bc88f359bcf00b8c912ccffd44805e144b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c7fe9322_e6ae9425","updated":"2021-12-20 09:53:36.000000000","message":"https://review.opendev.org/c/openstack/kuryr-tempest-plugin/+/822298 might help with V1EndpointPort issues, let\u0027s see.","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"4bd71bf6764d7aca4dd305717e59a860a94f4f86","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fff07a27_394a4592","in_reply_to":"87fd2166_50c292f1","updated":"2021-12-20 11:27:58.000000000","message":"Thanks Michal for your comments, I wasn\u0027t catching this in my environment.","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"a5934df398392f0e9c331ecd57fbfc4025324a4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ba1fbee5_46c63773","in_reply_to":"fff07a27_394a4592","updated":"2021-12-22 11:00:45.000000000","message":"Done","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"38efb170d3cea9c10011303a3de1c311148cde2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"aa74cc69_f219b3b0","updated":"2021-12-20 12:23:23.000000000","message":"Alright, this is fine, minor suggestion inline, do what you think.","commit_id":"030d7b85ad89289a9711e0e414f0a21093cfeb22"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"4bd71bf6764d7aca4dd305717e59a860a94f4f86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"561382ac_da94baa9","updated":"2021-12-20 11:27:58.000000000","message":"Thanks Michal for your comments, I wasn\u0027t catching that issue w","commit_id":"030d7b85ad89289a9711e0e414f0a21093cfeb22"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d88b76f6be76daace31ec90778def34d5ebb19f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a65783cf_9f370949","updated":"2021-12-20 17:02:41.000000000","message":"recheck","commit_id":"030d7b85ad89289a9711e0e414f0a21093cfeb22"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"1044b94476b307c62d284793fb609a8d7d388b21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4771255f_56c428c7","updated":"2021-12-23 15:02:16.000000000","message":"recheck","commit_id":"8dbe6be09c5f5bd3e2872db1088cd628ba70939c"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"47d3ce45fe0452c3a08284088c10aacf866de8cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5791bcab_7798fbe6","updated":"2021-12-24 09:48:48.000000000","message":"recheck","commit_id":"8dbe6be09c5f5bd3e2872db1088cd628ba70939c"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"1316133e06a72b79726a641e65bf2b0c9d77bd77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6258585a_c8e25e32","updated":"2021-12-23 08:02:48.000000000","message":"recheck","commit_id":"8dbe6be09c5f5bd3e2872db1088cd628ba70939c"}],"kuryr_tempest_plugin/tests/scenario/base.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d31b5fb77a93a608caf30a19b37fdddda38da525","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        if container_name:"},{"line_number":277,"context_line":"            for container in pod.status.container_statuses:"},{"line_number":278,"context_line":"                if container.name \u003d\u003d container_name:"},{"line_number":279,"context_line":"                    return container.ready"},{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            for condition in pod.status.conditions:"},{"line_number":282,"context_line":"                if condition.type \u003d\u003d \u0027Ready\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"4932bc02_0321ed2f","line":279,"range":{"start_line":279,"start_character":19,"end_line":279,"end_character":42},"updated":"2021-12-20 09:04:03.000000000","message":"Same goes here, doesn\u0027t it?","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"38efb170d3cea9c10011303a3de1c311148cde2c","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        if container_name:"},{"line_number":277,"context_line":"            for container in pod.status.container_statuses:"},{"line_number":278,"context_line":"                if container.name \u003d\u003d container_name:"},{"line_number":279,"context_line":"                    return container.ready"},{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            for condition in pod.status.conditions:"},{"line_number":282,"context_line":"                if condition.type \u003d\u003d \u0027Ready\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"42c449e1_6f83b4ea","line":279,"range":{"start_line":279,"start_character":19,"end_line":279,"end_character":42},"in_reply_to":"0f21f865_e8337f3a","updated":"2021-12-20 12:23:23.000000000","message":"Oh, true, cool!","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"a5934df398392f0e9c331ecd57fbfc4025324a4f","unresolved":false,"context_lines":[{"line_number":276,"context_line":"        if container_name:"},{"line_number":277,"context_line":"            for container in pod.status.container_statuses:"},{"line_number":278,"context_line":"                if container.name \u003d\u003d container_name:"},{"line_number":279,"context_line":"                    return container.ready"},{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            for condition in pod.status.conditions:"},{"line_number":282,"context_line":"                if condition.type \u003d\u003d \u0027Ready\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"65f6841e_04f4f0db","line":279,"range":{"start_line":279,"start_character":19,"end_line":279,"end_character":42},"in_reply_to":"42c449e1_6f83b4ea","updated":"2021-12-22 11:00:45.000000000","message":"Done","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"4bd71bf6764d7aca4dd305717e59a860a94f4f86","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        if container_name:"},{"line_number":277,"context_line":"            for container in pod.status.container_statuses:"},{"line_number":278,"context_line":"                if container.name \u003d\u003d container_name:"},{"line_number":279,"context_line":"                    return container.ready"},{"line_number":280,"context_line":"        else:"},{"line_number":281,"context_line":"            for condition in pod.status.conditions:"},{"line_number":282,"context_line":"                if condition.type \u003d\u003d \u0027Ready\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"0f21f865_e8337f3a","line":279,"range":{"start_line":279,"start_character":19,"end_line":279,"end_character":42},"in_reply_to":"4932bc02_0321ed2f","updated":"2021-12-20 11:27:58.000000000","message":"container.ready is already a boolean while condition.status is a string","commit_id":"cb8259173ce7d91a5972c599b324e1ec3bca8e92"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"38efb170d3cea9c10011303a3de1c311148cde2c","unresolved":true,"context_lines":[{"line_number":288,"context_line":"        pods \u003d cls.get_pod_name_list(namespace\u003dnamespace,"},{"line_number":289,"context_line":"                                     label_selector\u003dlabel)"},{"line_number":290,"context_line":"        ready_pods \u003d"},{"line_number":291,"context_line":"            sum(filter(None, [cls.get_readiness_state(p) for p in pods]))"},{"line_number":292,"context_line":"        return (num_pods \u003d\u003d ready_pods)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"7e377850_bcda4a77","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":53},"updated":"2021-12-20 12:23:23.000000000","message":"You could just make sure get_readiness_state() returns False instead of None (in line 274 bug also in case no return in the loops happens).","commit_id":"030d7b85ad89289a9711e0e414f0a21093cfeb22"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"519c491379bd7b9ec8cbd3d3f93cb210464b6c86","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        pods \u003d cls.get_pod_name_list(namespace\u003dnamespace,"},{"line_number":289,"context_line":"                                     label_selector\u003dlabel)"},{"line_number":290,"context_line":"        ready_pods \u003d"},{"line_number":291,"context_line":"            sum(filter(None, [cls.get_readiness_state(p) for p in pods]))"},{"line_number":292,"context_line":"        return (num_pods \u003d\u003d ready_pods)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"ae71019b_ab4797ff","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":53},"in_reply_to":"7e377850_bcda4a77","updated":"2021-12-20 18:26:32.000000000","message":"Done","commit_id":"030d7b85ad89289a9711e0e414f0a21093cfeb22"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"9f8073fb989be1a6fa582e7a6edd028370883bb1","unresolved":true,"context_lines":[{"line_number":439,"context_line":"        self.k8s_client.AppsV1Api().patch_namespaced_deployment("},{"line_number":440,"context_line":"            deployment, namespace,"},{"line_number":441,"context_line":"            {\u0027spec\u0027: {\u0027replicas\u0027: replicas}})"},{"line_number":442,"context_line":"        self.wait_for_status(240, 15, self.get_pods_ready_num,"},{"line_number":443,"context_line":"                             namespace\u003dnamespace, label\u003dlabel,"},{"line_number":444,"context_line":"                             num_pods\u003dreplicas)"},{"line_number":445,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"c1479e8d_a2cbc487","line":442,"range":{"start_line":442,"start_character":8,"end_line":442,"end_character":62},"updated":"2021-12-22 07:44:03.000000000","message":"perhaps worth to leave a note here saying previous number (180) was not enough on the gates","commit_id":"3d79470f23b51d37c26e2e6178bf402c946cbde1"},{"author":{"_account_id":27086,"name":"Jon Uriarte","email":"juriarte@redhat.com","username":"juriarte"},"change_message_id":"a5934df398392f0e9c331ecd57fbfc4025324a4f","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        self.k8s_client.AppsV1Api().patch_namespaced_deployment("},{"line_number":440,"context_line":"            deployment, namespace,"},{"line_number":441,"context_line":"            {\u0027spec\u0027: {\u0027replicas\u0027: replicas}})"},{"line_number":442,"context_line":"        self.wait_for_status(240, 15, self.get_pods_ready_num,"},{"line_number":443,"context_line":"                             namespace\u003dnamespace, label\u003dlabel,"},{"line_number":444,"context_line":"                             num_pods\u003dreplicas)"},{"line_number":445,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bc868496_5bf93450","line":442,"range":{"start_line":442,"start_character":8,"end_line":442,"end_character":62},"in_reply_to":"c1479e8d_a2cbc487","updated":"2021-12-22 11:00:45.000000000","message":"Done","commit_id":"3d79470f23b51d37c26e2e6178bf402c946cbde1"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ec61059bb5a2062aac99b027cf36dace9185f15a","unresolved":true,"context_lines":[{"line_number":440,"context_line":"        # NOTE(juriarte): Wait timeout increased from 180 to 300 in order to"},{"line_number":441,"context_line":"        # give the pods time to transition to ready status in the gates (and"},{"line_number":442,"context_line":"        # slow environments)."},{"line_number":443,"context_line":"        self.wait_for_status(300, 15, self.get_pods_ready_num,"},{"line_number":444,"context_line":"                             namespace\u003dnamespace, label\u003dlabel,"},{"line_number":445,"context_line":"                             num_pods\u003dreplicas)"},{"line_number":446,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"a44464fb_e412e3fc","line":443,"range":{"start_line":443,"start_character":29,"end_line":443,"end_character":32},"updated":"2021-12-24 09:57:21.000000000","message":"5 minutes is long, but it\u0027s the K8s e2e test golden standard, so I\u0027m not opposed to this.","commit_id":"8dbe6be09c5f5bd3e2872db1088cd628ba70939c"}]}
