)]}'
{"openstack_dashboard/dashboards/admin/aggregates/forms.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"03d8369e29a631faf4fcbb0d370a333fd7a69d42","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        except Exception:"},{"line_number":44,"context_line":"            exceptions.handle(request,"},{"line_number":45,"context_line":"                              _(\u0027The new availability zone can\\\u0027t be empty\u0027))"},{"line_number":46,"context_line":"            return False"},{"line_number":47,"context_line":"        try:"},{"line_number":48,"context_line":"            api.nova.aggregate_update(request, id, aggregate)"},{"line_number":49,"context_line":"            message \u003d (_(\u0027Successfully updated aggregate: \"%s.\"\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_c7c17182","line":46,"updated":"2019-05-23 09:06:20.000000000","message":"The logic in L.39-46 looks a bit tricky. It is not straight-forward.\n\nWe first check if AZ becomes empty and should exit when the condition is not satisfied. Catching Exception looks too much.\n\nIt is a nice chance to revisit the logic.","commit_id":"605df2e6b77f4deba810353a61bfea346a48a5c4"}],"openstack_dashboard/dashboards/admin/aggregates/tests.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bc8561110d04c1abfc17841503c6377f5ca2e010","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def test_update_aggregate_fails_missing_name_field(self):"},{"line_number":270,"context_line":"        aggregate \u003d self.aggregates.first()"},{"line_number":271,"context_line":"        print(aggregate)"},{"line_number":272,"context_line":"        form_data \u003d {\u0027id\u0027: aggregate.id,"},{"line_number":273,"context_line":"                     \u0027name\u0027: \u0027\u0027,"},{"line_number":274,"context_line":"                     \u0027availability_zone\u0027: aggregate.availability_zone}"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_fb965e3e","line":271,"range":{"start_line":271,"start_character":0,"end_line":271,"end_character":24},"updated":"2019-05-27 12:09:36.000000000","message":"Please, remote \u0027print\u0027 function calls from the tests","commit_id":"1c349cc97cb1a40075d7046cc3dff69e0b03b3fe"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"6b80401bfa5348914fd1e3c347a879ffbba1b907","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def test_update_aggregate_fails_missing_name_field(self):"},{"line_number":270,"context_line":"        aggregate \u003d self.aggregates.first()"},{"line_number":271,"context_line":"        print(aggregate)"},{"line_number":272,"context_line":"        form_data \u003d {\u0027id\u0027: aggregate.id,"},{"line_number":273,"context_line":"                     \u0027name\u0027: \u0027\u0027,"},{"line_number":274,"context_line":"                     \u0027availability_zone\u0027: aggregate.availability_zone}"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_0e7f6b15","line":271,"range":{"start_line":271,"start_character":0,"end_line":271,"end_character":24},"in_reply_to":"bfb3d3c7_fb965e3e","updated":"2019-05-28 04:41:35.000000000","message":"woops... I forgot to remove it.","commit_id":"1c349cc97cb1a40075d7046cc3dff69e0b03b3fe"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"bc8561110d04c1abfc17841503c6377f5ca2e010","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    def test_update_aggregate_fails_missing_az_field(self):"},{"line_number":280,"context_line":"        aggregate \u003d self.aggregates.first()"},{"line_number":281,"context_line":"        print(aggregate)"},{"line_number":282,"context_line":"        form_data \u003d {\u0027id\u0027: aggregate.id,"},{"line_number":283,"context_line":"                     \u0027name\u0027: aggregate.name,"},{"line_number":284,"context_line":"                     \u0027availability_zone\u0027: \u0027\u0027}"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_1b9c925b","line":281,"updated":"2019-05-27 12:09:36.000000000","message":"The same as above","commit_id":"1c349cc97cb1a40075d7046cc3dff69e0b03b3fe"}]}
