)]}'
{"etc/nova/policy.json":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0de5a238850fda71f62cdc253d944e63cd2beefd","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"compute:revert_resize\": \"\","},{"line_number":24,"context_line":"    \"compute:rebuild\": \"\","},{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"\","},{"line_number":29,"context_line":""}],"source_content_type":"application/json","patch_set":1,"id":"dac4157f_5173ef4d","line":26,"updated":"2015-04-20 05:24:39.000000000","message":"without those policy in the sample file, the policy rule will be the default rule. So it\u0027s fine without them in the sample file.\n\nBut if you add them, I prefer write the rule as \"compute:delete\": \"rule:admin_or_owner\"","commit_id":"fc1f4f3b6131826a8a3dc780ccbf950c4f3e879f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"65d90ac3015aadc430caff1bfc771baa58699c97","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"compute:revert_resize\": \"\","},{"line_number":24,"context_line":"    \"compute:rebuild\": \"\","},{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"\","},{"line_number":29,"context_line":""}],"source_content_type":"application/json","patch_set":1,"id":"dac4157f_d1713fe2","line":26,"in_reply_to":"dac4157f_5173ef4d","updated":"2015-04-20 05:49:18.000000000","message":"Done","commit_id":"fc1f4f3b6131826a8a3dc780ccbf950c4f3e879f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7c4c376b7a6784c1dae3f794a5d3d7e78bfea701","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"compute:revert_resize\": \"\","},{"line_number":24,"context_line":"    \"compute:rebuild\": \"\","},{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"rule:admin_or_owner\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"rule:admin_or_owner\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"rule:admin_or_owner\","},{"line_number":29,"context_line":""}],"source_content_type":"application/json","patch_set":3,"id":"da20952f_172339be","line":26,"updated":"2015-09-07 09:20:20.000000000","message":"given the default is admin_or_owner, this feels like over kill, but anyways, its better to add the missing values.","commit_id":"cdd1ad168e9375a8af34e5d7e099a242b63a8428"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"164a4a36a9b47d9c29b69cef485f9db3ea23f2f0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"rule:admin_or_owner\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"rule:admin_or_owner\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"rule:admin_or_owner\","},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"compute:volume_snapshot_create\": \"\","},{"line_number":31,"context_line":"    \"compute:volume_snapshot_delete\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"3afb71cf_ec58f432","line":28,"updated":"2015-06-11 05:54:57.000000000","message":"The code of force_delete API is like the following:\n\n 27 authorize \u003d extensions.extension_authorizer(\u0027compute\u0027, \u0027deferred_delete\u0027)\n [..]\n 51     @wsgi.action(\u0027forceDelete\u0027)\n 52     def _force_delete(self, req, id, body):\n 53         \"\"\"Force delete of instance before deferred cleanup.\"\"\"\n 54         context \u003d req.environ[\"nova.context\"]\n 55         authorize(context)\n\nSo this API is using \"compute:deferred_delete\" policy now.\nand this patch doesn\u0027t change it.\nI guess this patch adds unused policy sample.","commit_id":"cdd1ad168e9375a8af34e5d7e099a242b63a8428"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"17d1092fce20e0ac7875a50b6421e857a017f9dd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"rule:admin_or_owner\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"rule:admin_or_owner\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"rule:admin_or_owner\","},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"compute:volume_snapshot_create\": \"\","},{"line_number":31,"context_line":"    \"compute:volume_snapshot_delete\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"3afb71cf_8c2e20a3","line":28,"in_reply_to":"3afb71cf_4cbf0861","updated":"2015-06-11 06:38:45.000000000","message":"@Li\n\nThanks, I see.\nbut I still -1 for that.\n\n@Alex\n\nI think your bp/nova-api-policy-final-part work is trying to remove policy checks from compute/api.py layer.\nSo if adding this checks, we will need to remove these checks again after your work. right?","commit_id":"cdd1ad168e9375a8af34e5d7e099a242b63a8428"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2928759c4775f72afb423af7e1fcf70eb281108a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"rule:admin_or_owner\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"rule:admin_or_owner\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"rule:admin_or_owner\","},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"compute:volume_snapshot_create\": \"\","},{"line_number":31,"context_line":"    \"compute:volume_snapshot_delete\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"da20952f_89817cc5","line":28,"in_reply_to":"3afb71cf_8c2e20a3","updated":"2015-09-06 13:18:39.000000000","message":"@Ken\u0027ichi, actually those for v2 API.  My cleanup works is about v2.1 API. It is ok for add that.But yes, we will remove this in the future.","commit_id":"cdd1ad168e9375a8af34e5d7e099a242b63a8428"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"25ffe0368037290b5a10609ccd12689e918ec05c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"rule:admin_or_owner\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"rule:admin_or_owner\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"rule:admin_or_owner\","},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"compute:volume_snapshot_create\": \"\","},{"line_number":31,"context_line":"    \"compute:volume_snapshot_delete\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"3afb71cf_4cbf0861","line":28,"in_reply_to":"3afb71cf_ec58f432","updated":"2015-06-11 06:34:28.000000000","message":"There is actually a policy check here: https://github.com/openstack/nova/blob/master/nova/compute/api.py#L1852","commit_id":"cdd1ad168e9375a8af34e5d7e099a242b63a8428"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"91e13ad51bde3a3a17476724194543e912d15eb1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    \"compute:reboot\": \"\","},{"line_number":26,"context_line":"    \"compute:delete\": \"rule:admin_or_owner\","},{"line_number":27,"context_line":"    \"compute:soft_delete\": \"rule:admin_or_owner\","},{"line_number":28,"context_line":"    \"compute:force_delete\": \"rule:admin_or_owner\","},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    \"compute:volume_snapshot_create\": \"\","},{"line_number":31,"context_line":"    \"compute:volume_snapshot_delete\": \"\","}],"source_content_type":"application/json","patch_set":3,"id":"da20952f_882bb181","line":28,"in_reply_to":"da20952f_89817cc5","updated":"2015-09-07 00:48:42.000000000","message":"Thanks for the explanation, Alex\n\nIt is difficult to say we can remove legacy v2 code *soon*, so I agree with this patch.","commit_id":"cdd1ad168e9375a8af34e5d7e099a242b63a8428"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6cfa81c50a6842d5a88d6ea1fca975bfcbde06e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"compute:security_groups:add_to_instance\": \"\","},{"line_number":86,"context_line":"    \"compute:security_groups:remove_from_instance\": \"\","},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    \"compute:delete\": \"\","},{"line_number":89,"context_line":"    \"compute:soft_delete\": \"\","},{"line_number":90,"context_line":"    \"compute:force_delete\": \"\","},{"line_number":91,"context_line":"    \"compute:restore\": \"\","},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    \"compute:volume_snapshot_create\": \"\","}],"source_content_type":"application/json","patch_set":4,"id":"7aa08908_554df0c2","line":90,"range":{"start_line":88,"start_character":4,"end_line":90,"end_character":31},"updated":"2016-06-07 20:06:37.000000000","message":"oh boy","commit_id":"09a55e2bf4f3d5df3b76454f4839e2ce96f9d42f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"9be33e08936e016fb366570dc24f8fc248dba512","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"compute:security_groups:add_to_instance\": \"\","},{"line_number":86,"context_line":"    \"compute:security_groups:remove_from_instance\": \"\","},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    \"compute:delete\": \"\","},{"line_number":89,"context_line":"    \"compute:soft_delete\": \"\","},{"line_number":90,"context_line":"    \"compute:force_delete\": \"\","},{"line_number":91,"context_line":"    \"compute:restore\": \"\","},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    \"compute:volume_snapshot_create\": \"\","}],"source_content_type":"application/json","patch_set":4,"id":"7aa08908_62766507","line":90,"range":{"start_line":88,"start_character":4,"end_line":90,"end_character":31},"in_reply_to":"7aa08908_554df0c2","updated":"2016-06-08 00:29:48.000000000","message":"Ahhh","commit_id":"09a55e2bf4f3d5df3b76454f4839e2ce96f9d42f"}]}
