)]}'
{"nova/scheduler/ironic_host_manager.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"06764a2f0598fac9a9fee7308e8166ee5c841004","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.free_ram_mb \u003d compute.free_ram_mb"},{"line_number":45,"context_line":"        self.total_usable_ram_mb \u003d compute.memory_mb"},{"line_number":46,"context_line":"        self.free_disk_mb \u003d (compute.free_disk_gb or 0) * 1024"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.stats \u003d compute.stats or {}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_de9076ef","line":46,"updated":"2016-12-22 10:06:41.000000000","message":"For those who wondered why replaced max(0,) with (... or 0):\n\nPython 3.5.2 (default, Sep 10 2016, 08:21:44) \n[GCC 5.4.0 20160609] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e max(0, None)\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nTypeError: unorderable types: NoneType() \u003e int()","commit_id":"d130c1a854d328a1bc7df7f707ddbb4aa7c8e416"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"6dd4d94cfc8faae4ad26ba58325408d08f95c22d","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.free_ram_mb \u003d compute.free_ram_mb"},{"line_number":45,"context_line":"        self.total_usable_ram_mb \u003d compute.memory_mb"},{"line_number":46,"context_line":"        self.free_disk_mb \u003d (compute.free_disk_gb or 0) * 1024"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.stats \u003d compute.stats or {}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_6a6dc097","line":46,"in_reply_to":"da4df55a_617514f8","updated":"2016-12-23 16:56:59.000000000","message":"I wonder, if it would be more consistent, if we set free_disk_mb to be None too, when free_disk_gb is None","commit_id":"d130c1a854d328a1bc7df7f707ddbb4aa7c8e416"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"1a62a66b51ff2abc75cdab23bf7eee3d8db27837","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.free_ram_mb \u003d compute.free_ram_mb"},{"line_number":45,"context_line":"        self.total_usable_ram_mb \u003d compute.memory_mb"},{"line_number":46,"context_line":"        self.free_disk_mb \u003d (compute.free_disk_gb or 0) * 1024"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.stats \u003d compute.stats or {}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_ab214eb6","line":46,"in_reply_to":"da4df55a_6a6dc097","updated":"2016-12-26 08:32:28.000000000","message":"By successful multiplying it was guaranteed that feree_disk_mb is int. If we set it to None here, we may receive TypeError when trying to perform any arithmetic operation with this variable in future.","commit_id":"d130c1a854d328a1bc7df7f707ddbb4aa7c8e416"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"069eb1db6e3fdb6e4e5a78bea5388d82441e0c95","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.free_ram_mb \u003d compute.free_ram_mb"},{"line_number":45,"context_line":"        self.total_usable_ram_mb \u003d compute.memory_mb"},{"line_number":46,"context_line":"        self.free_disk_mb \u003d (compute.free_disk_gb or 0) * 1024"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.stats \u003d compute.stats or {}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_8701da6c","line":46,"in_reply_to":"da4df55a_ab214eb6","updated":"2016-12-26 11:03:28.000000000","message":"Yeah, I get it. It\u0027s just that now all other attributes will be None, when not set, and  free_disk_mb is (for some reason) special and will default to 0 instead. Anyway, this fixes the problem, so I do not really insist.","commit_id":"d130c1a854d328a1bc7df7f707ddbb4aa7c8e416"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"45d66680d4da413f4d33d67d9ca0d44e86a399b7","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.free_ram_mb \u003d compute.free_ram_mb"},{"line_number":45,"context_line":"        self.total_usable_ram_mb \u003d compute.memory_mb"},{"line_number":46,"context_line":"        self.free_disk_mb \u003d (compute.free_disk_gb or 0) * 1024"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        self.stats \u003d compute.stats or {}"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da4df55a_617514f8","line":46,"in_reply_to":"da4df55a_de9076ef","updated":"2016-12-22 17:57:50.000000000","message":"Thanks :)","commit_id":"d130c1a854d328a1bc7df7f707ddbb4aa7c8e416"}]}
