)]}'
{"nova/api/openstack/compute/plugins/v3/suspend_server.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d7691f16816003121dcecb653a51d021e135d9fb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        try:"},{"line_number":41,"context_line":"            server \u003d common.get_instance(self.compute_api, context, id,"},{"line_number":42,"context_line":"                                         want_objects\u003dTrue)"},{"line_number":43,"context_line":"            authorize(context, target\u003dserver, action\u003d\u0027suspend\u0027)"},{"line_number":44,"context_line":"            self.compute_api.suspend(context, server)"},{"line_number":45,"context_line":"        except exception.InstanceIsLocked as e:"},{"line_number":46,"context_line":"            raise exc.HTTPConflict(explanation\u003de.format_message())"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_af72ebe0","line":43,"updated":"2015-01-29 06:58:01.000000000","message":"We don\u0027t need to pass target to authrize() now, please see the comment on https://review.openstack.org/#/c/143393/","commit_id":"fd77c71398e7ce561bfc89a6f0740b5ddc580865"}],"nova/tests/unit/api/openstack/compute/contrib/test_suspend_server.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"08ef91393d4df3a6854e44c1d9bf6fe61f408120","unresolved":false,"context_lines":[{"line_number":74,"context_line":"            fake_auth_context\u003dself.context)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"class SuspendServerPolicyEnforcement(test.NoDBTestCase,"},{"line_number":78,"context_line":"                                     common.TestPolicyEnforcementBase):"},{"line_number":79,"context_line":"    def setUp(self):"},{"line_number":80,"context_line":"        super(SuspendServerPolicyEnforcement, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_81d733ed","line":77,"updated":"2015-01-16 16:16:00.000000000","message":"I think we need V21 suffix to indicate it\u0027s a V21 only check\nit\u0027s consistent to previous classes","commit_id":"fd77c71398e7ce561bfc89a6f0740b5ddc580865"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"08ef91393d4df3a6854e44c1d9bf6fe61f408120","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        \"compute_extension:v3:os-suspend-server:suspend\", \"project:non_fake\")"},{"line_number":85,"context_line":"    def test_suspend_policy_failed(self):"},{"line_number":86,"context_line":"        self._call_instance_action(self.controller._suspend,"},{"line_number":87,"context_line":"                                   \u0027suspend\u0027, body_args\u003dNone)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @common.TestPolicyEnforcementBase.policy_enforcement_failed_test("},{"line_number":90,"context_line":"        \"compute_extension:v3:os-suspend-server:resume\", \"project:non_fake\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_21359f44","line":87,"updated":"2015-01-16 16:16:00.000000000","message":"do we really need body_args\u003dNone? \nit\u0027s default value","commit_id":"fd77c71398e7ce561bfc89a6f0740b5ddc580865"},{"author":{"_account_id":13663,"name":"heijlong","email":"jhei@redhat.com","username":"parklong"},"change_message_id":"6b48264fa2eacd948f392bc24bea08a40da9c384","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        exc \u003d self.assertRaises("},{"line_number":88,"context_line":"            exception.PolicyNotAuthorized,"},{"line_number":89,"context_line":"            self.controller._suspend, self.req, fakes.FAKE_UUID,"},{"line_number":90,"context_line":"            body\u003d{\u0027pause\u0027: {}})"},{"line_number":91,"context_line":"        self.assertEqual("},{"line_number":92,"context_line":"            \"Policy doesn\u0027t allow %s to be performed.\" % rule_name,"},{"line_number":93,"context_line":"            exc.format_message())"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_8ab12249","line":90,"updated":"2015-02-12 08:22:02.000000000","message":"suspend instead of pause?","commit_id":"2007e3040e9a7ffb971d5b45505ea4f8d8b2a0ca"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"9558dd290f52c7297cae5043a3f3e3ed631d0d33","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        exc \u003d self.assertRaises("},{"line_number":88,"context_line":"            exception.PolicyNotAuthorized,"},{"line_number":89,"context_line":"            self.controller._suspend, self.req, fakes.FAKE_UUID,"},{"line_number":90,"context_line":"            body\u003d{\u0027pause\u0027: {}})"},{"line_number":91,"context_line":"        self.assertEqual("},{"line_number":92,"context_line":"            \"Policy doesn\u0027t allow %s to be performed.\" % rule_name,"},{"line_number":93,"context_line":"            exc.format_message())"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_4a9e4a08","line":90,"in_reply_to":"da86d52c_8ab12249","updated":"2015-02-12 08:42:51.000000000","message":"good catch!","commit_id":"2007e3040e9a7ffb971d5b45505ea4f8d8b2a0ca"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"8c91f10b2166f47df75214a7cc7a398c61422956","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            body\u003d{\u0027resume\u0027: {}})"},{"line_number":102,"context_line":"        self.assertEqual("},{"line_number":103,"context_line":"            \"Policy doesn\u0027t allow %s to be performed.\" % rule_name,"},{"line_number":104,"context_line":"            exc.format_message())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_a7b59632","line":104,"updated":"2015-02-24 04:53:00.000000000","message":"reduplicated codes to the above test case.\n\nI prefer your this test case. \n\nhttps://review.openstack.org/#/c/147386/5/nova/tests/unit/api/openstack/compute/contrib/test_server_password.py","commit_id":"c145dc7976eb9b8d6f4b3fd19aa312a516f52095"}]}
