)]}'
{"cinder/policies/group_snapshots.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":60,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":61,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":62,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":63,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":64,"context_line":"        description\u003d\"List group snapshots.\","},{"line_number":65,"context_line":"        operations\u003d["},{"line_number":66,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"acc7ba85_f19b5206","line":63,"updated":"2021-09-03 18:38:38.000000000","message":"I think we\u0027re removing these from xena patches (defer until scopes are added in yoga).","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"199f7580cda8f543d8fdf66b365fe359c1e3d4a9","unresolved":true,"context_lines":[{"line_number":79,"context_line":"        # FIXME(lbragstad): Deprecate this check in favor of system-scope"},{"line_number":80,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":81,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":82,"context_line":"        check_str\u003dbase.PROJECT_MEMBER,"},{"line_number":83,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":84,"context_line":"        description\u003d\"Create group snapshot.\","},{"line_number":85,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":8,"id":"2ab5f6e8_9417eac7","line":82,"range":{"start_line":82,"start_character":7,"end_line":82,"end_character":38},"updated":"2021-09-03 14:18:30.000000000","message":"This is not correct","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":80,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":81,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":82,"context_line":"        check_str\u003dbase.PROJECT_MEMBER,"},{"line_number":83,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":84,"context_line":"        description\u003d\"Create group snapshot.\","},{"line_number":85,"context_line":"        operations\u003d["},{"line_number":86,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"193bd3b3_8f999f4b","line":83,"updated":"2021-09-03 18:38:38.000000000","message":"Remove until scopes are supported in yoga.","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":96,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":97,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":98,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":99,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":100,"context_line":"        description\u003d\"Show group snapshot.\","},{"line_number":101,"context_line":"        operations\u003d["},{"line_number":102,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"297caa2c_a6d8ffa1","line":99,"updated":"2021-09-03 18:38:38.000000000","message":"ditto","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":112,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":113,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":114,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":115,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":116,"context_line":"        description\u003d\"Delete group snapshot.\","},{"line_number":117,"context_line":"        operations\u003d["},{"line_number":118,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fa466e4_819ba920","line":115,"updated":"2021-09-03 18:38:38.000000000","message":"ditto","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":128,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":129,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":130,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":131,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":132,"context_line":"        description\u003d\"Update group snapshot.\","},{"line_number":133,"context_line":"        operations\u003d["},{"line_number":134,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":8,"id":"a177f08d_8f2df984","line":131,"updated":"2021-09-03 18:38:38.000000000","message":"ditto","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":144,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":145,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":146,"context_line":"        check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":147,"context_line":"        scope_types\u003d[\u0027system\u0027],"},{"line_number":148,"context_line":"        description\u003d\"List group snapshots or show group \""},{"line_number":149,"context_line":"                    \"snapshot with project attributes.\","},{"line_number":150,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":8,"id":"dd2d3153_f177ad16","line":147,"updated":"2021-09-03 18:38:38.000000000","message":"ditto","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"630acd4e707d38961e909f2b8cd3378036594cf2","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                \u0027path\u0027: \u0027/group_snapshots/detail\u0027"},{"line_number":158,"context_line":"            }"},{"line_number":159,"context_line":"        ],"},{"line_number":160,"context_line":"        deprecated_rule\u003ddeprecated_group_project_attribute,"},{"line_number":161,"context_line":"    ),"},{"line_number":162,"context_line":"]"},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"6418aafc_ad87cb79","line":160,"updated":"2021-09-03 18:38:38.000000000","message":"This can be dropped because the rule will the same as before if L147 is removed.","commit_id":"d55bacb59b1a0a7897e7a141e88517d0187b3219"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe2471cde42274f10f7f2487fa20d3c24eebc2f9","unresolved":true,"context_lines":[{"line_number":46,"context_line":"    name\u003dUPDATE_POLICY,"},{"line_number":47,"context_line":"    check_str\u003dbase.RULE_ADMIN_OR_OWNER"},{"line_number":48,"context_line":")"},{"line_number":49,"context_line":"deprecated_group_project_attribute \u003d base.CinderDeprecatedRule("},{"line_number":50,"context_line":"    name\u003dGROUP_SNAPSHOT_ATTRIBUTES_POLICY,"},{"line_number":51,"context_line":"    check_str\u003dbase.RULE_ADMIN_API,"},{"line_number":52,"context_line":")"}],"source_content_type":"text/x-python","patch_set":10,"id":"f781ddcb_ca25d38e","line":49,"updated":"2021-09-07 21:46:41.000000000","message":"This can be deleted (RULE_ADMIN_API is retained in xena).","commit_id":"8f655c998eb3bdecb0c63c0350bf0a687c35b62e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe2471cde42274f10f7f2487fa20d3c24eebc2f9","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        # FIXME(lbragstad): Deprecate this check in favor of system-scope"},{"line_number":59,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":60,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":61,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":62,"context_line":"        description\u003d\"List group snapshots.\","},{"line_number":63,"context_line":"        operations\u003d["},{"line_number":64,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":10,"id":"bcfd06ce_ad29c6a5","line":61,"updated":"2021-09-07 21:46:41.000000000","message":"Based on policy persona matrix, this should be SYSTEM_READER_OR_PROJECT_READER","commit_id":"8f655c998eb3bdecb0c63c0350bf0a687c35b62e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe2471cde42274f10f7f2487fa20d3c24eebc2f9","unresolved":true,"context_lines":[{"line_number":92,"context_line":"        # FIXME(lbragstad): Deprecate this check in favor of system-scope"},{"line_number":93,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":94,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":95,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":96,"context_line":"        description\u003d\"Show group snapshot.\","},{"line_number":97,"context_line":"        operations\u003d["},{"line_number":98,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":10,"id":"5cefd3bb_ec4fe423","line":95,"updated":"2021-09-07 21:46:41.000000000","message":"Based on policy persona matrix, this should be SYSTEM_READER_OR_PROJECT_READER","commit_id":"8f655c998eb3bdecb0c63c0350bf0a687c35b62e"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e5b4e350157a264e771ef2298ebf17d18bf446b8","unresolved":true,"context_lines":[{"line_number":51,"context_line":"group_snapshots_policies \u003d ["},{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dGET_ALL_POLICY,"},{"line_number":54,"context_line":"        # FIXME(lbragstad): Deprecate this check in favor of system-scope"},{"line_number":55,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":56,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":57,"context_line":"        check_str\u003dbase.SYSTEM_READER_OR_PROJECT_READER,"},{"line_number":58,"context_line":"        description\u003d\"List group snapshots.\","}],"source_content_type":"text/x-python","patch_set":16,"id":"8d189737_8d668ad7","line":55,"range":{"start_line":54,"start_character":28,"end_line":55,"end_character":18},"updated":"2021-09-13 14:36:33.000000000","message":"I\u0027m not sure what the comment means","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e5b4e350157a264e771ef2298ebf17d18bf446b8","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dGET_ALL_POLICY,"},{"line_number":54,"context_line":"        # FIXME(lbragstad): Deprecate this check in favor of system-scope"},{"line_number":55,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":56,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":57,"context_line":"        check_str\u003dbase.SYSTEM_READER_OR_PROJECT_READER,"},{"line_number":58,"context_line":"        description\u003d\"List group snapshots.\","},{"line_number":59,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":16,"id":"44e3ec07_4ec5c445","line":56,"range":{"start_line":55,"start_character":23,"end_line":56,"end_character":74},"updated":"2021-09-13 14:36:33.000000000","message":"we are not adding scope types in Xena and not sure where we are in the discussion of relaxing project IDs in url i.e. if we are moving forward with that approach or not","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c44038bc75be4e3e03fa466728bc2ccaea9eeb30","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":53,"context_line":"        name\u003dGET_ALL_POLICY,"},{"line_number":54,"context_line":"        # FIXME(lbragstad): Deprecate this check in favor of system-scope"},{"line_number":55,"context_line":"        # personas and remove project from scope_types after cinder relaxes"},{"line_number":56,"context_line":"        # assumptions about project IDs being present in the API URL path."},{"line_number":57,"context_line":"        check_str\u003dbase.SYSTEM_READER_OR_PROJECT_READER,"},{"line_number":58,"context_line":"        description\u003d\"List group snapshots.\","},{"line_number":59,"context_line":"        operations\u003d["}],"source_content_type":"text/x-python","patch_set":16,"id":"0cfe067d_f17637ad","line":56,"range":{"start_line":55,"start_character":23,"end_line":56,"end_character":74},"in_reply_to":"44e3ec07_4ec5c445","updated":"2021-09-13 16:12:50.000000000","message":"You\u0027re right, these fixmes have been deleted on the latest patch.","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"}],"cinder/tests/unit/api/v3/test_volumes.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ecbdf9d90572edb41556135b30e23a90185abf8e","unresolved":true,"context_lines":[{"line_number":1032,"context_line":"        req.headers \u003d mv.get_mv_header(mv.VOLUME_REVERT)"},{"line_number":1033,"context_line":"        req.api_version_request \u003d mv.get_api_version("},{"line_number":1034,"context_line":"            mv.VOLUME_REVERT)"},{"line_number":1035,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":1036,"context_line":"        # update volume\u0027s status failed"},{"line_number":1037,"context_line":"        mock_update.side_effect \u003d [False, True]"},{"line_number":1038,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"d4ca6469_446ecad0","line":1035,"updated":"2021-09-15 12:51:19.000000000","message":"This is necessary because change Iba63f8d88f2fc82 removed \"volume:revert_to_snapshot\": \"\" from tests/unit/policy.yaml","commit_id":"f91c4ba8288b767d9cebdb3e3d42955130fc9862"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ecbdf9d90572edb41556135b30e23a90185abf8e","unresolved":true,"context_lines":[{"line_number":1040,"context_line":"                          self.controller.revert,"},{"line_number":1041,"context_line":"                          req,"},{"line_number":1042,"context_line":"                          fake_volume[\u0027id\u0027],"},{"line_number":1043,"context_line":"                          {\u0027revert\u0027: {\u0027snapshot_id\u0027: fake_snapshot[\u0027id\u0027]}})"},{"line_number":1044,"context_line":""},{"line_number":1045,"context_line":"        # update snapshot\u0027s status failed"},{"line_number":1046,"context_line":"        mock_update.side_effect \u003d [True, False]"}],"source_content_type":"text/x-python","patch_set":19,"id":"e7dce4b7_a9c4ad51","line":1043,"updated":"2021-09-15 12:51:19.000000000","message":"This is the line where the failure was, I re-formatted it so that I could see what exactly was being called.","commit_id":"f91c4ba8288b767d9cebdb3e3d42955130fc9862"}],"cinder/tests/unit/policies/test_group_snapshots.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e5b4e350157a264e771ef2298ebf17d18bf446b8","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"},{"line_number":166,"context_line":"        api \u003d group_api.API()"},{"line_number":167,"context_line":"        ctxt \u003d self.create_context(user_id)"},{"line_number":168,"context_line":"        if user_id in self.authorized_members:"},{"line_number":169,"context_line":"            api.update_group_snapshot(ctxt, group_snapshot, {})"},{"line_number":170,"context_line":"        elif user_id in self.unauthorized_members:"},{"line_number":171,"context_line":"            self.assertRaises(exception.PolicyNotAuthorized,"},{"line_number":172,"context_line":"                              api.update_group_snapshot,"},{"line_number":173,"context_line":"                              ctxt,"},{"line_number":174,"context_line":"                              group_snapshot,"},{"line_number":175,"context_line":"                              {})"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            self.fail(f\u0027{user_id} not in authorized or unauthorized members\u0027)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @ddt.data(*base.all_users)"},{"line_number":180,"context_line":"    def test_delete_group_snapshot_policy(self, user_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"0bf7bef3_5b4ee6ac","line":177,"range":{"start_line":168,"start_character":8,"end_line":177,"end_character":77},"updated":"2021-09-13 14:36:33.000000000","message":"shouldn\u0027t this be automatically handled by our policy test framework?","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d5a0ed92d6951880c5d9e48d75c4d5778edb8572","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"},{"line_number":166,"context_line":"        api \u003d group_api.API()"},{"line_number":167,"context_line":"        ctxt \u003d self.create_context(user_id)"},{"line_number":168,"context_line":"        if user_id in self.authorized_members:"},{"line_number":169,"context_line":"            api.update_group_snapshot(ctxt, group_snapshot, {})"},{"line_number":170,"context_line":"        elif user_id in self.unauthorized_members:"},{"line_number":171,"context_line":"            self.assertRaises(exception.PolicyNotAuthorized,"},{"line_number":172,"context_line":"                              api.update_group_snapshot,"},{"line_number":173,"context_line":"                              ctxt,"},{"line_number":174,"context_line":"                              group_snapshot,"},{"line_number":175,"context_line":"                              {})"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            self.fail(f\u0027{user_id} not in authorized or unauthorized members\u0027)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @ddt.data(*base.all_users)"},{"line_number":180,"context_line":"    def test_delete_group_snapshot_policy(self, user_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"2aa6ebea_dd2b2b61","line":177,"range":{"start_line":168,"start_character":8,"end_line":177,"end_character":77},"in_reply_to":"0bf7bef3_5b4ee6ac","updated":"2021-09-13 16:09:59.000000000","message":"Not really.  This is a really weird case because the there\u0027s no REST API controller that exposes this method, so hopefully this doesn\u0027t happen enough to modify the framework to handle it.\n\nI almost skipped this test, but given that we do expose the policy (though no way to trigger it directly), I figured it was worth adding the test.","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3d0de31f60648da6ff20fd937c2a191259f89dd2","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"},{"line_number":166,"context_line":"        api \u003d group_api.API()"},{"line_number":167,"context_line":"        ctxt \u003d self.create_context(user_id)"},{"line_number":168,"context_line":"        if user_id in self.authorized_members:"},{"line_number":169,"context_line":"            api.update_group_snapshot(ctxt, group_snapshot, {})"},{"line_number":170,"context_line":"        elif user_id in self.unauthorized_members:"},{"line_number":171,"context_line":"            self.assertRaises(exception.PolicyNotAuthorized,"},{"line_number":172,"context_line":"                              api.update_group_snapshot,"},{"line_number":173,"context_line":"                              ctxt,"},{"line_number":174,"context_line":"                              group_snapshot,"},{"line_number":175,"context_line":"                              {})"},{"line_number":176,"context_line":"        else:"},{"line_number":177,"context_line":"            self.fail(f\u0027{user_id} not in authorized or unauthorized members\u0027)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @ddt.data(*base.all_users)"},{"line_number":180,"context_line":"    def test_delete_group_snapshot_policy(self, user_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"23db9507_4035f3da","line":177,"range":{"start_line":168,"start_character":8,"end_line":177,"end_character":77},"in_reply_to":"2aa6ebea_dd2b2b61","updated":"2021-09-13 17:35:52.000000000","message":"Ack, makes sense","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e5b4e350157a264e771ef2298ebf17d18bf446b8","unresolved":true,"context_lines":[{"line_number":209,"context_line":"        url \u003d \u0027%s/detail\u0027 % (self.api_path)"},{"line_number":210,"context_line":"        version \u003d mv.GROUP_SNAPSHOTS"},{"line_number":211,"context_line":"        req \u003d fake_api.HTTPRequest.blank(url, version\u003dversion)"},{"line_number":212,"context_line":"        req.method \u003d \u0027GET\u0027"},{"line_number":213,"context_line":"        unauthorized_exceptions \u003d []"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        # NOTE: we intentionally don\u0027t use the un/authorized_readers"}],"source_content_type":"text/x-python","patch_set":16,"id":"169dcb19_f2bb80ae","line":212,"range":{"start_line":212,"start_character":8,"end_line":212,"end_character":26},"updated":"2021-09-13 14:36:33.000000000","message":"it\u0027s the default method so not needed","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d5a0ed92d6951880c5d9e48d75c4d5778edb8572","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        url \u003d \u0027%s/detail\u0027 % (self.api_path)"},{"line_number":210,"context_line":"        version \u003d mv.GROUP_SNAPSHOTS"},{"line_number":211,"context_line":"        req \u003d fake_api.HTTPRequest.blank(url, version\u003dversion)"},{"line_number":212,"context_line":"        req.method \u003d \u0027GET\u0027"},{"line_number":213,"context_line":"        unauthorized_exceptions \u003d []"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        # NOTE: we intentionally don\u0027t use the un/authorized_readers"}],"source_content_type":"text/x-python","patch_set":16,"id":"9cc121cd_2b9253e1","line":212,"range":{"start_line":212,"start_character":8,"end_line":212,"end_character":26},"in_reply_to":"169dcb19_f2bb80ae","updated":"2021-09-13 16:09:59.000000000","message":"Done","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e5b4e350157a264e771ef2298ebf17d18bf446b8","unresolved":true,"context_lines":[{"line_number":238,"context_line":"    @ddt.data(*base.all_users)"},{"line_number":239,"context_line":"    def test_get_group_snapshot_policy(self, user_id):"},{"line_number":240,"context_line":"        \"\"\"Show group snapshot.\"\"\""},{"line_number":241,"context_line":"        volume_type \u003d test_utils.create_volume_type(self.project_admin_context,"},{"line_number":242,"context_line":"                                                    name\u003d\"test_get_group_snap\")"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        group \u003d test_utils.create_group(self.project_admin_context,"},{"line_number":245,"context_line":"                                        status\u003dfields.GroupStatus.AVAILABLE,"},{"line_number":246,"context_line":"                                        group_type_id\u003dfake.GROUP_TYPE_ID,"},{"line_number":247,"context_line":"                                        volume_type_ids\u003d[volume_type.id])"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        test_utils.create_volume(self.project_member_context,"},{"line_number":250,"context_line":"                                 group_id\u003dgroup.id,"},{"line_number":251,"context_line":"                                 testcase_instance\u003dself,"},{"line_number":252,"context_line":"                                 volume_type_id\u003dvolume_type.id)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        group_snapshot \u003d test_utils.create_group_snapshot("},{"line_number":255,"context_line":"            self.project_admin_context,"},{"line_number":256,"context_line":"            group_id\u003dgroup.id,"},{"line_number":257,"context_line":"            status\u003dfields.GroupSnapshotStatus.AVAILABLE,"},{"line_number":258,"context_line":"            group_type_id\u003dgroup.group_type_id)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        rule_name \u003d group_snap_policies.GET_POLICY"},{"line_number":261,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"}],"source_content_type":"text/x-python","patch_set":16,"id":"9e1f28b8_6afcb2c5","line":258,"range":{"start_line":241,"start_character":8,"end_line":258,"end_character":46},"updated":"2021-09-13 14:36:33.000000000","message":"why aren\u0027t we using _create_group_snapshot method here?","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d5a0ed92d6951880c5d9e48d75c4d5778edb8572","unresolved":true,"context_lines":[{"line_number":238,"context_line":"    @ddt.data(*base.all_users)"},{"line_number":239,"context_line":"    def test_get_group_snapshot_policy(self, user_id):"},{"line_number":240,"context_line":"        \"\"\"Show group snapshot.\"\"\""},{"line_number":241,"context_line":"        volume_type \u003d test_utils.create_volume_type(self.project_admin_context,"},{"line_number":242,"context_line":"                                                    name\u003d\"test_get_group_snap\")"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        group \u003d test_utils.create_group(self.project_admin_context,"},{"line_number":245,"context_line":"                                        status\u003dfields.GroupStatus.AVAILABLE,"},{"line_number":246,"context_line":"                                        group_type_id\u003dfake.GROUP_TYPE_ID,"},{"line_number":247,"context_line":"                                        volume_type_ids\u003d[volume_type.id])"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        test_utils.create_volume(self.project_member_context,"},{"line_number":250,"context_line":"                                 group_id\u003dgroup.id,"},{"line_number":251,"context_line":"                                 testcase_instance\u003dself,"},{"line_number":252,"context_line":"                                 volume_type_id\u003dvolume_type.id)"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        group_snapshot \u003d test_utils.create_group_snapshot("},{"line_number":255,"context_line":"            self.project_admin_context,"},{"line_number":256,"context_line":"            group_id\u003dgroup.id,"},{"line_number":257,"context_line":"            status\u003dfields.GroupSnapshotStatus.AVAILABLE,"},{"line_number":258,"context_line":"            group_type_id\u003dgroup.group_type_id)"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        rule_name \u003d group_snap_policies.GET_POLICY"},{"line_number":261,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"}],"source_content_type":"text/x-python","patch_set":16,"id":"dd09ab98_ef600388","line":258,"range":{"start_line":241,"start_character":8,"end_line":258,"end_character":46},"in_reply_to":"9e1f28b8_6afcb2c5","updated":"2021-09-13 16:09:59.000000000","message":"Not sure, we use it at line 261!","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e5b4e350157a264e771ef2298ebf17d18bf446b8","unresolved":true,"context_lines":[{"line_number":261,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"},{"line_number":262,"context_line":"        url \u003d \u0027%s/%s\u0027 % (self.api_path, group_snapshot.id)"},{"line_number":263,"context_line":"        req \u003d fake_api.HTTPRequest.blank(url, version\u003dself.api_version)"},{"line_number":264,"context_line":"        req.method \u003d \u0027GET\u0027"},{"line_number":265,"context_line":"        unauthorized_exceptions \u003d [exception.GroupSnapshotNotFound]"},{"line_number":266,"context_line":"        self.common_policy_check(user_id,"},{"line_number":267,"context_line":"                                 self.authorized_readers,"}],"source_content_type":"text/x-python","patch_set":16,"id":"212e4f51_8bf0ffc8","line":264,"range":{"start_line":264,"start_character":0,"end_line":264,"end_character":26},"updated":"2021-09-13 14:36:33.000000000","message":"not needed","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d5a0ed92d6951880c5d9e48d75c4d5778edb8572","unresolved":false,"context_lines":[{"line_number":261,"context_line":"        group_snapshot \u003d self._create_group_snapshot()"},{"line_number":262,"context_line":"        url \u003d \u0027%s/%s\u0027 % (self.api_path, group_snapshot.id)"},{"line_number":263,"context_line":"        req \u003d fake_api.HTTPRequest.blank(url, version\u003dself.api_version)"},{"line_number":264,"context_line":"        req.method \u003d \u0027GET\u0027"},{"line_number":265,"context_line":"        unauthorized_exceptions \u003d [exception.GroupSnapshotNotFound]"},{"line_number":266,"context_line":"        self.common_policy_check(user_id,"},{"line_number":267,"context_line":"                                 self.authorized_readers,"}],"source_content_type":"text/x-python","patch_set":16,"id":"729b3c75_11f9fa22","line":264,"range":{"start_line":264,"start_character":0,"end_line":264,"end_character":26},"in_reply_to":"212e4f51_8bf0ffc8","updated":"2021-09-13 16:09:59.000000000","message":"Done","commit_id":"648088e2a46a44e961f24655b959e6ad21c710f5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"aff6f3b7bd4e622d815b5ba36e9e4c542bf07b95","unresolved":true,"context_lines":[{"line_number":149,"context_line":"        }"},{"line_number":150,"context_line":"        unauthorized_exceptions \u003d [exception.GroupNotFound]"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        # Relax the group:get policy in order to get past that check."},{"line_number":153,"context_line":"        self.policy.set_rules({group_policies.GET_POLICY: \"\"},"},{"line_number":154,"context_line":"                              overwrite\u003dFalse)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.common_policy_check(user_id,"},{"line_number":157,"context_line":"                                 self.authorized_users,"},{"line_number":158,"context_line":"                                 self.unauthorized_users,"}],"source_content_type":"text/x-python","patch_set":18,"id":"017ff587_8302a56b","line":155,"range":{"start_line":152,"start_character":0,"end_line":155,"end_character":0},"updated":"2021-09-14 00:48:20.000000000","message":"Note: this is needed because Change I4216a0c1d562fca1b99027fdd67f8f3aaa134514 removed the overriding definition of \"group:get\": \"\" from tests/unit/policy.yaml","commit_id":"af7ddbaf5a8c63f7d9d059f95ed13d276557f75e"}]}
