)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"eacf4fce319840bbc67ff81ccb9cda781a1030a3","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reuse tempest to create admin client manager"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous code doesn\u0027t support PreProvisionedCredentialProvider, it"},{"line_number":10,"context_line":"was getting admin credentials from tempest config file which are not set"},{"line_number":11,"context_line":"when using test_accounts_file."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ia34d08ad659b095a114c27d6d596507f7922149a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"370b6927_4da8de2f","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":30},"updated":"2021-01-11 23:12:53.000000000","message":"it still risky to run patrole under PreProvisionedCredentialProvider as it can alter the role of pre provisioned cred\n\n- https://github.com/openstack/patrole/blob/a1e1ddc91c5c42878bcfdd23b9f9d634b6c78c23/patrole_tempest_plugin/rbac_utils.py#L261","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"}],"patrole_tempest_plugin/policy_authority.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"eacf4fce319840bbc67ff81ccb9cda781a1030a3","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PolicyAuthority(RbacAuthority):"},{"line_number":34,"context_line":"    \"\"\"A class that uses ``oslo.policy`` for validating RBAC.\"\"\""},{"line_number":35,"context_line":"    os_admin \u003d None"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self, project_id, user_id, service, extra_target_data\u003dNone):"},{"line_number":38,"context_line":"        \"\"\"Initialization of Policy Authority class."}],"source_content_type":"text/x-python","patch_set":6,"id":"2388ccaf_7095abd9","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":13},"updated":"2021-01-11 23:12:53.000000000","message":"or we can take this as __init__ param as mandatory arg.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"7d2b4b037260259a24bce15daf08f75cb1d16408","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PolicyAuthority(RbacAuthority):"},{"line_number":34,"context_line":"    \"\"\"A class that uses ``oslo.policy`` for validating RBAC.\"\"\""},{"line_number":35,"context_line":"    os_admin \u003d None"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self, project_id, user_id, service, extra_target_data\u003dNone):"},{"line_number":38,"context_line":"        \"\"\"Initialization of Policy Authority class."}],"source_content_type":"text/x-python","patch_set":6,"id":"c0dcca4e_219a9d8b","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":13},"in_reply_to":"2388ccaf_7095abd9","updated":"2021-01-16 10:49:57.000000000","message":"The reason to define `os_admin` as a class property is because the class method `validate_service` is the only place os_admin is referenced, changing it as an object property is a little bit odd, isn\u0027t it?","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"725b18cb8dad44f513ceddc89bb68a34465050cb","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"class PolicyAuthority(RbacAuthority):"},{"line_number":34,"context_line":"    \"\"\"A class that uses ``oslo.policy`` for validating RBAC.\"\"\""},{"line_number":35,"context_line":"    os_admin \u003d None"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self, project_id, user_id, service, extra_target_data\u003dNone):"},{"line_number":38,"context_line":"        \"\"\"Initialization of Policy Authority class."}],"source_content_type":"text/x-python","patch_set":6,"id":"ed1d1a4b_342ec116","line":35,"range":{"start_line":35,"start_character":4,"end_line":35,"end_character":13},"in_reply_to":"c0dcca4e_219a9d8b","updated":"2021-01-18 18:39:28.000000000","message":"I see, then ok.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"eacf4fce319840bbc67ff81ccb9cda781a1030a3","unresolved":true,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        # Cache the list of available services in memory to avoid needlessly"},{"line_number":124,"context_line":"        # doing an API call every time."},{"line_number":125,"context_line":"        if not hasattr(cls, \u0027available_services\u0027):"},{"line_number":126,"context_line":"            services_client \u003d (cls.os_admin.identity_services_v3_client"},{"line_number":127,"context_line":"                               if CONF.identity_feature_enabled.api_v3"},{"line_number":128,"context_line":"                               else cls.os_admin.identity_services_client)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3555fe9e_6903a447","line":125,"range":{"start_line":125,"start_character":49,"end_line":125,"end_character":50},"updated":"2021-01-11 23:12:53.000000000","message":"and os_admin is not None:\n\nto protect attr error if nobody set the os_admin in this class.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"}],"patrole_tempest_plugin/rbac_utils.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"eacf4fce319840bbc67ff81ccb9cda781a1030a3","unresolved":true,"context_lines":[{"line_number":126,"context_line":"    defined by ``CONF.identity.admin_role`` and"},{"line_number":127,"context_line":"    ``CONF.patrole.rbac_test_roles``."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":132,"context_line":"        super(RbacUtilsMixin, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"28484792_9d93d222","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":38},"updated":"2021-01-11 23:12:53.000000000","message":"asking the admin cred here is no difference than what we had previously at L151 where we used to get the configured admin cred and prepare admin client.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"7d2b4b037260259a24bce15daf08f75cb1d16408","unresolved":true,"context_lines":[{"line_number":126,"context_line":"    defined by ``CONF.identity.admin_role`` and"},{"line_number":127,"context_line":"    ``CONF.patrole.rbac_test_roles``."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":132,"context_line":"        super(RbacUtilsMixin, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"2d76fc27_5f2c1d24","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":38},"in_reply_to":"28484792_9d93d222","updated":"2021-01-16 10:49:57.000000000","message":"It\u0027s different, tempest supports both dynamical and pre-provisioned credentials when creating client managers, but L151 is only getting admin credentials from the config file (see https://github.com/openstack/tempest/blob/master/tempest/common/credentials_factory.py#L224) which is the problem this patch is trying to fix.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"725b18cb8dad44f513ceddc89bb68a34465050cb","unresolved":true,"context_lines":[{"line_number":126,"context_line":"    defined by ``CONF.identity.admin_role`` and"},{"line_number":127,"context_line":"    ``CONF.patrole.rbac_test_roles``."},{"line_number":128,"context_line":"    \"\"\""},{"line_number":129,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":132,"context_line":"        super(RbacUtilsMixin, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"43bce791_015846df","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":38},"in_reply_to":"2d76fc27_5f2c1d24","updated":"2021-01-18 18:39:28.000000000","message":"yeah I mean adding \u0027admin\u0027 in credentials does not mean this class is now depends on admin creds. previously also it used to do because of L151 as you mentioned. \n\nI actually added this for reviewer but forgot to clear it out :).","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"}],"patrole_tempest_plugin/tests/api/identity/rbac_base.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"eacf4fce319840bbc67ff81ccb9cda781a1030a3","unresolved":true,"context_lines":[{"line_number":77,"context_line":"class BaseIdentityV3RbacTest(BaseIdentityRbacTest):"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    identity_version \u003d \u0027v3\u0027"},{"line_number":80,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @classmethod"},{"line_number":83,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7539f56b_153cfd64","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":38},"updated":"2021-01-11 23:12:53.000000000","message":"we can remove it instead of duplicating as rbac_utils.RbacUtilsMixin class ask for both cred type to Tempest.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"7d2b4b037260259a24bce15daf08f75cb1d16408","unresolved":true,"context_lines":[{"line_number":77,"context_line":"class BaseIdentityV3RbacTest(BaseIdentityRbacTest):"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    identity_version \u003d \u0027v3\u0027"},{"line_number":80,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @classmethod"},{"line_number":83,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"b8e6e2fa_082159bb","line":80,"range":{"start_line":80,"start_character":0,"end_line":80,"end_character":38},"in_reply_to":"7539f56b_153cfd64","updated":"2021-01-16 10:49:57.000000000","message":"Yes, you are right, removed.","commit_id":"5e1b7c12ea378c7dca956f3664631c912f8a92d8"}]}
