)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"232e3dcd7e75d07a6211e4c5b4ec15f2e642b9ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fda6778a_4f9a4bcb","updated":"2022-02-09 16:20:11.000000000","message":"Can we also update the proxy doc to include this:\nhttps://github.com/openstack/openstacksdk/blob/master/doc/source/user/proxies/load_balancer_v2.rst","commit_id":"89419c81eccd04cf1ffffb4a943e52a076620dbb"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"28add9da09280c87ff593890270cd048b4e29186","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cf253b82_1afcd4d8","updated":"2022-02-09 17:38:56.000000000","message":"LGTM\nIt\u0027s in the proxy docs now.","commit_id":"c9709e5fa1b3b8609365de91ece100ef9c323476"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"a8dcb2f4fad88e85919e6c299d37ce378672510b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8dffdbbd_acaef15f","updated":"2022-02-10 17:16:07.000000000","message":"Still LGTM","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"}],"openstack/load_balancer/v2/_proxy.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"c653b07773049d23b763ab1b668531e3dfb07250","unresolved":true,"context_lines":[{"line_number":132,"context_line":"        :param name_or_id: The name or ID of the load balancer."},{"line_number":133,"context_line":"        :param status: Desired status."},{"line_number":134,"context_line":"        :param failures: Statuses that would be interpreted as failures."},{"line_number":135,"context_line":"                         Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"                         checks. Default to 2."}],"source_content_type":"text/x-python","patch_set":3,"id":"d3e7946a_2da42602","line":135,"updated":"2022-02-09 17:58:38.000000000","message":"would you please fix indentation of the docstrings like in all other methods. We spent quite an effort to bring them all to single style","commit_id":"c9709e5fa1b3b8609365de91ece100ef9c323476"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"bd09a82b40942f00ff03afb95788a6a71da084c8","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        :param name_or_id: The name or ID of the load balancer."},{"line_number":133,"context_line":"        :param status: Desired status."},{"line_number":134,"context_line":"        :param failures: Statuses that would be interpreted as failures."},{"line_number":135,"context_line":"                         Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"                         checks. Default to 2."}],"source_content_type":"text/x-python","patch_set":3,"id":"0a226d38_efb10597","line":135,"in_reply_to":"d3e7946a_2da42602","updated":"2022-02-10 09:29:21.000000000","message":"Done","commit_id":"c9709e5fa1b3b8609365de91ece100ef9c323476"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8a7eb127c085e04dd7f68ed120ef677954c5c8cd","unresolved":true,"context_lines":[{"line_number":134,"context_line":"        :param failures: Statuses that would be interpreted as failures."},{"line_number":135,"context_line":"            Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."}],"source_content_type":"text/x-python","patch_set":4,"id":"dd0bb46a_71874450","line":137,"range":{"start_line":137,"start_character":51,"end_line":137,"end_character":60},"updated":"2022-08-30 11:48:37.000000000","message":"between","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"e618fd6060b346a3d7b1fa080191d9a4f33da12f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param failures: Statuses that would be interpreted as failures."},{"line_number":135,"context_line":"            Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."}],"source_content_type":"text/x-python","patch_set":4,"id":"f1a677d8_469c53d6","line":137,"range":{"start_line":137,"start_character":51,"end_line":137,"end_character":60},"in_reply_to":"3e59f8d3_d93be6b8","updated":"2022-08-30 12:22:31.000000000","message":"O.k., maybe time to do some cleanup patch, thx for fixing anyway.","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"e1a96933d90412039f6926d4d1a1c20bf62c4209","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param failures: Statuses that would be interpreted as failures."},{"line_number":135,"context_line":"            Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."}],"source_content_type":"text/x-python","patch_set":4,"id":"3e59f8d3_d93be6b8","line":137,"range":{"start_line":137,"start_character":51,"end_line":137,"end_character":60},"in_reply_to":"dd0bb46a_71874450","updated":"2022-08-30 12:09:35.000000000","message":"I agree 100%. My English isn\u0027t that bad normally... It seems this was copied from other places:\n\n$ git grep \"before to consecutive\" | wc -l\n13\n\nThe same seems true for the other comments.","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8a7eb127c085e04dd7f68ed120ef677954c5c8cd","unresolved":true,"context_lines":[{"line_number":135,"context_line":"            Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."}],"source_content_type":"text/x-python","patch_set":4,"id":"b7da63ca_e4ef6e79","line":138,"range":{"start_line":138,"start_character":20,"end_line":138,"end_character":33},"updated":"2022-08-30 11:48:37.000000000","message":"\"Defaults to 2.\" or \"Default is 2.\" would sound more natural to me.","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"e1a96933d90412039f6926d4d1a1c20bf62c4209","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            Default to [\u0027ERROR\u0027]."},{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."}],"source_content_type":"text/x-python","patch_set":4,"id":"a15771d1_f4da2e03","line":138,"range":{"start_line":138,"start_character":20,"end_line":138,"end_character":33},"in_reply_to":"b7da63ca_e4ef6e79","updated":"2022-08-30 12:09:35.000000000","message":"Done","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8a7eb127c085e04dd7f68ed120ef677954c5c8cd","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."},{"line_number":142,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceTimeout` if transition"}],"source_content_type":"text/x-python","patch_set":4,"id":"e4d91044_5362e25a","line":139,"range":{"start_line":139,"start_character":55,"end_line":139,"end_character":73},"updated":"2022-08-30 11:48:37.000000000","message":"\" ... to wait for the status to be reached.\"","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"e1a96933d90412039f6926d4d1a1c20bf62c4209","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        :type failures: :py:class:`list`"},{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."},{"line_number":142,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceTimeout` if transition"}],"source_content_type":"text/x-python","patch_set":4,"id":"50d01149_9c19fff0","line":139,"range":{"start_line":139,"start_character":55,"end_line":139,"end_character":73},"in_reply_to":"e4d91044_5362e25a","updated":"2022-08-30 12:09:35.000000000","message":"Done","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8a7eb127c085e04dd7f68ed120ef677954c5c8cd","unresolved":true,"context_lines":[{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."},{"line_number":142,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceTimeout` if transition"},{"line_number":143,"context_line":"            to the desired status failed to occur in specified seconds."}],"source_content_type":"text/x-python","patch_set":4,"id":"67cb22ea_db9acc8f","line":140,"updated":"2022-08-30 11:48:37.000000000","message":"\"Defaults to...\", see above.","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"e1a96933d90412039f6926d4d1a1c20bf62c4209","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        :param interval: Number of seconds to wait before to consecutive"},{"line_number":138,"context_line":"            checks. Default to 2."},{"line_number":139,"context_line":"        :param wait: Maximum number of seconds to wait before the change."},{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."},{"line_number":142,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceTimeout` if transition"},{"line_number":143,"context_line":"            to the desired status failed to occur in specified seconds."}],"source_content_type":"text/x-python","patch_set":4,"id":"3de67f51_d38044ed","line":140,"in_reply_to":"67cb22ea_db9acc8f","updated":"2022-08-30 12:09:35.000000000","message":"Done","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8a7eb127c085e04dd7f68ed120ef677954c5c8cd","unresolved":true,"context_lines":[{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."},{"line_number":142,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceTimeout` if transition"},{"line_number":143,"context_line":"            to the desired status failed to occur in specified seconds."},{"line_number":144,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceFailure` if the resource"},{"line_number":145,"context_line":"            has transited to one of the failure statuses."},{"line_number":146,"context_line":"        :raises: :class:`~AttributeError` if the resource does not have a"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ddc7bda_4bc54044","line":143,"range":{"start_line":143,"start_character":63,"end_line":143,"end_character":70},"updated":"2022-08-30 11:48:37.000000000","message":"Maybe use \"... specified wait time\" instead.","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"e1a96933d90412039f6926d4d1a1c20bf62c4209","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            Default to 300."},{"line_number":141,"context_line":"        :returns: The load balancer is returned on success."},{"line_number":142,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceTimeout` if transition"},{"line_number":143,"context_line":"            to the desired status failed to occur in specified seconds."},{"line_number":144,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceFailure` if the resource"},{"line_number":145,"context_line":"            has transited to one of the failure statuses."},{"line_number":146,"context_line":"        :raises: :class:`~AttributeError` if the resource does not have a"}],"source_content_type":"text/x-python","patch_set":4,"id":"9d48cd48_16c8ed6d","line":143,"range":{"start_line":143,"start_character":63,"end_line":143,"end_character":70},"in_reply_to":"3ddc7bda_4bc54044","updated":"2022-08-30 12:09:35.000000000","message":"Done","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8a7eb127c085e04dd7f68ed120ef677954c5c8cd","unresolved":true,"context_lines":[{"line_number":144,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceFailure` if the resource"},{"line_number":145,"context_line":"            has transited to one of the failure statuses."},{"line_number":146,"context_line":"        :raises: :class:`~AttributeError` if the resource does not have a"},{"line_number":147,"context_line":"            ``status`` attribute."},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        lb \u003d self._find(_lb.LoadBalancer, name_or_id, ignore_missing\u003dFalse)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"787c2927_79cf652c","line":147,"updated":"2022-08-30 11:48:37.000000000","message":"I\u0027m not sure that this could actually happen, are you sure that this is needed?","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"e1a96933d90412039f6926d4d1a1c20bf62c4209","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceFailure` if the resource"},{"line_number":145,"context_line":"            has transited to one of the failure statuses."},{"line_number":146,"context_line":"        :raises: :class:`~AttributeError` if the resource does not have a"},{"line_number":147,"context_line":"            ``status`` attribute."},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        lb \u003d self._find(_lb.LoadBalancer, name_or_id, ignore_missing\u003dFalse)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b2ee1de2_e87a6045","line":147,"in_reply_to":"787c2927_79cf652c","updated":"2022-08-30 12:09:35.000000000","message":"In resource.wait_for_status() this may happen. Indeed, the first thing that function does is:\n\ngetattr(resource, attribute)\n\nand the value of attribute defaults to \"status\".","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"e618fd6060b346a3d7b1fa080191d9a4f33da12f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        :raises: :class:`~openstack.exceptions.ResourceFailure` if the resource"},{"line_number":145,"context_line":"            has transited to one of the failure statuses."},{"line_number":146,"context_line":"        :raises: :class:`~AttributeError` if the resource does not have a"},{"line_number":147,"context_line":"            ``status`` attribute."},{"line_number":148,"context_line":"        \"\"\""},{"line_number":149,"context_line":"        lb \u003d self._find(_lb.LoadBalancer, name_or_id, ignore_missing\u003dFalse)"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7da5ffac_a0858b60","line":147,"in_reply_to":"b2ee1de2_e87a6045","updated":"2022-08-30 12:22:31.000000000","message":"We know that the resource is what has been returned by _find() and that should always be a valid LoadBalancer object that is known to have a status field. But I won\u0027t block the patch for this.","commit_id":"51cd857f8385c9507b8ae82e8c90e1435d9e3e79"}]}
