)]}'
{"openstack_dashboard/api/nova.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e748eca9d930ffb7743dde820e1ed8043975a6b9","unresolved":false,"context_lines":[{"line_number":940,"context_line":""},{"line_number":941,"context_line":"@profiler.trace"},{"line_number":942,"context_line":"def server_group_delete(request, servergroup_id):"},{"line_number":943,"context_line":"    return novaclient(request).server_groups.delete(servergroup_id)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"@profiler.trace"}],"source_content_type":"text/x-python","patch_set":30,"id":"df7087c5_9e890f76","line":943,"range":{"start_line":943,"start_character":4,"end_line":943,"end_character":11},"updated":"2018-03-16 09:38:05.000000000","message":"we don\u0027t use the return value of server_group_delete.\nIt is better to ensure the return value as None, i.e. let\u0027s drop \u0027return\u0027 here (as we do for other nova wrapper functions)","commit_id":"747eaad2e3768a83fca59e605bc8f991e0b31cdc"},{"author":{"_account_id":24056,"name":"wei.ying","email":"wei.ying@easystack.cn","username":"wei.ying"},"change_message_id":"5bce9ec151bb29a89a882a4053128f8d4fed430b","unresolved":false,"context_lines":[{"line_number":940,"context_line":""},{"line_number":941,"context_line":"@profiler.trace"},{"line_number":942,"context_line":"def server_group_delete(request, servergroup_id):"},{"line_number":943,"context_line":"    return novaclient(request).server_groups.delete(servergroup_id)"},{"line_number":944,"context_line":""},{"line_number":945,"context_line":""},{"line_number":946,"context_line":"@profiler.trace"}],"source_content_type":"text/x-python","patch_set":30,"id":"df7087c5_18b42af1","line":943,"range":{"start_line":943,"start_character":4,"end_line":943,"end_character":11},"in_reply_to":"df7087c5_9e890f76","updated":"2018-03-16 16:25:24.000000000","message":"Done","commit_id":"747eaad2e3768a83fca59e605bc8f991e0b31cdc"}],"openstack_dashboard/static/app/core/openstack-service-api/nova.service.js":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"421bdf6e0ee1854d0b2692dcc56362c3ed0d5952","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    function deleteServerGroup(serverGroupId, suppressError) {"},{"line_number":374,"context_line":"      var promise \u003d apiService.delete(\u0027/api/nova/servergroups/\u0027 + serverGroupId + \u0027/\u0027);"},{"line_number":375,"context_line":"      return suppressError ? promise : promise.error(function() {"},{"line_number":376,"context_line":"        var msg \u003d gettext(\u0027Unable to delete the server group with id: %(id)s\u0027);"},{"line_number":377,"context_line":"        toastService.add(\u0027error\u0027, interpolate(msg, { id: serverGroupId }, true));"},{"line_number":378,"context_line":"      });"},{"line_number":379,"context_line":"    }"}],"source_content_type":"text/javascript","patch_set":24,"id":"5f93b717_c137ebfe","line":376,"range":{"start_line":376,"start_character":66,"end_line":376,"end_character":69},"updated":"2018-01-31 19:56:50.000000000","message":"I don\u0027t think a colon is needed. \"Unable to delete the server group with ID fc807cae-cf83-423a-9cec-ab9ec63be36a\" sounds natural.\n\n\u0027id\u0027 should be upper for consistency.","commit_id":"f2714ca73d0094d1f74e5aa5a9be0af2dcabd06f"},{"author":{"_account_id":24056,"name":"wei.ying","email":"wei.ying@easystack.cn","username":"wei.ying"},"change_message_id":"3fe2e766e44fc344dd853306346f3f69fedde53c","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    function deleteServerGroup(serverGroupId, suppressError) {"},{"line_number":374,"context_line":"      var promise \u003d apiService.delete(\u0027/api/nova/servergroups/\u0027 + serverGroupId + \u0027/\u0027);"},{"line_number":375,"context_line":"      return suppressError ? promise : promise.error(function() {"},{"line_number":376,"context_line":"        var msg \u003d gettext(\u0027Unable to delete the server group with id: %(id)s\u0027);"},{"line_number":377,"context_line":"        toastService.add(\u0027error\u0027, interpolate(msg, { id: serverGroupId }, true));"},{"line_number":378,"context_line":"      });"},{"line_number":379,"context_line":"    }"}],"source_content_type":"text/javascript","patch_set":24,"id":"3fa0c359_e2d9d456","line":376,"range":{"start_line":376,"start_character":66,"end_line":376,"end_character":69},"in_reply_to":"5f93b717_c137ebfe","updated":"2018-02-11 12:20:32.000000000","message":"Done. I\u0027m fine with this change.","commit_id":"f2714ca73d0094d1f74e5aa5a9be0af2dcabd06f"}],"openstack_dashboard/test/unit/api/rest/test_nova.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e748eca9d930ffb7743dde820e1ed8043975a6b9","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        nc.server_group_create.assert_called_once_with("},{"line_number":389,"context_line":"            request, **server_group_data)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @mock.patch.object(nova.api, \u0027nova\u0027)"},{"line_number":392,"context_line":"    def test_server_group_delete(self, nc):"},{"line_number":393,"context_line":"        request \u003d self.mock_rest_request()"},{"line_number":394,"context_line":"        nova.ServerGroup().delete(request, \"1\")"}],"source_content_type":"text/x-python","patch_set":30,"id":"df7087c5_3e5803f8","line":391,"range":{"start_line":391,"start_character":4,"end_line":391,"end_character":40},"updated":"2018-03-16 09:38:05.000000000","message":"Same comment as for server_group_create patch.","commit_id":"747eaad2e3768a83fca59e605bc8f991e0b31cdc"},{"author":{"_account_id":24056,"name":"wei.ying","email":"wei.ying@easystack.cn","username":"wei.ying"},"change_message_id":"5bce9ec151bb29a89a882a4053128f8d4fed430b","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        nc.server_group_create.assert_called_once_with("},{"line_number":389,"context_line":"            request, **server_group_data)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @mock.patch.object(nova.api, \u0027nova\u0027)"},{"line_number":392,"context_line":"    def test_server_group_delete(self, nc):"},{"line_number":393,"context_line":"        request \u003d self.mock_rest_request()"},{"line_number":394,"context_line":"        nova.ServerGroup().delete(request, \"1\")"}],"source_content_type":"text/x-python","patch_set":30,"id":"df7087c5_98191a23","line":391,"range":{"start_line":391,"start_character":4,"end_line":391,"end_character":40},"in_reply_to":"df7087c5_3e5803f8","updated":"2018-03-16 16:25:24.000000000","message":"Done","commit_id":"747eaad2e3768a83fca59e605bc8f991e0b31cdc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"30f9f368614a3cebc8c942b4cf5428716c59bfa3","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            request, **server_group_data)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @test.create_mocks({api.nova: [\u0027server_group_delete\u0027]})"},{"line_number":392,"context_line":"    def test_server_group_delete(self):"},{"line_number":393,"context_line":"        request \u003d self.mock_rest_request()"},{"line_number":394,"context_line":"        nova.ServerGroup().delete(request, \"1\")"},{"line_number":395,"context_line":"        self.mock_server_group_delete.assert_called_once_with(request, \"1\")"}],"source_content_type":"text/x-python","patch_set":32,"id":"df7087c5_515a6f83","line":392,"updated":"2018-03-18 07:58:14.000000000","message":"Could you set return_value?\n\n  self.mock_server_group_delete.return_value \u003d None\n\nBy default a mocked method returns mock.Mock object and it means any attribute access is allowed. It is better to return None so that we can detect unexpected access to the method.","commit_id":"29ce487a3c804ff846000aa58709206e1b97502e"},{"author":{"_account_id":24056,"name":"wei.ying","email":"wei.ying@easystack.cn","username":"wei.ying"},"change_message_id":"9f56166e7a7c85512ff67d7a66bd1b7539afd6e8","unresolved":false,"context_lines":[{"line_number":389,"context_line":"            request, **server_group_data)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    @test.create_mocks({api.nova: [\u0027server_group_delete\u0027]})"},{"line_number":392,"context_line":"    def test_server_group_delete(self):"},{"line_number":393,"context_line":"        request \u003d self.mock_rest_request()"},{"line_number":394,"context_line":"        nova.ServerGroup().delete(request, \"1\")"},{"line_number":395,"context_line":"        self.mock_server_group_delete.assert_called_once_with(request, \"1\")"}],"source_content_type":"text/x-python","patch_set":32,"id":"df7087c5_67d491be","line":392,"in_reply_to":"df7087c5_515a6f83","updated":"2018-03-18 14:45:13.000000000","message":"Done","commit_id":"29ce487a3c804ff846000aa58709206e1b97502e"}]}
