)]}'
{"nova/api/openstack/placement/handler.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9ea59ed379619caf753aa5efac5303f376a90e89","unresolved":false,"context_lines":[{"line_number":157,"context_line":"            # TODO(cdent): Using is_admin everywhere (except /) is"},{"line_number":158,"context_line":"            # insufficiently flexible for future use case but is"},{"line_number":159,"context_line":"            # convenient for initial exploration."},{"line_number":160,"context_line":"            if not policy.placement_authorize(context, \u0027placement\u0027):"},{"line_number":161,"context_line":"                raise webob.exc.HTTPForbidden("},{"line_number":162,"context_line":"                    _(\u0027admin required\u0027),"},{"line_number":163,"context_line":"                    json_formatter\u003dutil.json_error_formatter)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a77a97e_3194308a","line":160,"updated":"2016-11-15 16:49:18.000000000","message":"https://github.com/openstack/nova/blob/925dc7aa128d060e0d0f9275a3b1fcdc98eecbf3/nova/tests/functional/api/openstack/placement/gabbits/resource-provider.yaml#L16 tests this.","commit_id":"cb9300fd37225c0b744f1f85e4c3bb940e402a8b"}],"nova/api/openstack/placement/policy.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"5f97b384e128c93e3b992794e4051be833818127","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    result \u003d _ENFORCER_PLACEMENT.enforce(action, target, credentials,"},{"line_number":70,"context_line":"                                         do_raise\u003dFalse, exc\u003dNone,"},{"line_number":71,"context_line":"                                         action\u003daction)"},{"line_number":72,"context_line":"    if result is False:"},{"line_number":73,"context_line":"        LOG.debug(\u0027Policy check for %(action)s failed with credentials \u0027"},{"line_number":74,"context_line":"                  \u0027%(credentials)s\u0027,"},{"line_number":75,"context_line":"                  {\u0027action\u0027: action, \u0027credentials\u0027: credentials})"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a629dbe_a527d710","line":72,"range":{"start_line":72,"start_character":4,"end_line":72,"end_character":22},"updated":"2016-11-09 14:39:39.000000000","message":"nit: since enforce can only return True/False, this should be \"if not result\"","commit_id":"cb9300fd37225c0b744f1f85e4c3bb940e402a8b"}]}
