)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"431d50add1f4914b0273f5771600c2c7ea24279d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-04-20 14:27:34 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default policy rule for extension_info"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I6afcf6f9e2cedb86e899a360e1abb22ccc1f0a27"},{"line_number":10,"context_line":"Closes-Bug:#1415286"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dac4157f_074f7593","line":8,"updated":"2015-04-20 07:19:47.000000000","message":"at least say something?","commit_id":"b34f2dbd3baa13c7edd5154a61cfc9fd14d35e67"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"f240206d087797d02e5184e1d0122e12ce0f3676","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add policy check for extension_info"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add policy check for extension_info"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6afcf6f9e2cedb86e899a360e1abb22ccc1f0a27"},{"line_number":12,"context_line":"Closes-Bug:#1415286"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dac4157f_fb864bb8","line":9,"updated":"2015-04-20 15:10:16.000000000","message":"why we need to add policy for extension info? \nis it only for outside API users? \ncan you add more info if it\u0027s needed","commit_id":"8574791215e0b6d7ffe9d310ee5f05cda84ef129"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"14280d879fb515b8fdd88cd1673e6f20ddd6bddb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add policy check for extension_info"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add policy check for extension_info"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6afcf6f9e2cedb86e899a360e1abb22ccc1f0a27"},{"line_number":12,"context_line":"Closes-Bug:#1415286"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dac4157f_0da3dc50","line":9,"in_reply_to":"dac4157f_fb864bb8","updated":"2015-04-21 12:18:55.000000000","message":"hi jichenjc,\npolicy enforce for extension maybe useful in some cases, we can give a empty rule be default, and operator can modify it if they don\u0027t want this api been called by normal user.","commit_id":"8574791215e0b6d7ffe9d310ee5f05cda84ef129"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"88dcddc71bbd018749b2ae4f2546282028ef6994","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds default policy enforcement for extension infor."},{"line_number":10,"context_line":"by default the rule is empty, but operator can configure it if they don\u0027t want"},{"line_number":11,"context_line":"normal user to see extension infor."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: #1415286"},{"line_number":14,"context_line":"Change-Id: I6afcf6f9e2cedb86e899a360e1abb22ccc1f0a27"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"dac4157f_a391a19b","line":11,"updated":"2015-04-21 12:24:53.000000000","message":"info or information ...","commit_id":"d466928081ad4bcc7d70fa97b84aa59037d34369"}],"nova/api/openstack/compute/plugins/v3/extension_info.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c893b8c74ba6744e570ec4124ce29c80a85192c8","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        discoverable_extensions \u003d dict()"},{"line_number":136,"context_line":"        for alias, ext in self.extension_info.get_extensions().iteritems():"},{"line_number":137,"context_line":"            authorize \u003d extensions.os_compute_soft_authorizer(alias)"},{"line_number":138,"context_line":"            if authorize(context, action\u003d\u0027discoverable\u0027):"},{"line_number":139,"context_line":"                discoverable_extensions[alias] \u003d ext"},{"line_number":140,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_ee075d1a","side":"PARENT","line":137,"updated":"2015-04-15 03:43:08.000000000","message":"you can\u0027t remove this, this is used for extension discover.","commit_id":"1e3412deeca725cc3ecfd12ff4e185515f9fda1b"}],"nova/tests/unit/api/openstack/compute/contrib/test_extension_info.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c893b8c74ba6744e570ec4124ce29c80a85192c8","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        ext_info.extensions \u003d fake_extensions"},{"line_number":195,"context_line":"        self.controller \u003d extension_info.ExtensionInfoController(ext_info)"},{"line_number":196,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027)"},{"line_number":197,"context_line":"        self.rule_name \u003d \"compute_extension:extension_info:discoverable\""},{"line_number":198,"context_line":"        self.policy.set_rules({self.rule_name: \"project:non_fake\"})"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def test_extension_index_policy_failed(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_ee307d03","line":197,"updated":"2015-04-15 03:43:08.000000000","message":"os_compute_api","commit_id":"a149bf65bd0a5c3d1ab85c8ae7326101df48f28c"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"9420d8c92e8789bf0e3c9b4ab3a225207a8aed1f","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        self.controller.index, self.req)"},{"line_number":204,"context_line":"        self.assertEqual("},{"line_number":205,"context_line":"        \"Policy doesn\u0027t allow %s to be performed.\" % self.rule_name,"},{"line_number":206,"context_line":"        exc.format_message())"}],"source_content_type":"text/x-python","patch_set":3,"id":"dac4157f_65403f57","line":206,"updated":"2015-04-21 03:53:52.000000000","message":"The actual message is \u0027os_compute_api:extensions\u0027, that cause ut fail.Please check it.","commit_id":"8574791215e0b6d7ffe9d310ee5f05cda84ef129"}],"nova/tests/unit/fake_policy.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c893b8c74ba6744e570ec4124ce29c80a85192c8","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    \"os_compute_api:ips:show\": \"\","},{"line_number":206,"context_line":"    \"os_compute_api:os-extended-volumes\": \"\","},{"line_number":207,"context_line":"    \"os_compute_api:extensions:discoverable\": \"\","},{"line_number":208,"context_line":"    \"compute_extension:extension_info\": \"\","},{"line_number":209,"context_line":"    \"compute_extension:fixed_ips\": \"\","},{"line_number":210,"context_line":"    \"os_compute_api:os-fixed-ips\": \"\","},{"line_number":211,"context_line":"    \"compute_extension:flavor_access\": \"\","}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_4e3f71d6","line":208,"updated":"2015-04-15 03:43:08.000000000","message":"os_compute_api?","commit_id":"a149bf65bd0a5c3d1ab85c8ae7326101df48f28c"}]}
