)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"4de3ef56211e77da48ff49495e8f891f5a6bfa7f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add default_domain_id field to keystone request."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The cause of bug is tempest don\u0027t send domain_id in request to keystone."},{"line_number":10,"context_line":"I suppose to tempest use of default_domain_id from config file"},{"line_number":11,"context_line":"during this request."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: #1613819"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"1a6eadb0_78e09929","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":20},"updated":"2016-12-16 14:43:46.000000000","message":"This is not correct. See my comment on the bug.\nThe fix you provided is correct though :)","commit_id":"fd7d8d64e33beaa80be7297baa260962f52a3af4"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"09e46b7ee9bfd22071de8b95f0c95a63456647c7","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add default_domain_id field to keystone request."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The cause of bug is tempest don\u0027t send domain_id in request to keystone."},{"line_number":10,"context_line":"I suppose to tempest use of default_domain_id from config file"},{"line_number":11,"context_line":"during this request."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: #1613819"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"1a6eadb0_916c3d38","line":11,"range":{"start_line":10,"start_character":0,"end_line":11,"end_character":20},"in_reply_to":"1a6eadb0_78e09929","updated":"2016-12-19 09:02:53.000000000","message":"Done","commit_id":"fd7d8d64e33beaa80be7297baa260962f52a3af4"}],"tempest/common/dynamic_creds.py":[{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"f8c8ec966af5c2211be6646bb3b1727fc5941ae2","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from tempest.lib.common import cred_provider"},{"line_number":22,"context_line":"from tempest.lib.common.utils import data_utils"},{"line_number":23,"context_line":"from tempest.lib import exceptions as lib_exc"},{"line_number":24,"context_line":"from tempest import config"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":"CONF \u003d config.CONF"}],"source_content_type":"text/x-python","patch_set":9,"id":"da6895a0_9206aecc","line":24,"updated":"2016-10-25 12:38:11.000000000","message":"imports are not pep8 compliant","commit_id":"9455e732fd4c8b9faf0de5f232699fa3d4328b4f"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03db346eb7c741f468fdeb3e1efef9456592419e","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":"CONF \u003d config.CONF"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class DynamicCredentialProvider(cred_provider.CredentialProvider):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a629dbe_fa3dfcbb","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":18},"updated":"2016-11-09 07:38:09.000000000","message":"we should not add dependency on config in this class, this class is in progress to move to lib.\n\nTake domain_id in __init__ param.","commit_id":"93ea57e95815615757f93361d0b5e966d05566af"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"19dc0133fae20ca4f60107001474266cd7e66c0f","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":28,"context_line":"CONF \u003d config.CONF"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class DynamicCredentialProvider(cred_provider.CredentialProvider):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_12d94657","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":18},"in_reply_to":"9a629dbe_fa3dfcbb","updated":"2016-12-16 14:02:00.000000000","message":"Done","commit_id":"93ea57e95815615757f93361d0b5e966d05566af"}],"tempest/lib/common/cred_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03db346eb7c741f468fdeb3e1efef9456592419e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.projects_client \u003d projects_client"},{"line_number":40,"context_line":"        self.roles_client \u003d roles_client"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def create_user(self, username, password, project, email, domain_id):"},{"line_number":43,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":44,"context_line":"                  \u0027password\u0027: password,"},{"line_number":45,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a629dbe_1a3630e6","line":42,"range":{"start_line":42,"start_character":56,"end_line":42,"end_character":72},"updated":"2016-11-09 07:38:09.000000000","message":"this changing library interface which will cause backward incompatibility.","commit_id":"93ea57e95815615757f93361d0b5e966d05566af"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"19dc0133fae20ca4f60107001474266cd7e66c0f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.projects_client \u003d projects_client"},{"line_number":40,"context_line":"        self.roles_client \u003d roles_client"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def create_user(self, username, password, project, email, domain_id):"},{"line_number":43,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":44,"context_line":"                  \u0027password\u0027: password,"},{"line_number":45,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_72ea7adc","line":42,"range":{"start_line":42,"start_character":56,"end_line":42,"end_character":72},"in_reply_to":"9a629dbe_1a3630e6","updated":"2016-12-16 14:02:00.000000000","message":"Done","commit_id":"93ea57e95815615757f93361d0b5e966d05566af"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"03db346eb7c741f468fdeb3e1efef9456592419e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                  \u0027password\u0027: password,"},{"line_number":45,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"},{"line_number":46,"context_line":"                  \u0027email\u0027: email,"},{"line_number":47,"context_line":"                  \u0027domain_id\u0027: domain_id}"},{"line_number":48,"context_line":"        user \u003d self.users_client.create_user(**params)"},{"line_number":49,"context_line":"        if \u0027user\u0027 in user:"},{"line_number":50,"context_line":"            user \u003d user[\u0027user\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"9a629dbe_7a2acc7f","line":47,"range":{"start_line":47,"start_character":18,"end_line":47,"end_character":41},"updated":"2016-11-09 07:38:09.000000000","message":"this going to pass domain_id for v2 client also, not sure keystone does not raise exception there or they just ignore domain-id in case of v2.\n\nBut in any case we should prepare separate kwarg for v2 and v3 in their respective class.","commit_id":"93ea57e95815615757f93361d0b5e966d05566af"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"19dc0133fae20ca4f60107001474266cd7e66c0f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                  \u0027password\u0027: password,"},{"line_number":45,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"},{"line_number":46,"context_line":"                  \u0027email\u0027: email,"},{"line_number":47,"context_line":"                  \u0027domain_id\u0027: domain_id}"},{"line_number":48,"context_line":"        user \u003d self.users_client.create_user(**params)"},{"line_number":49,"context_line":"        if \u0027user\u0027 in user:"},{"line_number":50,"context_line":"            user \u003d user[\u0027user\u0027]"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_b2f092ca","line":47,"range":{"start_line":47,"start_character":18,"end_line":47,"end_character":41},"in_reply_to":"9a629dbe_7a2acc7f","updated":"2016-12-16 14:02:00.000000000","message":"Done","commit_id":"93ea57e95815615757f93361d0b5e966d05566af"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d1f8b8e860e4807818a67962ac786810b9f21b2e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.users_client \u003d users_client"},{"line_number":39,"context_line":"        self.projects_client \u003d projects_client"},{"line_number":40,"context_line":"        self.roles_client \u003d roles_client"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def delete_user(self, user_id):"},{"line_number":43,"context_line":"        self.users_client.delete_user(user_id)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_0f2a5890","line":41,"updated":"2016-12-21 08:41:08.000000000","message":"You should have have:\n\n    def create_user(self, **params):\n        user \u003d self.users_client.create_user(**params)\n        if \u0027user\u0027 in user:\n            user \u003d user[\u0027user\u0027]\n        return user","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"b7513e0c473b77b97054b3c4f47f7e8c8b17984d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.users_client \u003d users_client"},{"line_number":39,"context_line":"        self.projects_client \u003d projects_client"},{"line_number":40,"context_line":"        self.roles_client \u003d roles_client"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def delete_user(self, user_id):"},{"line_number":43,"context_line":"        self.users_client.delete_user(user_id)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"da4df55a_67edbbee","line":41,"in_reply_to":"1a6eadb0_0f2a5890","updated":"2016-12-27 12:55:03.000000000","message":"Done","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d1f8b8e860e4807818a67962ac786810b9f21b2e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            tenant_name\u003dproject[\u0027name\u0027], tenant_id\u003dproject[\u0027id\u0027],"},{"line_number":117,"context_line":"            password\u003dpassword)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def create_user(self, username, password, project, email):"},{"line_number":120,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":121,"context_line":"                  \u0027password\u0027: password,"},{"line_number":122,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_a2141b44","line":119,"updated":"2016-12-21 08:41:08.000000000","message":"And here:\n\ndef create_user(self, username, password, project, email):\n        params \u003d {\u0027name\u0027: username,\n                  \u0027password\u0027: password,\n                  self.project_id_param: project[\u0027id\u0027],\n                  \u0027email\u0027: email}\n        super().create_user(**params)","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f9e36c46d71bec6ca0be068cc6b1166009dfe136","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            tenant_name\u003dproject[\u0027name\u0027], tenant_id\u003dproject[\u0027id\u0027],"},{"line_number":117,"context_line":"            password\u003dpassword)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def create_user(self, username, password, project, email):"},{"line_number":120,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":121,"context_line":"                  \u0027password\u0027: password,"},{"line_number":122,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_d2df1338","line":119,"in_reply_to":"1a6eadb0_55bdba66","updated":"2016-12-21 14:46:50.000000000","message":"Yeah, you\u0027re right, something like:\n\ndef create_user(self, username, password, project, email):\n  return super().create_user(username, password, project, email)\n\nBut then, you have to be consistent with how you handle *args vs **kwargs in the create_user() method in the base class.","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"341b98755ac9fac4e83247af24c0821bbe85fdfb","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            tenant_name\u003dproject[\u0027name\u0027], tenant_id\u003dproject[\u0027id\u0027],"},{"line_number":117,"context_line":"            password\u003dpassword)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def create_user(self, username, password, project, email):"},{"line_number":120,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":121,"context_line":"                  \u0027password\u0027: password,"},{"line_number":122,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_55bdba66","line":119,"in_reply_to":"1a6eadb0_a2141b44","updated":"2016-12-21 11:12:45.000000000","message":"I see no reason for defining a \"params\" dict as opposed to just passing the parameters","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"b7513e0c473b77b97054b3c4f47f7e8c8b17984d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            tenant_name\u003dproject[\u0027name\u0027], tenant_id\u003dproject[\u0027id\u0027],"},{"line_number":117,"context_line":"            password\u003dpassword)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def create_user(self, username, password, project, email):"},{"line_number":120,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":121,"context_line":"                  \u0027password\u0027: password,"},{"line_number":122,"context_line":"                  self.project_id_param: project[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":16,"id":"da4df55a_87bc5fdd","line":119,"in_reply_to":"1a6eadb0_d2df1338","updated":"2016-12-27 12:55:03.000000000","message":"Done","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d1f8b8e860e4807818a67962ac786810b9f21b2e","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            LOG.debug(\"Role %s already assigned on domain %s for user %s\","},{"line_number":197,"context_line":"                      role[\u0027id\u0027], domain[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def create_user(self, username, password, project, email, domain\u003dNone):"},{"line_number":200,"context_line":"        if domain is None:"},{"line_number":201,"context_line":"            domain \u003d self.creds_domain"},{"line_number":202,"context_line":"        params \u003d {\u0027name\u0027: username,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_8222bfa1","line":199,"updated":"2016-12-21 08:41:08.000000000","message":"Same here: set the params and call the base class.","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":23771,"name":"morfy","email":"gmorfy@gmail.com","username":"morfy"},"change_message_id":"b7513e0c473b77b97054b3c4f47f7e8c8b17984d","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            LOG.debug(\"Role %s already assigned on domain %s for user %s\","},{"line_number":197,"context_line":"                      role[\u0027id\u0027], domain[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def create_user(self, username, password, project, email, domain\u003dNone):"},{"line_number":200,"context_line":"        if domain is None:"},{"line_number":201,"context_line":"            domain \u003d self.creds_domain"},{"line_number":202,"context_line":"        params \u003d {\u0027name\u0027: username,"}],"source_content_type":"text/x-python","patch_set":16,"id":"da4df55a_a7c16356","line":199,"in_reply_to":"1a6eadb0_72bb9fe5","updated":"2016-12-27 12:55:03.000000000","message":"Done","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"341b98755ac9fac4e83247af24c0821bbe85fdfb","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            LOG.debug(\"Role %s already assigned on domain %s for user %s\","},{"line_number":197,"context_line":"                      role[\u0027id\u0027], domain[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def create_user(self, username, password, project, email, domain\u003dNone):"},{"line_number":200,"context_line":"        if domain is None:"},{"line_number":201,"context_line":"            domain \u003d self.creds_domain"},{"line_number":202,"context_line":"        params \u003d {\u0027name\u0027: username,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_b5b8ce76","line":199,"in_reply_to":"1a6eadb0_8222bfa1","updated":"2016-12-21 11:12:45.000000000","message":"Ditto","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f9e36c46d71bec6ca0be068cc6b1166009dfe136","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            LOG.debug(\"Role %s already assigned on domain %s for user %s\","},{"line_number":197,"context_line":"                      role[\u0027id\u0027], domain[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def create_user(self, username, password, project, email, domain\u003dNone):"},{"line_number":200,"context_line":"        if domain is None:"},{"line_number":201,"context_line":"            domain \u003d self.creds_domain"},{"line_number":202,"context_line":"        params \u003d {\u0027name\u0027: username,"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a6eadb0_72bb9fe5","line":199,"in_reply_to":"1a6eadb0_b5b8ce76","updated":"2016-12-21 14:46:50.000000000","message":"Yep:\n\ndef create_user(self, username, password, project, email, domain\u003dNone):\n  if domain is None:\n    domain \u003d self.creds_domain\n  return super().create_user(username, password, project, email, domain)","commit_id":"d9a2ceafd2e4620ad6f09b6eb417b8b54da21cf0"}]}
