)]}'
{"tempest/api/identity/base.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"543f24e78ab9c95e655f978c1de31e6a6f513c72","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    def setup_test_user(self):"},{"line_number":256,"context_line":"        \"\"\"Set up a test user.\"\"\""},{"line_number":257,"context_line":"        self.setup_test_tenant()"},{"line_number":258,"context_line":"        username \u003d data_utils.rand_name(\u0027test_user\u0027)"},{"line_number":259,"context_line":"        email \u003d username + \u0027@testmail.tm\u0027"},{"line_number":260,"context_line":"        self._create_test_user(name\u003dusername, email\u003demail,"},{"line_number":261,"context_line":"                               tenantId\u003dself.tenant[\u0027id\u0027])"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_ffcb4748","line":259,"range":{"start_line":258,"start_character":0,"end_line":259,"end_character":41},"updated":"2016-06-16 21:05:37.000000000","message":"That\u0027s nice, but moving username and email generation to DataGenerator does not seem related to this patch really...","commit_id":"418c7e5c8858afcbcbeabb54c87f7bd319287a40"}],"tempest/common/cred_client.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"62994738c1f5f2423a7848198b3713494feb134c","unresolved":false,"context_lines":[{"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):"},{"line_number":43,"context_line":"        params \u003d self._create_user_params(username, password,"},{"line_number":44,"context_line":"                                          project[\u0027id\u0027], email)"},{"line_number":45,"context_line":"        user \u003d self.users_client.create_user(**params)"},{"line_number":46,"context_line":"        if \u0027user\u0027 in user:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_d815224d","line":43,"updated":"2016-06-15 10:25:54.000000000","message":"Why do you have to introduce the new _create_user_params function ? It does very little work.\n\n\nHere\u0027s my review flow: I read L43 and I\u0027m like \u0027humm what is this new function _create_user_params ?, I\u0027ve never seen it before\u0027, then I am like \u0027let\u0027s find its definition\u0027, then I\u0027m like \u0027ohh I have to scroll L105\u0027. This is 3 actions that I don\"t want to do, and this slows my review process and my understanding of the code.\n\n\nNow I understand that the fields have changed named between V2 and V3. But Cinder has the same issue with name vs display_name. And it\u0027s solved with a class mapping (a dict) (have a look at api/volume/base.py, and the \u0027special_fields\u0027 dict)\n\n\nOne other option is to duplicate the create_user method and have it in both V2CredsClient and V3CredsClient classes.","commit_id":"3afaba4c32f2d2761a3b104633e24ae965fbbd65"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e0671fd2c8f0638f40f4b608d36af8ab49dc6b61","unresolved":false,"context_lines":[{"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):"},{"line_number":43,"context_line":"        params \u003d self._create_user_params(username, password,"},{"line_number":44,"context_line":"                                          project[\u0027id\u0027], email)"},{"line_number":45,"context_line":"        user \u003d self.users_client.create_user(**params)"},{"line_number":46,"context_line":"        if \u0027user\u0027 in user:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_b1e59ddd","line":43,"in_reply_to":"7aa08908_6957d726","updated":"2016-06-16 08:24:31.000000000","message":"yea its issue of expecting different param name between v2 and v3.\n\nwe can do like cinder on test case file where it will be called many times but here it is being used once so we can define function returning the expected param name for v2 and v3 like done in this patch.","commit_id":"3afaba4c32f2d2761a3b104633e24ae965fbbd65"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d882914e76da85c5dd9c4dd58d6bc049cbe71f89","unresolved":false,"context_lines":[{"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):"},{"line_number":43,"context_line":"        params \u003d self._create_user_params(username, password,"},{"line_number":44,"context_line":"                                          project[\u0027id\u0027], email)"},{"line_number":45,"context_line":"        user \u003d self.users_client.create_user(**params)"},{"line_number":46,"context_line":"        if \u0027user\u0027 in user:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_6957d726","line":43,"in_reply_to":"7aa08908_d815224d","updated":"2016-06-16 01:39:14.000000000","message":"Yeah, this is just a cushioning material between v2 and v3.\nNot so bad for me.","commit_id":"3afaba4c32f2d2761a3b104633e24ae965fbbd65"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"543f24e78ab9c95e655f978c1de31e6a6f513c72","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                                            users_client,"},{"line_number":103,"context_line":"                                            roles_client)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _create_user_params(self, username, password, project_id, email):"},{"line_number":106,"context_line":"        params \u003d {\u0027name\u0027: username,"},{"line_number":107,"context_line":"                  \u0027password\u0027: password,"},{"line_number":108,"context_line":"                  \u0027tenantId\u0027: project_id,"},{"line_number":109,"context_line":"                  \u0027email\u0027: email}"},{"line_number":110,"context_line":"        return params"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def create_project(self, name, description):"},{"line_number":113,"context_line":"        tenant \u003d self.projects_client.create_tenant("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_c7d79d4d","line":110,"range":{"start_line":105,"start_character":0,"end_line":110,"end_character":21},"updated":"2016-06-16 21:05:37.000000000","message":"NIT: I\u0027m not sure this is a huge benefit compared to having two create_user implementations... if you really want to optimise this you could set user, password and email and add a different field depending on the implementation...","commit_id":"418c7e5c8858afcbcbeabb54c87f7bd319287a40"}]}
