)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f678ceeef648308c550a73fa67b6cb2cb609204b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     vaidyanath \u003cvaidyanath.m@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-04 14:44:13 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update users in Rally deployment check"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ia14c96aba67650beb4a5ca8e069a14a5eacc38fc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3acd31a7_550db835","line":7,"updated":"2015-05-04 12:56:15.000000000","message":"\"rally deployment check\" is a command and it does\u0027t have users. So please provide more detailes and rewrite commit mesage.","commit_id":"57006d4342dc5d063609212abae834d7d2bab703"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"9f4fb6170ce633e5e2080b3cf2d0bc48a411b567","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     vaidyanath \u003cvaidyanath.m@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-25 16:42:56 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Updated \"deployment check\" for users"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Updated unit testcase"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a016987_318375ce","line":7,"updated":"2015-05-28 15:18:31.000000000","message":"The proper commit message should look like: \n\n  Add check for users in \"deployment check\"\n\n  Before this patch only admin user was checked, which is not \n  enough if we are doing load using existing users. \n\n  Closes bug: #1449760\n  Change-Id: Ia14c96aba67650beb4a5ca8e069a14a5eacc38fc","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"}],"rally/cli/commands/deployment.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6c687f6609741d4fd6dd07bb07f6f8971537b2f2","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        table_rows \u003d []"},{"line_number":242,"context_line":"        try:"},{"line_number":243,"context_line":"            admin \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":244,"context_line":"            for endpoint_dict in [admin]:"},{"line_number":245,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":246,"context_line":"                client \u003d clients.verified_keystone()"},{"line_number":247,"context_line":"                print(\"keystone endpoints are valid and following \""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_1e76933e","line":244,"updated":"2015-05-27 00:39:52.000000000","message":"I know it\u0027s not your code but we don\u0027t need here array, just remove it","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6c687f6609741d4fd6dd07bb07f6f8971537b2f2","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            for endpoint_dict in [admin]:"},{"line_number":245,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":246,"context_line":"                client \u003d clients.verified_keystone()"},{"line_number":247,"context_line":"                print(\"keystone endpoints are valid and following \""},{"line_number":248,"context_line":"                      \"services are available:\")"},{"line_number":249,"context_line":"                for service in client.services.list():"},{"line_number":250,"context_line":"                    data \u003d [service.name, service.type, \"Available\"]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_de87db10","line":247,"updated":"2015-05-27 00:39:52.000000000","message":"This should be printed after all checks (admin and users)","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6c687f6609741d4fd6dd07bb07f6f8971537b2f2","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                for service in client.services.list():"},{"line_number":250,"context_line":"                    data \u003d [service.name, service.type, \"Available\"]"},{"line_number":251,"context_line":"                    table_rows.append(utils.Struct(**dict(zip(headers, data))))"},{"line_number":252,"context_line":"            users \u003d db.deployment_get(deployment)[\"users\"]"},{"line_number":253,"context_line":"            for endpoint_dict in users:"},{"line_number":254,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":255,"context_line":"                client \u003d clients.keystone()"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_3e926f58","line":252,"updated":"2015-05-27 00:39:52.000000000","message":"This is not optimal, you are doing 2 db requests to get 2 times deployment infomration. \n\n\nchange line 243: \n\n   deployment \u003d db.deployment_get(deployment)","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"ade3e7cf44d80af9f072ab2c4b006c67f0e3156f","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        try:"},{"line_number":242,"context_line":"            deployment \u003d db.deployment_get(deployment)"},{"line_number":243,"context_line":"            admin \u003d deployment.get(\"admin\")"},{"line_number":244,"context_line":"            for endpoint_dict in [admin]:"},{"line_number":245,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":246,"context_line":"                client \u003d clients.verified_keystone()"},{"line_number":247,"context_line":"                for service in client.services.list():"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_1be4cca9","line":244,"updated":"2015-05-31 19:47:08.000000000","message":"As I said before, please remove this loop we don\u0027t need it.","commit_id":"2c37a320c197061577a443e5c6c1e56cc4c310c7"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"ade3e7cf44d80af9f072ab2c4b006c67f0e3156f","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                    table_rows.append(utils.Struct(**dict(zip(headers, data))))"},{"line_number":250,"context_line":"            users \u003d deployment.get(\"users\")"},{"line_number":251,"context_line":"            for endpoint_dict in users:"},{"line_number":252,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":253,"context_line":"                client \u003d clients.keystone()"},{"line_number":254,"context_line":"            print(\"keystone endpoints are valid and following\""},{"line_number":255,"context_line":"                  \" services are available:\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_7be9807e","line":252,"updated":"2015-05-31 19:47:08.000000000","message":"replace 252 and 253 to: \n\n    osclients.Clients(objects.Endpoint(**endpoint_dict)).keystone()","commit_id":"2c37a320c197061577a443e5c6c1e56cc4c310c7"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"771431089901a9d3242e932ed83961a2b9351de8","unresolved":false,"context_lines":[{"line_number":249,"context_line":"            users \u003d deployment.get(\"users\")"},{"line_number":250,"context_line":"            for endpoint_dict in users:"},{"line_number":251,"context_line":"                osclients.Clients(objects.Endpoint(**endpoint_dict)).keystone()"},{"line_number":252,"context_line":"            print(\"keystone endpoints are valid and following\""},{"line_number":253,"context_line":"                  \" services are available:\")"},{"line_number":254,"context_line":"        except exceptions.InvalidArgumentsException:"},{"line_number":255,"context_line":"            data \u003d [\"keystone\", \"identity\", \"Error\"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_eca01192","line":252,"updated":"2015-06-01 07:31:02.000000000","message":"I believe you should use print(_(\"...\")) here for internationalization","commit_id":"b1d82e7b3b7775f765f0bdb44131744d4a0849d8"}],"rally/cmd/commands/deployment.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f678ceeef648308c550a73fa67b6cb2cb609204b","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        table_rows \u003d []"},{"line_number":242,"context_line":"        try:"},{"line_number":243,"context_line":"            # TODO(boris-42): make this work for users in future"},{"line_number":244,"context_line":"            \"\"\" admin \u003d db.deployment_get(deployment)[\"admin\"]\"\"\""},{"line_number":245,"context_line":"            # Updating to work with users and admin"},{"line_number":246,"context_line":"            deployment \u003d db.deployment_get(deployment)"},{"line_number":247,"context_line":"            users \u003d deployment.get(\"users\", [])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_f535e4d9","line":244,"updated":"2015-05-04 12:56:15.000000000","message":"why you put this to docstring?","commit_id":"57006d4342dc5d063609212abae834d7d2bab703"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f678ceeef648308c550a73fa67b6cb2cb609204b","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        try:"},{"line_number":243,"context_line":"            # TODO(boris-42): make this work for users in future"},{"line_number":244,"context_line":"            \"\"\" admin \u003d db.deployment_get(deployment)[\"admin\"]\"\"\""},{"line_number":245,"context_line":"            # Updating to work with users and admin"},{"line_number":246,"context_line":"            deployment \u003d db.deployment_get(deployment)"},{"line_number":247,"context_line":"            users \u003d deployment.get(\"users\", [])"},{"line_number":248,"context_line":"            admin \u003d deployment.get(\"admin\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_f2073a1a","line":245,"updated":"2015-05-04 12:56:15.000000000","message":"Please remove this comment.","commit_id":"57006d4342dc5d063609212abae834d7d2bab703"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f678ceeef648308c550a73fa67b6cb2cb609204b","unresolved":false,"context_lines":[{"line_number":246,"context_line":"            deployment \u003d db.deployment_get(deployment)"},{"line_number":247,"context_line":"            users \u003d deployment.get(\"users\", [])"},{"line_number":248,"context_line":"            admin \u003d deployment.get(\"admin\")"},{"line_number":249,"context_line":"            endpoints \u003d users + [admin] if admin else users"},{"line_number":250,"context_line":"            for endpoint_dict in endpoints:"},{"line_number":251,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":252,"context_line":"                client \u003d clients.verified_keystone()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_d5478849","line":249,"updated":"2015-05-04 12:56:15.000000000","message":"If we don\u0027t have admin we will have duplicated endpoints of users here","commit_id":"57006d4342dc5d063609212abae834d7d2bab703"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"78fc933fe76803f258293653156da8600d6d53d6","unresolved":false,"context_lines":[{"line_number":247,"context_line":"            users \u003d deployment.get(\"users\", [])"},{"line_number":248,"context_line":"            admin \u003d deployment.get(\"admin\")"},{"line_number":249,"context_line":"            endpoints \u003d users + [admin] if admin else users"},{"line_number":250,"context_line":"            for endpoint_dict in endpoints:"},{"line_number":251,"context_line":"                clients \u003d osclients.Clients(objects.Endpoint(**endpoint_dict))"},{"line_number":252,"context_line":"                client \u003d clients.verified_keystone()"},{"line_number":253,"context_line":"                print(\"keystone endpoints are valid and following \""}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_24eaf7ac","line":250,"updated":"2015-05-05 04:40:43.000000000","message":"so this is not what we want, we should execute this only for admin. \nFor the rest of clients we should execute next: \n\n   client \u003d clients.keystone()","commit_id":"57006d4342dc5d063609212abae834d7d2bab703"}],"tests/unit/cli/commands/test_deployment.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6c687f6609741d4fd6dd07bb07f6f8971537b2f2","unresolved":false,"context_lines":[{"line_number":276,"context_line":"    @mock.patch(\"rally.osclients.Clients.verified_keystone\")"},{"line_number":277,"context_line":"    @mock.patch(\"rally.osclients.Clients.keystone\")"},{"line_number":278,"context_line":"    @mock.patch(\"rally.cli.commands.deployment.db.deployment_get\")"},{"line_number":279,"context_line":"    def test_deployment_check(self, mock_deployment_get, mock_client,"},{"line_number":280,"context_line":"                              mock_client_users):"},{"line_number":281,"context_line":"        deployment_id \u003d \"e87e4dca-b515-4477-888d-5f6103f13b42\""},{"line_number":282,"context_line":"        sample_endpoint \u003d objects.Endpoint(\"http://192.168.1.1:5000/v2.0/\","}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_bebadfbe","line":279,"updated":"2015-05-27 00:39:52.000000000","message":"rename it to mock_keystone","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6c687f6609741d4fd6dd07bb07f6f8971537b2f2","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    @mock.patch(\"rally.osclients.Clients.keystone\")"},{"line_number":278,"context_line":"    @mock.patch(\"rally.cli.commands.deployment.db.deployment_get\")"},{"line_number":279,"context_line":"    def test_deployment_check(self, mock_deployment_get, mock_client,"},{"line_number":280,"context_line":"                              mock_client_users):"},{"line_number":281,"context_line":"        deployment_id \u003d \"e87e4dca-b515-4477-888d-5f6103f13b42\""},{"line_number":282,"context_line":"        sample_endpoint \u003d objects.Endpoint(\"http://192.168.1.1:5000/v2.0/\","},{"line_number":283,"context_line":"                                           \"admin\","}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_1ec4533e","line":280,"updated":"2015-05-27 00:39:52.000000000","message":"rename it to mock_verified_keystone \n\nbtw you put them in improper way","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":10779,"name":"Vaidyanath","email":"vaidyanath.manogaran@ril.com","username":"vaidyanath.m"},"change_message_id":"9779a1bb9ece262c02058f8d6ae5601dbc69d1d1","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    @mock.patch(\"rally.osclients.Clients.keystone\")"},{"line_number":278,"context_line":"    @mock.patch(\"rally.cli.commands.deployment.db.deployment_get\")"},{"line_number":279,"context_line":"    def test_deployment_check(self, mock_deployment_get, mock_client,"},{"line_number":280,"context_line":"                              mock_client_users):"},{"line_number":281,"context_line":"        deployment_id \u003d \"e87e4dca-b515-4477-888d-5f6103f13b42\""},{"line_number":282,"context_line":"        sample_endpoint \u003d objects.Endpoint(\"http://192.168.1.1:5000/v2.0/\","},{"line_number":283,"context_line":"                                           \"admin\","}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_5215e546","line":280,"in_reply_to":"7a016987_1ec4533e","updated":"2015-05-28 07:32:40.000000000","message":"Not sure what is the improper way mean","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"d6e908a17361a15f7d91a72aaca047bc629d0c39","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    @mock.patch(\"rally.osclients.Clients.keystone\")"},{"line_number":278,"context_line":"    @mock.patch(\"rally.cli.commands.deployment.db.deployment_get\")"},{"line_number":279,"context_line":"    def test_deployment_check(self, mock_deployment_get, mock_client,"},{"line_number":280,"context_line":"                              mock_client_users):"},{"line_number":281,"context_line":"        deployment_id \u003d \"e87e4dca-b515-4477-888d-5f6103f13b42\""},{"line_number":282,"context_line":"        sample_endpoint \u003d objects.Endpoint(\"http://192.168.1.1:5000/v2.0/\","},{"line_number":283,"context_line":"                                           \"admin\","}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_0a8a86bf","line":280,"in_reply_to":"7a016987_5215e546","updated":"2015-05-28 13:47:57.000000000","message":"wrong order of parameters.","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"6c687f6609741d4fd6dd07bb07f6f8971537b2f2","unresolved":false,"context_lines":[{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        mock_client.services.list.return_value \u003d []"},{"line_number":289,"context_line":"        mock_client_users.services.list.return_value \u003d []"},{"line_number":290,"context_line":"        self.deployment.check(deployment_id)"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    @mock.patch(\"rally.osclients.Clients.verified_keystone\")"},{"line_number":293,"context_line":"    @mock.patch(\"rally.cli.commands.deployment.db.deployment_get\")"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_5ed1abfa","line":290,"updated":"2015-05-27 00:39:52.000000000","message":"we should assert that mock_keystone and movk_verified_keystone were called with proper arguments","commit_id":"2ca5da14b56887076bb7791d3e77f84dd232e6c8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"ade3e7cf44d80af9f072ab2c4b006c67f0e3156f","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                                           \"adminpass\").to_dict()"},{"line_number":285,"context_line":"        mock_deployment_get.return_value \u003d {\"admin\": sample_endpoint,"},{"line_number":286,"context_line":"                                            \"users\": [sample_endpoint]}"},{"line_number":287,"context_line":"        mock_keystone.services.list.return_value \u003d []"},{"line_number":288,"context_line":"        mock_verified_keystone.services.list.return_value \u003d []"},{"line_number":289,"context_line":"        self.deployment.check(deployment_id)"},{"line_number":290,"context_line":"        mock_deployment_get.assert_called_once_with(deployment_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_5b05a443","line":287,"updated":"2015-05-31 19:47:08.000000000","message":"You don\u0027t need 287 line at all you are not calling services.list in plain keystone at all.","commit_id":"2c37a320c197061577a443e5c6c1e56cc4c310c7"}]}
