)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"8f48e9f94d65195374055fa5a55b2e4a4d51a87d","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Implements bp: modifying-switching-role-mechanism"},{"line_number":23,"context_line":"Closes-Bug: #1664600"},{"line_number":24,"context_line":"Closes-Bug: #1664278"},{"line_number":25,"context_line":"Co-Authored-By: Felipe Monteiro \u003cfelipe.monteiro@att.com\u003e"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ic665d35332def6b6ec7b0065d1ebe65514a926b9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba2be162_aceef6b1","line":25,"updated":"2017-03-02 05:06:27.000000000","message":"Any specific need of this ?\nThis would have come as a review comment.","commit_id":"476d7ef5fe1c937ae3b55919b613b53191ea0f8c"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"13d416fc2cbe04c7a568e29a87bf6c88712148b5","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Implements bp: modifying-switching-role-mechanism"},{"line_number":23,"context_line":"Closes-Bug: #1664600"},{"line_number":24,"context_line":"Closes-Bug: #1664278"},{"line_number":25,"context_line":"Co-Authored-By: Felipe Monteiro \u003cfelipe.monteiro@att.com\u003e"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: Ic665d35332def6b6ec7b0065d1ebe65514a926b9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba2be162_aa50725f","line":25,"in_reply_to":"ba2be162_aceef6b1","updated":"2017-03-02 16:13:53.000000000","message":"Felipe did significant work in getting this patch passed Jenkins. He absolutely deserves to be added as co-author. Please add him back in.","commit_id":"476d7ef5fe1c937ae3b55919b613b53191ea0f8c"}],"patrole_tempest_plugin/rbac_utils.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"8650d6c4c1ca2b3f3baca4e305f238f20a7ea37c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        return cls._instances[cls]"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"@six.add_metaclass(Singleton)"},{"line_number":42,"context_line":"class RbacUtils(object):"},{"line_number":43,"context_line":"    def __init__(self):"},{"line_number":44,"context_line":"        RbacUtils.dictionary \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_a18e9b76","side":"PARENT","line":41,"range":{"start_line":41,"start_character":0,"end_line":41,"end_character":29},"updated":"2017-02-14 21:40:38.000000000","message":"I personally having this be a Singleton. Is there a reason why this was removed?","commit_id":"cf3a3bb0b375975dea02c45ae1b2522d42ded332"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        creds_provider \u003d super(RbacUtils, cls)._get_credentials_provider()"},{"line_number":31,"context_line":"        cls.creds_client \u003d creds_provider.creds_client"},{"line_number":32,"context_line":"        cls.available_roles \u003d cls.creds_client.roles_client.list_roles()"},{"line_number":33,"context_line":"        for item in cls.available_roles[\u0027roles\u0027]:"},{"line_number":34,"context_line":"            if item[\u0027name\u0027] \u003d\u003d CONF.rbac.rbac_test_role:"},{"line_number":35,"context_line":"                cls.rbac_role_id \u003d item[\u0027id\u0027]"},{"line_number":36,"context_line":"            if item[\u0027name\u0027] \u003d\u003d \u0027admin\u0027:"},{"line_number":37,"context_line":"                cls.admin_role_id \u003d item[\u0027id\u0027]"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def clear_user_roles(cls, user_id, tenant_id):"},{"line_number":40,"context_line":"        roles \u003d cls.creds_client.roles_client.list_user_roles_on_project("}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_4ed42ebc","line":37,"range":{"start_line":33,"start_character":8,"end_line":37,"end_character":46},"updated":"2017-02-14 21:38:39.000000000","message":"I would additionally add a check after this block of code that checks whether cls.admin_role_id and cls.rbac_role_id are not None. That is,\n\nif not cls.admin_role_id or not cls.rbac_role_id:\n    # define msg here\n    raise rbac_exceptions.RbacResourceSetupFailed(msg)","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def switch_role(cls, self, switchToRbacRole\u003dNone):"},{"line_number":48,"context_line":"        LOG.debug(\u0027Switching role to: %s\u0027, switchToRbacRole)"},{"line_number":49,"context_line":"        if switchToRbacRole is None:"},{"line_number":50,"context_line":"            return"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            user_id \u003d self.auth_provider.credentials.user_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_6eb2d295","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":18},"updated":"2017-02-14 21:38:39.000000000","message":"I think it would better to add a validate_rbac_role method to rbac_utils or something; that is:\n\nif switchToRbacRole not in [True, False]:\n    # define msg here\n    raise rbac_exception.RbacActionFailed(msg)","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            raise"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        finally:"},{"line_number":70,"context_line":"                self.auth_provider.clear_auth()"},{"line_number":71,"context_line":"                # Sleep to avoid 401 errors caused by rounding"},{"line_number":72,"context_line":"                # In timing of fernet token creation"},{"line_number":73,"context_line":"                time.sleep(1)"},{"line_number":74,"context_line":"                self.auth_provider.set_auth()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"rbac_utils \u003d RbacUtils()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_8e7626d5","line":74,"range":{"start_line":70,"start_character":16,"end_line":74,"end_character":45},"updated":"2017-02-14 21:38:39.000000000","message":"This level of indentation is wrong. It looks like it is currently 8 spaces.","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}],"patrole_tempest_plugin/tests/api/compute/rbac_base.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    @classmethod"},{"line_number":57,"context_line":"    def setup_credentials(cls):"},{"line_number":58,"context_line":"        super(BaseV2ComputeAdminRbacTest, cls).setup_credentials()"},{"line_number":59,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @classmethod"},{"line_number":62,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_4e47ce76","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"I think that this is deceptive and should be avoided. Instead, all the clients in all the tests should use the os_adm namespace instead.","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}],"patrole_tempest_plugin/tests/api/identity/v2/rbac_base.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            raise cls.skipException("},{"line_number":33,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def setup_credentials(cls):"},{"line_number":37,"context_line":"        super(BaseIdentityV2AdminRbacTest, cls).setup_credentials()"},{"line_number":38,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_ee32420f","line":38,"range":{"start_line":35,"start_character":0,"end_line":38,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py.","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}],"patrole_tempest_plugin/tests/api/identity/v3/rbac_base.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            raise cls.skipException("},{"line_number":33,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def setup_credentials(cls):"},{"line_number":37,"context_line":"        super(BaseIdentityV3RbacAdminTest, cls).setup_credentials()"},{"line_number":38,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_0e3876ee","line":38,"range":{"start_line":35,"start_character":0,"end_line":38,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}],"patrole_tempest_plugin/tests/api/image/rbac_base.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            raise cls.skipException("},{"line_number":30,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @classmethod"},{"line_number":33,"context_line":"    def setup_credentials(cls):"},{"line_number":34,"context_line":"        super(BaseV1ImageRbacTest, cls).setup_credentials()"},{"line_number":35,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @classmethod"},{"line_number":38,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_4e3eeeda","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            raise cls.skipException("},{"line_number":53,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @classmethod"},{"line_number":56,"context_line":"    def setup_credentials(cls):"},{"line_number":57,"context_line":"        super(BaseV2ImageRbacTest, cls).setup_credentials()"},{"line_number":58,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @classmethod"},{"line_number":61,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_6e2732ca","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}],"patrole_tempest_plugin/tests/api/network/rbac_base.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            raise cls.skipException("},{"line_number":31,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"},{"line_number":34,"context_line":"    def setup_credentials(cls):"},{"line_number":35,"context_line":"        super(BaseNetworkRbacTest, cls).setup_credentials()"},{"line_number":36,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @classmethod"},{"line_number":39,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_ae2daaa9","line":36,"range":{"start_line":33,"start_character":0,"end_line":36,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}],"patrole_tempest_plugin/tests/api/volume/rbac_base.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            raise cls.skipException("},{"line_number":29,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def setup_credentials(cls):"},{"line_number":33,"context_line":"        super(BaseVolumeRbacTest, cls).setup_credentials()"},{"line_number":34,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_0e1f966c","line":34,"range":{"start_line":31,"start_character":0,"end_line":34,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"29aeffe09ac9dac8b7c6917016ec93c1a327fdd7","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise cls.skipException("},{"line_number":52,"context_line":"                \"%s skipped as RBAC Flag not enabled\" % cls.__name__)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @classmethod"},{"line_number":55,"context_line":"    def setup_credentials(cls):"},{"line_number":56,"context_line":"        super(BaseVolumeAdminRbacTest, cls).setup_credentials()"},{"line_number":57,"context_line":"        cls.os \u003d cls.os_adm"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_4e150e47","line":57,"range":{"start_line":54,"start_character":0,"end_line":57,"end_character":27},"updated":"2017-02-14 21:38:39.000000000","message":"See comment in patrole_tempest_plugin/tests/api/compute/rbac_base.py","commit_id":"77d79cb25b57f413543550531861d4946579c4d1"}]}
