)]}'
{"openstack/_adapter.py":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"574df2700599e5d3e744918558e27b8148d5f1ba","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if run_async:"},{"line_number":147,"context_line":"            return ret"},{"line_number":148,"context_line":"        else:"},{"line_number":149,"context_line":"            ret.exception()"},{"line_number":150,"context_line":"            return ret.result()"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _version_matches(self, version):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_811240fc","line":149,"range":{"start_line":149,"start_character":12,"end_line":149,"end_character":27},"updated":"2018-09-19 16:18:02.000000000","message":"Nodepool runs into this exception:\n\n2018-09-19 16:16:33,034 ERROR nodepool.NodePool: Exception in main loop:\nTraceback (most recent call last):\n  File \"/opt/nodepool-source/nodepool/launcher.py\", line 989, in run\n    self.createMinReady()\n  File \"/opt/nodepool-source/nodepool/launcher.py\", line 962, in createMinReady\n    if need and self.labelImageIsAvailable(label):\n  File \"/opt/nodepool-source/nodepool/launcher.py\", line 914, in labelImageIsAvailable\n    if manager.labelReady(pool_label):\n  File \"/opt/nodepool-source/nodepool/driver/openstack/provider.py\", line 376, in labelReady\n    image \u003d self.getImage(label.cloud_image.external_name)\n  File \"/opt/nodepool-source/nodepool/driver/openstack/provider.py\", line 364, in getImage\n    return self._client.get_image(image_id)\n  File \"/src/openstacksdk/openstack/cloud/openstackcloud.py\", line 3189, in get_image\n    return _utils._get_entity(self, \u0027image\u0027, name_or_id, filters)\n  File \"/src/openstacksdk/openstack/cloud/_utils.py\", line 204, in _get_entity\n    entities \u003d search(name_or_id, filters, **kwargs)\n  File \"/src/openstacksdk/openstack/cloud/openstackcloud.py\", line 1604, in search_images\n    images \u003d self.list_images()\n  File \"/src/openstacksdk/openstack/cloud/openstackcloud.py\", line 2209, in list_images\n    response \u003d self._image_client.get(endpoint, params\u003dparams)\n  File \"/usr/lib/python3.6/site-packages/keystoneauth1/adapter.py\", line 351, in get\n    return self.request(url, \u0027GET\u0027, **kwargs)\n  File \"/src/openstacksdk/openstack/_adapter.py\", line 165, in request\n    url, method, run_async\u003drun_async, **kwargs)\n  File \"/src/openstacksdk/openstack/_adapter.py\", line 149, in request\n    ret.exception()\nAttributeError: \u0027Response\u0027 object has no attribute \u0027exception\u0027","commit_id":"015f85013c40cfd10ea96ec57fa28602e516f339"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"4d7d83c97594813016c6710b644e49bef3283345","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if run_async:"},{"line_number":147,"context_line":"            return ret"},{"line_number":148,"context_line":"        else:"},{"line_number":149,"context_line":"            ret.exception()"},{"line_number":150,"context_line":"            return ret.result()"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _version_matches(self, version):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_4244f572","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":27},"updated":"2018-09-21 16:06:49.000000000","message":"Unnecessary call.","commit_id":"40bb737528f51e6d8d90713038449496b51d53b8"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a7f5c084670ce722061b5cc9190481edc6a170db","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if run_async:"},{"line_number":147,"context_line":"            return ret"},{"line_number":148,"context_line":"        else:"},{"line_number":149,"context_line":"            ret.exception()"},{"line_number":150,"context_line":"            return ret.result()"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _version_matches(self, version):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_0e629fda","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":27},"in_reply_to":"3f79a3b5_4244f572","updated":"2018-09-22 11:39:16.000000000","message":"Done","commit_id":"40bb737528f51e6d8d90713038449496b51d53b8"}],"openstack/task_manager.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"4d7d83c97594813016c6710b644e49bef3283345","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        task \u003d Task(main\u003dmethod, name\u003dname, *args, **kwargs)"},{"line_number":149,"context_line":"        return self.submit_task(task)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def submit_function_async(self, method, name\u003dNone, *args, **kwargs):"},{"line_number":152,"context_line":"        \"\"\" Allows submitting an arbitrary method for async work scheduling."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :param method: Callable to run in the TaskManager."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_c276c5d5","side":"PARENT","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":29},"updated":"2018-09-21 16:06:49.000000000","message":"We probably don\u0027t want to completely delete this from the API in case *someone* is using it. It can just call submit_function().","commit_id":"db51d1630947e536b8983dac58d16fcb609b2d28"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"a7f5c084670ce722061b5cc9190481edc6a170db","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        task \u003d Task(main\u003dmethod, name\u003dname, *args, **kwargs)"},{"line_number":149,"context_line":"        return self.submit_task(task)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def submit_function_async(self, method, name\u003dNone, *args, **kwargs):"},{"line_number":152,"context_line":"        \"\"\" Allows submitting an arbitrary method for async work scheduling."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :param method: Callable to run in the TaskManager."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_ce5b4720","side":"PARENT","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":29},"in_reply_to":"3f79a3b5_c276c5d5","updated":"2018-09-22 11:39:16.000000000","message":"I was going to argue that nodepool is the only consumer using task manager - but honestly, you\u0027re right- it\u0027s not that hard to keep it.","commit_id":"db51d1630947e536b8983dac58d16fcb609b2d28"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1d3707145ff505bff6eda549d686f816760529a1","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                *args, **kwargs)"},{"line_number":152,"context_line":"        return self.submit_task(task)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def submit_function_async(self, method, name\u003dNone, *args, **kwargs):"},{"line_number":155,"context_line":"        \"\"\" Allows submitting an arbitrary method for async work scheduling."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        :param method: Callable to run in the TaskManager."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_75df3b38","line":154,"updated":"2018-09-25 08:58:05.000000000","message":"nit: deprecate this?","commit_id":"1e46a950eba5986baaf785287e3d8e8a14cbb3c8"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c3b46a1a0274d312633863e449b1106b8f041cc6","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                *args, **kwargs)"},{"line_number":152,"context_line":"        return self.submit_task(task)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def submit_function_async(self, method, name\u003dNone, *args, **kwargs):"},{"line_number":155,"context_line":"        \"\"\" Allows submitting an arbitrary method for async work scheduling."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        :param method: Callable to run in the TaskManager."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_3347947a","line":154,"in_reply_to":"3f79a3b5_75df3b38","updated":"2018-09-25 16:08:44.000000000","message":"Just wait til you see the last patch in the stack :)","commit_id":"1e46a950eba5986baaf785287e3d8e8a14cbb3c8"}]}
