)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"3cf3b75eaf3a92a261b3c9dfd5863f405c85ce96","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Divya \u003cdikonoor@in.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-24 19:43:03 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds support for default rule in ceilometer policy.json. Fixes Bug:1435855"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Icab626b28d14514b0f024df447a8e7f35c52257c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a6ced46_4c604fa5","line":7,"updated":"2015-03-26 05:41:37.000000000","message":"Please follow the guidelines to write commit messages.\n\nWrite a title to the problem. Explain the problem a bit more in the next para. The \"Fixes bug\" should be on a next line than on the same line. \n\nLook at his for reference: https://wiki.openstack.org/wiki/GitCommitMessages#Git_Commit_Good_Practice","commit_id":"4bc6ac5e680ee9d5e91b3673fba591501cd581b6"}],"ceilometer/api/rbac.py":[{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"3cf3b75eaf3a92a261b3c9dfd5863f405c85ce96","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    policy_dict[\u0027target.user_id\u0027] \u003d (headers.get(\u0027X-User-Id\u0027))"},{"line_number":47,"context_line":"    policy_dict[\u0027target.project_id\u0027] \u003d (headers.get(\u0027X-Project-Id\u0027))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    if not _ENFORCER.enforce(rule_method,"},{"line_number":50,"context_line":"                             {},"},{"line_number":51,"context_line":"                             policy_dict):"},{"line_number":52,"context_line":"        pecan.core.abort(status_code\u003d403,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_6c0c2bee","line":49,"updated":"2015-03-26 05:41:37.000000000","message":"Did you run the UTs before submitting this patch? \nIt sounds like - this code has ended up breaking a few tests.","commit_id":"4bc6ac5e680ee9d5e91b3673fba591501cd581b6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"3cf3b75eaf3a92a261b3c9dfd5863f405c85ce96","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    policy_dict[\u0027target.project_id\u0027] \u003d (headers.get(\u0027X-Project-Id\u0027))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    if not _ENFORCER.enforce(rule_method,"},{"line_number":50,"context_line":"                             {},"},{"line_number":51,"context_line":"                             policy_dict):"},{"line_number":52,"context_line":"        pecan.core.abort(status_code\u003d403,"},{"line_number":53,"context_line":"                         detail\u003d\u0027RBAC Authorization Failed\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_8c0de7ea","line":50,"updated":"2015-03-26 05:41:37.000000000","message":"Please write a UT that covers this code.","commit_id":"4bc6ac5e680ee9d5e91b3673fba591501cd581b6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"5f73eadf3a12ccff8ec23537455e0a8ebc01aae0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    policy_dict[\u0027target.project_id\u0027] \u003d (headers.get(\u0027X-Project-Id\u0027))"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    rule_names \u003d _ENFORCER.rules.keys()"},{"line_number":50,"context_line":"    if \u0027default\u0027 in rule_names:"},{"line_number":51,"context_line":"        if not _ENFORCER.enforce(rule_method,"},{"line_number":52,"context_line":"                                 {},"},{"line_number":53,"context_line":"                                 policy_dict):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_e011175f","line":50,"updated":"2015-04-01 17:55:06.000000000","message":"Just for readability, I\u0027d recommend factoring this check out to a static method:\n\n  @staticmethod\n  def _has_rule(name):\n      return name in _ENFORCER.rules.keys()","commit_id":"5a5d515fa7b24549adcdbeb8ea3f921e80fb9fb4"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"b414d17b74d2929f43a069e8aa4413683aad2be1","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    rule_name \u003d \u0027segregation\u0027"},{"line_number":91,"context_line":"    # maintain backward compat with Juno and previous by using context_is_admin"},{"line_number":92,"context_line":"    # rule if the segregation rule (added in Kilo) is not defined"},{"line_number":93,"context_line":"    if rule_name not in _ENFORCER.rules.keys():"},{"line_number":94,"context_line":"        rule_name \u003d \u0027context_is_admin\u0027"},{"line_number":95,"context_line":"    if not _ENFORCER.enforce(rule_name,"},{"line_number":96,"context_line":"                             {},"}],"source_content_type":"text/x-python","patch_set":7,"id":"baa041b7_7888f0e7","line":93,"updated":"2015-04-02 18:05:06.000000000","message":"should use _has_rule() here as well.","commit_id":"c70a513bae16adfdfbc2959fc26ed994df91ffa0"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"f34c179a9169474dfc94ec6119998f65aa215197","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    policy_dict[\u0027target.user_id\u0027] \u003d (headers.get(\u0027X-User-Id\u0027))"},{"line_number":88,"context_line":"    policy_dict[\u0027target.project_id\u0027] \u003d (headers.get(\u0027X-Project-Id\u0027))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    rule_name \u003d \u0027segregation\u0027"},{"line_number":91,"context_line":"    # maintain backward compat with Juno and previous by using context_is_admin"},{"line_number":92,"context_line":"    # rule if the segregation rule (added in Kilo) is not defined"},{"line_number":93,"context_line":"    if not _has_rule(rule_name):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9aa53dc9_0f3891d2","line":90,"updated":"2015-04-07 08:24:39.000000000","message":"Clearer as:\n\n  rule_name \u003d \u0027segregation\u0027 if _has_rule(\u0027segregation\u0027) else \u0027context_is_admin\u0027","commit_id":"aa75aaf42d077acec95910729e71b77d4caf7e50"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"0342223109d3773b90a4962e11c69f89d5125943","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    policy_dict[\u0027target.user_id\u0027] \u003d (headers.get(\u0027X-User-Id\u0027))"},{"line_number":51,"context_line":"    policy_dict[\u0027target.project_id\u0027] \u003d (headers.get(\u0027X-Project-Id\u0027))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    if _has_rule(\u0027default\u0027):"},{"line_number":54,"context_line":"        if not _ENFORCER.enforce(rule_method,"},{"line_number":55,"context_line":"                                 {},"},{"line_number":56,"context_line":"                                 policy_dict):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9aa53dc9_edffabff","line":53,"updated":"2015-04-07 13:05:01.000000000","message":"logically, this seems to be\n\n  if ((_has_rule(\u0027default\u0027) or _has_rule(rule_method)) and\n          if not _ENFORCER.enforce(rule_method, {}, policy_dict)):\n      pecan.core.abort(status_code\u003d403, detail\u003d\u0027RBAC Authorization Failed\u0027)","commit_id":"8e912653522a51eb80f749cfa217c779888dec27"}],"etc/ceilometer/policy.json":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"e4f2bf74026c5ae8a5f0f21407e6f7f3efd96880","unresolved":false,"context_lines":[{"line_number":3,"context_line":"    \"context_is_project\": \"project_id:%(target.project_id)s\","},{"line_number":4,"context_line":"    \"context_is_owner\": \"user_id:%(target.user_id)s\","},{"line_number":5,"context_line":"    \"segregation\": \"rule:context_is_admin\","},{"line_number":6,"context_line":"    \"default\": \"\""},{"line_number":7,"context_line":"}"}],"source_content_type":"application/json","patch_set":3,"id":"da9b358b_ca9e3707","line":6,"updated":"2015-03-28 01:32:10.000000000","message":"the default is can do anything? I don\u0027t think it is a good idea","commit_id":"62f528f2a23bb8baaaafd7b236c84c30e2c507ce"}]}
