)]}'
{"nova/api/openstack/compute/extended_server_attributes.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"71bccac927c43cc23c1ced48cbaf273f1d89c8bd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        authorize_extend \u003d False"},{"line_number":64,"context_line":"        authorize_host_status \u003d False"},{"line_number":65,"context_line":"        if context.can(esa_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":66,"context_line":"            authorize_extend \u003d True"},{"line_number":67,"context_line":"        if (api_version_request.is_supported(req, min_version\u003d\u00272.16\u0027) and"},{"line_number":68,"context_line":"            context.can(servers_policies.SERVERS % \u0027show:host_status\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_92e09cce","line":65,"range":{"start_line":65,"start_character":54,"end_line":65,"end_character":65},"updated":"2016-06-27 12:40:19.000000000","message":"This should be a hard authorizer.","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0d8d48f533fc6d6c5711df0d85e550279c137ccb","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        authorize_extend \u003d False"},{"line_number":64,"context_line":"        authorize_host_status \u003d False"},{"line_number":65,"context_line":"        if context.can(esa_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":66,"context_line":"            authorize_extend \u003d True"},{"line_number":67,"context_line":"        if (api_version_request.is_supported(req, min_version\u003d\u00272.16\u0027) and"},{"line_number":68,"context_line":"            context.can(servers_policies.SERVERS % \u0027show:host_status\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_5b5e4f13","line":65,"range":{"start_line":65,"start_character":54,"end_line":65,"end_character":65},"in_reply_to":"3aaa91ec_12acac34","updated":"2016-06-27 13:15:30.000000000","message":"yeah, I\u0027ve wasted sooo much time because of this. :) Jenkins was failing over and over because of this. :)","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"db418c1d76580ede88244d3eb60c8cb4176ecbd9","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":63,"context_line":"        authorize_extend \u003d False"},{"line_number":64,"context_line":"        authorize_host_status \u003d False"},{"line_number":65,"context_line":"        if context.can(esa_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":66,"context_line":"            authorize_extend \u003d True"},{"line_number":67,"context_line":"        if (api_version_request.is_supported(req, min_version\u003d\u00272.16\u0027) and"},{"line_number":68,"context_line":"            context.can(servers_policies.SERVERS % \u0027show:host_status\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_12acac34","line":65,"range":{"start_line":65,"start_character":54,"end_line":65,"end_character":65},"in_reply_to":"3aaa91ec_92e09cce","updated":"2016-06-27 12:41:26.000000000","message":"Nvm I didn\u0027t read fully. It is a bit odd that authorizer is a soft authorizer :)","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"71bccac927c43cc23c1ced48cbaf273f1d89c8bd","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":84,"context_line":"        authorize_extend \u003d False"},{"line_number":85,"context_line":"        authorize_host_status \u003d False"},{"line_number":86,"context_line":"        if context.can(esa_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":87,"context_line":"            authorize_extend \u003d True"},{"line_number":88,"context_line":"        if (api_version_request.is_supported(req, min_version\u003d\u00272.16\u0027) and"},{"line_number":89,"context_line":"            context.can(servers_policies.SERVERS % \u0027show:host_status\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_12cdcc5d","line":86,"range":{"start_line":86,"start_character":54,"end_line":86,"end_character":65},"updated":"2016-06-27 12:40:19.000000000","message":"same here.","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0d8d48f533fc6d6c5711df0d85e550279c137ccb","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":84,"context_line":"        authorize_extend \u003d False"},{"line_number":85,"context_line":"        authorize_host_status \u003d False"},{"line_number":86,"context_line":"        if context.can(esa_policies.BASE_POLICY_NAME, fatal\u003dFalse):"},{"line_number":87,"context_line":"            authorize_extend \u003d True"},{"line_number":88,"context_line":"        if (api_version_request.is_supported(req, min_version\u003d\u00272.16\u0027) and"},{"line_number":89,"context_line":"            context.can(servers_policies.SERVERS % \u0027show:host_status\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_7bb86b2b","line":86,"range":{"start_line":86,"start_character":54,"end_line":86,"end_character":65},"in_reply_to":"3aaa91ec_12cdcc5d","updated":"2016-06-27 13:15:30.000000000","message":"still soft. :)","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"}],"nova/context.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"71bccac927c43cc23c1ced48cbaf273f1d89c8bd","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        \"\"\"Verifies that the given rule is valid on the target in this context."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        :param action: string representing the action to be checked"},{"line_number":225,"context_line":"            this should be colon separated for clarity."},{"line_number":226,"context_line":"            i.e. ``os_compute_api:servers:create``"},{"line_number":227,"context_line":"        :param target: dictionary representing the object of the action"},{"line_number":228,"context_line":"            for object creation this should be a dictionary representing the"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_f258008d","line":225,"updated":"2016-06-27 12:40:19.000000000","message":"I don\u0027t think we should specify that it\u0027s colon separated. With the talk of aligning policy checks more closely with associated API calls we could do something like have a policy rule be \"POST /servers\". The colon separation is an ingrained standard but it\u0027s not actually required by policy code afaict.","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"0d8d48f533fc6d6c5711df0d85e550279c137ccb","unresolved":false,"context_lines":[{"line_number":222,"context_line":"        \"\"\"Verifies that the given rule is valid on the target in this context."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        :param action: string representing the action to be checked"},{"line_number":225,"context_line":"            this should be colon separated for clarity."},{"line_number":226,"context_line":"            i.e. ``os_compute_api:servers:create``"},{"line_number":227,"context_line":"        :param target: dictionary representing the object of the action"},{"line_number":228,"context_line":"            for object creation this should be a dictionary representing the"}],"source_content_type":"text/x-python","patch_set":12,"id":"3aaa91ec_bbce53b5","line":225,"in_reply_to":"3aaa91ec_f258008d","updated":"2016-06-27 13:15:30.000000000","message":"sure, This is basically the same as the docstring for policy.authorize. If we are to update it, we should also update policy.authorize as well.","commit_id":"3ed8dcf65cbccadabf9a60120fd982b6a836e0ff"}]}
