)]}'
{"etc/nova/policy.json":[{"author":{"_account_id":9444,"name":"gustavo panizzo","email":"gfa@zumbi.com.ar","username":"gfa"},"change_message_id":"047e1b445c777e71c19bb61b962d2a4abcda59b4","unresolved":false,"context_lines":[{"line_number":330,"context_line":"    \"network:create_private_dns_domain\": \"\","},{"line_number":331,"context_line":"    \"network:create_public_dns_domain\": \"\","},{"line_number":332,"context_line":"    \"network:delete_dns_domain\": \"\","},{"line_number":333,"context_line":"    \"network:attach_external_network\": \"rule:admin_api\","},{"line_number":334,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"baada198_3569b926","line":333,"updated":"2014-08-08 04:08:14.000000000","message":"you have an extra comma at the end of rule","commit_id":"d3a85867576428cf5e6590f155a17caa5168e44f"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"12cd35cecf723f7abf00ea356de284152f07ec6f","unresolved":false,"context_lines":[{"line_number":330,"context_line":"    \"network:create_private_dns_domain\": \"\","},{"line_number":331,"context_line":"    \"network:create_public_dns_domain\": \"\","},{"line_number":332,"context_line":"    \"network:delete_dns_domain\": \"\","},{"line_number":333,"context_line":"    \"network:attach_external_network\": \"rule:admin_api\","},{"line_number":334,"context_line":"}"}],"source_content_type":"application/json","patch_set":1,"id":"baada198_d5bb1d72","line":333,"in_reply_to":"baada198_3569b926","updated":"2014-08-08 04:11:56.000000000","message":"fixed - thanks!","commit_id":"d3a85867576428cf5e6590f155a17caa5168e44f"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"763e840b259b7289690d034fc676b70aeb860ccf","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            \u0027user_id\u0027: context.user_id,"},{"line_number":166,"context_line":"        }"},{"line_number":167,"context_line":"        if not policy.enforce(context, \u0027network:attach_external_network\u0027,"},{"line_number":168,"context_line":"                              target, do_raise\u003dFalse):"},{"line_number":169,"context_line":"            for net in nets:"},{"line_number":170,"context_line":"                # Perform this check here rather than in validate_networks to"},{"line_number":171,"context_line":"                # ensure the check is performed every time"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_455eec13","line":168,"updated":"2014-08-25 11:16:23.000000000","message":"How about using soft_extension_authorizer() for simple code?\n\n authorize \u003d extensions.soft_extension_authorizer(\u0027network\u0027, \u0027attach_external_network\u0027)\n if soft_authorize(context):\n     ...","commit_id":"1a127397ff289bea37796fa56d679bb747607875"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"66a793d87e1ec397335ccbda4598a955ab70812d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            \u0027user_id\u0027: context.user_id,"},{"line_number":166,"context_line":"        }"},{"line_number":167,"context_line":"        if not policy.enforce(context, \u0027network:attach_external_network\u0027,"},{"line_number":168,"context_line":"                              target, do_raise\u003dFalse):"},{"line_number":169,"context_line":"            for net in nets:"},{"line_number":170,"context_line":"                # Perform this check here rather than in validate_networks to"},{"line_number":171,"context_line":"                # ensure the check is performed every time"}],"source_content_type":"text/x-python","patch_set":2,"id":"1abeadc6_4b033273","line":168,"in_reply_to":"1abeadc6_455eec13","updated":"2014-08-26 09:54:06.000000000","message":"Done","commit_id":"1a127397ff289bea37796fa56d679bb747607875"}]}
