)]}'
{"etc/nova/policy.json":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"0c462487c3fa3381cd1035856e8776b585509ccb","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    \"compute_extension:v3:os-remote-consoles\": \"\","},{"line_number":85,"context_line":"    \"compute_extension:v3:os-remote-consoles:discoverable\": \"\","},{"line_number":86,"context_line":"    \"compute_extension:v3:os-remote-consoles:get_vnc_console\": \"\","},{"line_number":87,"context_line":"    \"compute_extension:v3:os-remote-consoles:get_spice_console\": \"\","},{"line_number":88,"context_line":"    \"compute_extension:createserverext\": \"\","},{"line_number":89,"context_line":"    \"compute_extension:deferred_delete\": \"\","},{"line_number":90,"context_line":"    \"compute_extension:v3:os-deferred-delete\": \"\","}],"source_content_type":"application/json","patch_set":5,"id":"AAAAUX%2F%2Fpq4%3D","line":87,"updated":"2014-02-11 18:39:38.000000000","message":"I think we\u0027re missing the v2 version of the policy in this file","commit_id":"51f5ef0f994eb05d7bbab837c8caf4a41d823121"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c74d9147f3f78ee28f56250cca8ebcceafe8c75f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    \"compute_extension:v3:os-remote-consoles\": \"\","},{"line_number":85,"context_line":"    \"compute_extension:v3:os-remote-consoles:discoverable\": \"\","},{"line_number":86,"context_line":"    \"compute_extension:v3:os-remote-consoles:get_vnc_console\": \"\","},{"line_number":87,"context_line":"    \"compute_extension:v3:os-remote-consoles:get_spice_console\": \"\","},{"line_number":88,"context_line":"    \"compute_extension:createserverext\": \"\","},{"line_number":89,"context_line":"    \"compute_extension:deferred_delete\": \"\","},{"line_number":90,"context_line":"    \"compute_extension:v3:os-deferred-delete\": \"\","}],"source_content_type":"application/json","patch_set":5,"id":"AAAAUX%2F%2FlGY%3D","line":87,"in_reply_to":"AAAAUX%2F%2Fpq4%3D","updated":"2014-02-12 08:14:26.000000000","message":"I am sorry but my understanding is line 83 \n\n\"compute_extension:consoles\": \"\",\n\nis the v2 version of policy ?","commit_id":"51f5ef0f994eb05d7bbab837c8caf4a41d823121"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"aacd2c9f7ecfa2e7bdb776984de24636a7fddda9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    \"compute_extension:consoles\": \"\","},{"line_number":84,"context_line":"    \"compute_extension:v3:os-remote-consoles\": \"\","},{"line_number":85,"context_line":"    \"compute_extension:v3:os-remote-consoles:discoverable\": \"\","},{"line_number":86,"context_line":"    \"compute_extension:v3:os-remote-consoles:get_vnc_console\": \"\","},{"line_number":87,"context_line":"    \"compute_extension:v3:os-remote-consoles:get_spice_console\": \"\","},{"line_number":88,"context_line":"    \"compute_extension:createserverext\": \"\","},{"line_number":89,"context_line":"    \"compute_extension:deferred_delete\": \"\","}],"source_content_type":"application/json","patch_set":10,"id":"AAAAUX%2F%2BnOY%3D","line":86,"updated":"2014-02-20 07:40:31.000000000","message":"I prefer add the \u0027compute:get_vnc_console/get_spice_console\u0027 for v2 api","commit_id":"f396523ae009d2470bf600a6f1d6cc08e25b5605"}],"nova/api/openstack/compute/contrib/consoles.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f2b635429a1b14df3bb50c6a02a1c56e22be2116","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        authorize(context)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":50,"context_line":"        extensions.check_compute_policy(context, \u0027get_vnc_console\u0027, instance)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # If type is not supplied or unknown, get_vnc_console below will cope"},{"line_number":53,"context_line":"        console_type \u003d body[\u0027os-getVNCConsole\u0027].get(\u0027type\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FB8Y%3D","line":50,"updated":"2014-01-18 09:56:34.000000000","message":"you needn\u0027t get instance at here. at line 56, there is call for getting instance. So you can move the policy check to line 57","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80ff7bebf7b0616bfa809040f0d92bb592d24030","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        authorize(context)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":50,"context_line":"        extensions.check_compute_policy(context, \u0027get_vnc_console\u0027, instance)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # If type is not supplied or unknown, get_vnc_console below will cope"},{"line_number":53,"context_line":"        console_type \u003d body[\u0027os-getVNCConsole\u0027].get(\u0027type\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FAoI%3D","line":50,"in_reply_to":"AAAAUH%2F%2FB8Y%3D","updated":"2014-01-19 09:45:36.000000000","message":"Done","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f2b635429a1b14df3bb50c6a02a1c56e22be2116","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        authorize(context)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":78,"context_line":"        extensions.check_compute_policy(context, \u0027get_spice_console\u0027, instance)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # If type is not supplied or unknown, get_spice_console below will cope"},{"line_number":81,"context_line":"        console_type \u003d body[\u0027os-getSPICEConsole\u0027].get(\u0027type\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FB8Q%3D","line":78,"updated":"2014-01-18 09:56:34.000000000","message":"ditto","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80ff7bebf7b0616bfa809040f0d92bb592d24030","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        authorize(context)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":78,"context_line":"        extensions.check_compute_policy(context, \u0027get_spice_console\u0027, instance)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # If type is not supplied or unknown, get_spice_console below will cope"},{"line_number":81,"context_line":"        console_type \u003d body[\u0027os-getSPICEConsole\u0027].get(\u0027type\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FAoA%3D","line":78,"in_reply_to":"AAAAUH%2F%2FB8Q%3D","updated":"2014-01-19 09:45:36.000000000","message":"Done","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"0c462487c3fa3381cd1035856e8776b585509ccb","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        except NotImplementedError:"},{"line_number":80,"context_line":"            msg \u003d _(\"Unable to get spice console, \""},{"line_number":81,"context_line":"                    \"functionality not implemented\")"},{"line_number":82,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return {\u0027console\u0027: {\u0027type\u0027: console_type, \u0027url\u0027: output[\u0027url\u0027]}}"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2FpqM%3D","line":82,"updated":"2014-02-11 18:39:38.000000000","message":"So I think you should split these non api policy related changes into a different patch","commit_id":"51f5ef0f994eb05d7bbab837c8caf4a41d823121"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c74d9147f3f78ee28f56250cca8ebcceafe8c75f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        except NotImplementedError:"},{"line_number":80,"context_line":"            msg \u003d _(\"Unable to get spice console, \""},{"line_number":81,"context_line":"                    \"functionality not implemented\")"},{"line_number":82,"context_line":"            raise webob.exc.HTTPNotImplemented(explanation\u003dmsg)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        return {\u0027console\u0027: {\u0027type\u0027: console_type, \u0027url\u0027: output[\u0027url\u0027]}}"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2FlGU%3D","line":82,"in_reply_to":"AAAAUX%2F%2FpqM%3D","updated":"2014-02-12 08:14:26.000000000","message":"done, I removed this and added another patch for it, thanks","commit_id":"51f5ef0f994eb05d7bbab837c8caf4a41d823121"}],"nova/api/openstack/compute/plugins/v3/remote_consoles.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f2b635429a1b14df3bb50c6a02a1c56e22be2116","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        \"\"\"Get text console output.\"\"\""},{"line_number":47,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":50,"context_line":"        authorize(context, target\u003dinstance, action\u003d\"get_vnc_console\")"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # If type is not supplied or unknown, get_vnc_console below will cope"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FB84%3D","line":49,"updated":"2014-01-18 09:56:34.000000000","message":"you needn\u0027t get instance at here. at line 56, there is call for getting instance. So you can move the policy check to line 57","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80ff7bebf7b0616bfa809040f0d92bb592d24030","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        \"\"\"Get text console output.\"\"\""},{"line_number":47,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":50,"context_line":"        authorize(context, target\u003dinstance, action\u003d\"get_vnc_console\")"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # If type is not supplied or unknown, get_vnc_console below will cope"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FAn8%3D","line":49,"in_reply_to":"AAAAUH%2F%2FB84%3D","updated":"2014-01-19 09:45:36.000000000","message":"Done","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f2b635429a1b14df3bb50c6a02a1c56e22be2116","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Get text console output.\"\"\""},{"line_number":76,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":79,"context_line":"        authorize(context, target\u003dinstance, action\u003d\"get_spice_console\")"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # If type is not supplied or unknown, get_spice_console below will cope"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FB80%3D","line":78,"updated":"2014-01-18 09:56:34.000000000","message":"ditto","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80ff7bebf7b0616bfa809040f0d92bb592d24030","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"\"\"Get text console output.\"\"\""},{"line_number":76,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":79,"context_line":"        authorize(context, target\u003dinstance, action\u003d\"get_spice_console\")"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        # If type is not supplied or unknown, get_spice_console below will cope"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FAn4%3D","line":78,"in_reply_to":"AAAAUH%2F%2FB80%3D","updated":"2014-01-19 09:45:36.000000000","message":"Done","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"}],"nova/compute/api.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2a3badd04f06a87b6b636d67f83304ddaec6508b","unresolved":false,"context_lines":[{"line_number":2629,"context_line":"        connect_info \u003d self.compute_rpcapi.get_spice_console(context,"},{"line_number":2630,"context_line":"                instance\u003dinstance, console_type\u003dconsole_type)"},{"line_number":2631,"context_line":"        return connect_info"},{"line_number":2632,"context_line":""},{"line_number":2633,"context_line":"    @wrap_check_policy"},{"line_number":2634,"context_line":"    @check_instance_host"},{"line_number":2635,"context_line":"    def get_rdp_console(self, context, instance, console_type):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BnQc%3D","line":2632,"updated":"2014-02-20 07:39:15.000000000","message":"Kevin, could you remove this too?","commit_id":"f396523ae009d2470bf600a6f1d6cc08e25b5605"}],"nova/tests/api/openstack/compute/contrib/test_consoles.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2a3badd04f06a87b6b636d67f83304ddaec6508b","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        req.method \u003d \"POST\""},{"line_number":264,"context_line":"        req.body \u003d jsonutils.dumps(body)"},{"line_number":265,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        res \u003d req.get_response(self.app)"},{"line_number":268,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":269,"context_line":"        self.assertEqual(res.status_int, 200)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BnQQ%3D","side":"PARENT","line":266,"updated":"2014-02-20 07:39:15.000000000","message":"you shouldn\u0027t touch those extra lines","commit_id":"14efa0a9fb894b5afdc16884b34c4eeb197ab3db"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2a3badd04f06a87b6b636d67f83304ddaec6508b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                \u0027nova.api.openstack.compute.contrib.select_extensions\u0027],"},{"line_number":101,"context_line":"            osapi_compute_ext_list\u003d[\u0027Consoles\u0027])"},{"line_number":102,"context_line":"        self.app \u003d fakes.wsgi_app(init_only\u003d(\u0027servers\u0027,))"},{"line_number":103,"context_line":"        self.controller \u003d consoles.ConsolesController()"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def test_get_vnc_console(self):"},{"line_number":106,"context_line":"        body \u003d {\u0027os-getVNCConsole\u0027: {\u0027type\u0027: \u0027novnc\u0027}}"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BnQE%3D","line":103,"updated":"2014-02-20 07:39:15.000000000","message":"this is needless","commit_id":"f396523ae009d2470bf600a6f1d6cc08e25b5605"}],"nova/tests/api/openstack/compute/plugins/v3/test_remote_consoles.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f2b635429a1b14df3bb50c6a02a1c56e22be2116","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class ConsolesExtensionTest(test.NoDBTestCase):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setUp(self):"},{"line_number":70,"context_line":"        super(ConsolesExtensionTest, self).setUp()"},{"line_number":71,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_vnc_console\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FB8M%3D","side":"PARENT","line":68,"updated":"2014-01-18 09:56:34.000000000","message":"we shouldn\u0027t touch any extra line.","commit_id":"ce981847073736366c7e963f397f5e08ad0662e1"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80ff7bebf7b0616bfa809040f0d92bb592d24030","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class ConsolesExtensionTest(test.NoDBTestCase):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def setUp(self):"},{"line_number":70,"context_line":"        super(ConsolesExtensionTest, self).setUp()"},{"line_number":71,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_vnc_console\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FAmQ%3D","side":"PARENT","line":68,"in_reply_to":"AAAAUH%2F%2FB8M%3D","updated":"2014-01-19 09:45:36.000000000","message":"Done","commit_id":"ce981847073736366c7e963f397f5e08ad0662e1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f2b635429a1b14df3bb50c6a02a1c56e22be2116","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def test_get_vnc_console_restricted_by_role(self):"},{"line_number":255,"context_line":"        pol \u003d \u0027compute_extension:v3:os-remote-consoles:get_vnc_console\u0027"},{"line_number":256,"context_line":"        rules \u003d policy.Rules({\u0027compute_extension:v3:os-remote-consoles\u0027:"},{"line_number":257,"context_line":"                              policy.parse_rule(\u0027\u0027),"},{"line_number":258,"context_line":"                              pol:"},{"line_number":259,"context_line":"                              policy.parse_rule(\u0027role:admin\u0027)})"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FB8A%3D","line":256,"updated":"2014-01-18 09:56:34.000000000","message":"looks like needn\u0027t to set this rule to empty","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"80ff7bebf7b0616bfa809040f0d92bb592d24030","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    def test_get_vnc_console_restricted_by_role(self):"},{"line_number":255,"context_line":"        pol \u003d \u0027compute_extension:v3:os-remote-consoles:get_vnc_console\u0027"},{"line_number":256,"context_line":"        rules \u003d policy.Rules({\u0027compute_extension:v3:os-remote-consoles\u0027:"},{"line_number":257,"context_line":"                              policy.parse_rule(\u0027\u0027),"},{"line_number":258,"context_line":"                              pol:"},{"line_number":259,"context_line":"                              policy.parse_rule(\u0027role:admin\u0027)})"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FAmI%3D","line":256,"in_reply_to":"AAAAUH%2F%2FB8A%3D","updated":"2014-01-19 09:45:36.000000000","message":"Done","commit_id":"64ec3e484328536fd4a8f3b5b9983b530490659c"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"0c462487c3fa3381cd1035856e8776b585509ccb","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        policy.set_rules(rules)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        body \u003d {\u0027get_vnc_console\u0027: {\u0027type\u0027: \u0027novnc\u0027}}"},{"line_number":405,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/fake/servers/1/action\u0027)"},{"line_number":406,"context_line":"        req.method \u003d \"POST\""},{"line_number":407,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":408,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fprc%3D","line":405,"updated":"2014-02-11 18:39:38.000000000","message":"So these should be HTTPRequestV3.blank(\u0027/servers/1/action\u0027)","commit_id":"51f5ef0f994eb05d7bbab837c8caf4a41d823121"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c74d9147f3f78ee28f56250cca8ebcceafe8c75f","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        policy.set_rules(rules)"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        body \u003d {\u0027get_vnc_console\u0027: {\u0027type\u0027: \u0027novnc\u0027}}"},{"line_number":405,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/fake/servers/1/action\u0027)"},{"line_number":406,"context_line":"        req.method \u003d \"POST\""},{"line_number":407,"context_line":"        req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":408,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2FlFA%3D","line":405,"in_reply_to":"AAAAUX%2F%2Fprc%3D","updated":"2014-02-12 08:14:26.000000000","message":"Done , including all code below, thanks","commit_id":"51f5ef0f994eb05d7bbab837c8caf4a41d823121"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2a3badd04f06a87b6b636d67f83304ddaec6508b","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        self.assertEqual(400, res.status_int)"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"class ConsolesExtensionPolicyTest(test.NoDBTestCase):"},{"line_number":388,"context_line":"    def setUp(self):"},{"line_number":389,"context_line":"        super(ConsolesExtensionPolicyTest, self).setUp()"},{"line_number":390,"context_line":"        self.stubs.Set(compute_api.API, \u0027get_vnc_console\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BnO4%3D","line":387,"updated":"2014-02-20 07:39:15.000000000","message":"Maybe we just test the policy failed is enough, what would you think?","commit_id":"f396523ae009d2470bf600a6f1d6cc08e25b5605"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2a3badd04f06a87b6b636d67f83304ddaec6508b","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    def test_get_spice_console_compute_policy_failed(self):"},{"line_number":484,"context_line":"        pol \u003d \u0027compute_extension:v3:os-remote-consoles:get_spice_console\u0027"},{"line_number":485,"context_line":"        rules \u003d policy.Rules({\u0027compute_extension:v3:os-remote-consoles\u0027:"},{"line_number":486,"context_line":"                              policy.parse_rule(\u0027\u0027),"},{"line_number":487,"context_line":"                              pol:"},{"line_number":488,"context_line":"                              policy.parse_rule(\u0027!\u0027)})"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2BnPI%3D","line":485,"updated":"2014-02-20 07:39:15.000000000","message":"this is needless","commit_id":"f396523ae009d2470bf600a6f1d6cc08e25b5605"}]}
