)]}'
{"patrole_tempest_plugin/tests/api/volume/test_snapshots_actions_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6f7f694b8257dd18dd33703b06ef0c3eb5b34236","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        cls.volume \u003d cls.create_volume()"},{"line_number":37,"context_line":"        cls.snapshot \u003d cls.create_snapshot(volume_id\u003dcls.volume[\u0027id\u0027])"},{"line_number":38,"context_line":"        cls.snapshot_id \u003d cls.snapshot[\u0027id\u0027]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @rbac_rule_validation.action("},{"line_number":41,"context_line":"        service\u003d\"cinder\","},{"line_number":42,"context_line":"        rule\u003d\"volume_extension:snapshot_admin_actions:reset_status\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_d33e068a","line":39,"updated":"2017-12-07 16:35:15.000000000","message":"We need to add this:\n\n    def tearDown(self):\n        # Set snapshot\u0027s status to available after test\n        status \u003d \u0027available\u0027\n        self.snapshots_client.reset_snapshot_status(self.snapshot_id,\n                                                          status)\n        waiters.wait_for_volume_resource_status(self.snapshots_client,\n                                                self.snapshot_id, status)\n        super(SnapshotsActionsV3RbacTest, self).tearDown()","commit_id":"62175e5a80d28f358e58f7dc6c3c35a097322cfe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6f7f694b8257dd18dd33703b06ef0c3eb5b34236","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":46,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":47,"context_line":"        self.snapshots_client.reset_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":48,"context_line":"                                                    status)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @rbac_rule_validation.action("},{"line_number":51,"context_line":"        service\u003d\"cinder\","}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_93d15e26","line":48,"updated":"2017-12-07 16:35:15.000000000","message":"Probably also need to add on L48:\n\nwaiters.wait_for_volume_resource_status(self.snapshots_client,\n                                                self.snapshot_id, status)","commit_id":"62175e5a80d28f358e58f7dc6c3c35a097322cfe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6f7f694b8257dd18dd33703b06ef0c3eb5b34236","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        service\u003d\"cinder\","},{"line_number":64,"context_line":"        rule\u003d\"snapshot_extension:snapshot_actions:update_snapshot_status\")"},{"line_number":65,"context_line":"    def test_update_snapshot_status(self):"},{"line_number":66,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":67,"context_line":"        status \u003d \u0027creating\u0027"},{"line_number":68,"context_line":"        self.snapshots_client.reset_snapshot_status("},{"line_number":69,"context_line":"            self.snapshot[\u0027id\u0027], status)"},{"line_number":70,"context_line":"        self.snapshots_client.update_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":71,"context_line":"                                                     status\u003d\u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_d3da8649","line":71,"range":{"start_line":66,"start_character":8,"end_line":71,"end_character":68},"updated":"2017-12-07 16:35:15.000000000","message":"The test must be refactored so that all functions *not* related to the rule above are called before `switch_role`:\n        \n        status \u003d \u0027creating\u0027\n        self.snapshots_client.reset_snapshot_status(\n            self.snapshot[\u0027id\u0027], status)\n        waiters.wait_for_volume_resource_status(self.snapshots_client,\n                                                self.snapshot_id, status)\n\n        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)\n        self.snapshots_client.update_snapshot_status(self.snapshot_id, status\u003d\u0027error\u0027)","commit_id":"62175e5a80d28f358e58f7dc6c3c35a097322cfe"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"49fbfdbcd310e8b3383730aefe8f29d2a9ac04f3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":57,"context_line":"        self.snapshots_client.reset_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":58,"context_line":"                                                    status)"},{"line_number":59,"context_line":"        waiters.wait_for_volume_resource_status(self.snapshots_client,"},{"line_number":60,"context_line":"                                                self.snapshot[\u0027id\u0027], status)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    @rbac_rule_validation.action("}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_f8e09e28","line":59,"range":{"start_line":59,"start_character":48,"end_line":59,"end_character":68},"updated":"2017-12-09 02:58:08.000000000","message":"This should actually be `self.os_admin.snapshots_client` without override_role.\n\nCan we change this to:\n\n    with self.rbac_utils.switch_role(self):\n        self.snapshots_client.reset_snapshot_status(\n            self.snapshot[\u0027id\u0027], status)\n    waiters.wait_for_volume_resource_status(\n        self.snapshots_client, self.snapshot[\u0027id\u0027], status)","commit_id":"9045955e538877c744c54bc6ea0d5f804d0a0c49"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5f0f724c30a79cf37b17d3e588c6815f47ffafc3","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":57,"context_line":"        self.snapshots_client.reset_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":58,"context_line":"                                                    status)"},{"line_number":59,"context_line":"        waiters.wait_for_volume_resource_status(self.snapshots_client,"},{"line_number":60,"context_line":"                                                self.snapshot[\u0027id\u0027], status)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    @rbac_rule_validation.action("}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_95a6efaa","line":59,"range":{"start_line":59,"start_character":48,"end_line":59,"end_character":68},"in_reply_to":"df87a7cf_f8e09e28","updated":"2017-12-10 18:10:41.000000000","message":"Sorry, example above should use override_role, not switch_role.","commit_id":"9045955e538877c744c54bc6ea0d5f804d0a0c49"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"49fbfdbcd310e8b3383730aefe8f29d2a9ac04f3","unresolved":false,"context_lines":[{"line_number":80,"context_line":"            self.snapshot[\u0027id\u0027], status)"},{"line_number":81,"context_line":"        waiters.wait_for_volume_resource_status(self.snapshots_client,"},{"line_number":82,"context_line":"                                                self.snapshot[\u0027id\u0027], status)"},{"line_number":83,"context_line":"        self.rbac_utils.switch_role(self, toggle_rbac_role\u003dTrue)"},{"line_number":84,"context_line":"        self.snapshots_client.update_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":85,"context_line":"                                                     status\u003d\u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_98d39260","line":85,"range":{"start_line":83,"start_character":8,"end_line":85,"end_character":68},"updated":"2017-12-09 02:58:08.000000000","message":"See above.","commit_id":"9045955e538877c744c54bc6ea0d5f804d0a0c49"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"7084ed3fc385486d065431775dd1566396b419c0","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        waiters.wait_for_volume_resource_status(self.snapshots_client,"},{"line_number":82,"context_line":"                                                self.snapshot[\u0027id\u0027], status)"},{"line_number":83,"context_line":"        with self.rbac_utils.override_role(self):"},{"line_number":84,"context_line":"            self.snapshots_client.reset_snapshot_status("},{"line_number":85,"context_line":"                self.snapshot[\u0027id\u0027], status)"},{"line_number":86,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":87,"context_line":"            self.snapshots_client, self.snapshot[\u0027id\u0027], status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df87a7cf_6a41f0a8","line":84,"range":{"start_line":84,"start_character":34,"end_line":84,"end_character":55},"updated":"2017-12-11 17:18:14.000000000","message":"update_snapshot_status\n\nWrong API call, that\u0027s why it\u0027s failing","commit_id":"dcd8df69ef87229aaadc0680df64ffbb2d36e882"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"7fe39a2d1d530a97b93652b96d3ceb8f3ce23f20","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                                self.snapshot[\u0027id\u0027], status)"},{"line_number":83,"context_line":"        with self.rbac_utils.override_role(self):"},{"line_number":84,"context_line":"            self.snapshots_client.update_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":85,"context_line":"                                                         status\u003d\"creating\")"},{"line_number":86,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":87,"context_line":"            self.snapshots_client, self.snapshot[\u0027id\u0027], status)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_87652a48","line":85,"range":{"start_line":85,"start_character":65,"end_line":85,"end_character":73},"updated":"2017-12-12 22:06:31.000000000","message":"So looks like going creating-\u003ecreating is valid: https://github.com/openstack/cinder/blob/31938d6dc63793fe104ffbc16a3cf08804b50037/cinder/api/contrib/snapshot_actions.py#L53\n\nAlthough one nit: I\u0027d personally prefer doing like \u0027available\u0027 or \u0027error\u0027. Or else this can be changed to status\u003dstatus since status \u003d \u0027creating\u0027 on L78.","commit_id":"b9e3fd8b89d7021955f202e7bba936b4979d0791"}]}
