)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"319ffe1234fba40cdfbe958129ba155ba91b3c9f","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[0]https://github.com/openstack/cinder/blob/0cf910d4345c000e8c306b1cb2b2dd291975cf71/cinder/policies/manageable_snapshots.py"},{"line_number":13,"context_line":"[1]https://developer.openstack.org/api-ref/block-storage/v3/#manage-an-existing-snapshot"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Iafbbd33e96f77a14591170d4f8eadc1a2c3c1ec8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df87a7cf_c6767d3f","line":14,"updated":"2017-12-15 17:57:07.000000000","message":"I also noticed: https://review.openstack.org/#/c/528157/\n\nIf Deepak worked with you on this, you can add:\n\nCo-Authored-By: \t\nDeepak Mourya \u003cdeepak.mourya@nectechnologies.in\u003e\n\nTo the commit message.","commit_id":"fe36cfd6067261c7941d5e3504d616e561f2fbf7"}],"patrole_tempest_plugin/tests/api/volume/test_snapshot_manage_rbac.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b109420a50150b967b332302397ac0a51b40df2b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017 AT\u0026T Corporation."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_812aa47b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":34},"updated":"2017-12-15 15:16:33.000000000","message":"Just noticed that this is incorrect. Provide the copyright of your company instead :)","commit_id":"fe36cfd6067261c7941d5e3504d616e561f2fbf7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b109420a50150b967b332302397ac0a51b40df2b","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class SnapshotManageRbacTest(rbac_base.BaseVolumeRbacTest):"},{"line_number":27,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_d62394bd","line":27,"range":{"start_line":27,"start_character":4,"end_line":27,"end_character":38},"updated":"2017-12-15 15:16:33.000000000","message":"This can be removed.","commit_id":"fe36cfd6067261c7941d5e3504d616e561f2fbf7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b109420a50150b967b332302397ac0a51b40df2b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def setup_clients(cls):"},{"line_number":37,"context_line":"        super(SnapshotManageRbacTest, cls).setup_clients()"},{"line_number":38,"context_line":"        cls.snapshot_manage_client \u003d cls.os_primary.snapshot_manage_v2_client"},{"line_number":39,"context_line":"        cls.admin_snapshots_client \u003d cls.os_admin.snapshots_v3_client"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @classmethod"},{"line_number":42,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_81014407","line":39,"range":{"start_line":39,"start_character":8,"end_line":39,"end_character":69},"updated":"2017-12-15 15:16:33.000000000","message":"This can be removed too, see below.","commit_id":"fe36cfd6067261c7941d5e3504d616e561f2fbf7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"b109420a50150b967b332302397ac0a51b40df2b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def test_unmanage_snapshot_rbac(self):"},{"line_number":75,"context_line":"        with self.rbac_utils.override_role(self):"},{"line_number":76,"context_line":"            self.snapshots_client.unmanage_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":77,"context_line":"            self.admin_snapshots_client.wait_for_resource_deletion("},{"line_number":78,"context_line":"                self.snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"df87a7cf_163a5ce6","line":78,"range":{"start_line":77,"start_character":12,"end_line":78,"end_character":36},"updated":"2017-12-15 15:16:33.000000000","message":"This is one of the reasons why we added override_role, so we wouldn\u0027t have to use admin credentials to wait.\n\nWith switch roles this was necessary because:\n\n    def test_foo():\n        # admin role already set\n        self.rbac_utils.switch_role(self, True):\n        # test role switched to\n        self.bar_client.delete_action()\n        # test role still switched to, which might not\n        # have permissions to do the wait, since that calls\n        # a different policy so we used os_admin\n        self.os_admin.bar_client.wait_for_resource_deletion()\n\nNow with override_role this is no longer necessary:\n\n    def test_foo():\n        # admin role already set\n        with self.rbac_utils.override_role(self):\n            # test role switched to\n            self.bar_client.delete_action()\n        # admin role set *again*... so we don\u0027t need to use\n        # os_admin\n        self.bar_client.wait_for_resource_deletion()\n\nSo the test should be refactored to:\n\n    with self.rbac_utils.override_role(self):\n        self.snapshots_client.unmanage_snapshot(\n            self.snapshot[\u0027id\u0027])\n    self.snapshots_client.wait_for_resource_deletion(\n        self.snapshot[\u0027id\u0027])","commit_id":"fe36cfd6067261c7941d5e3504d616e561f2fbf7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"ae87ac79a23159b5422d1407a5c110121450ded9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(SnapshotManageRbacTest, cls).skip_checks()"},{"line_number":31,"context_line":"        if not CONF.volume_feature_enabled.manage_snapshot:"},{"line_number":32,"context_line":"            raise cls.skipException(\"Manage snapshot tests are disabled\")"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @classmethod"},{"line_number":35,"context_line":"    def setup_clients(cls):"},{"line_number":36,"context_line":"        super(SnapshotManageRbacTest, cls).setup_clients()"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_d19a95c3","line":33,"updated":"2017-12-18 14:50:51.000000000","message":"May we also add to skip_checks:\n\n        if len(CONF.volume.manage_snapshot_ref) !\u003d 2:\n            msg \u003d (\"Manage snapshot ref is not correctly configured, \"\n                   \"it should be a list of two elements\")\n            raise exceptions.InvalidConfiguration(msg)","commit_id":"fa791633196439d74163518fe89a6f82037bc321"}]}
