)]}'
{"rally/verification/tempest/config.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ca9a618a058041ef653b0932efcb41d1273b7597","unresolved":false,"context_lines":[{"line_number":267,"context_line":"            _write_config(conf_path, self.conf)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"class TempestResourcesContext(utils.RandomNameGeneratorMixin):"},{"line_number":271,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def __init__(self, deployment, conf_path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_8cf2e004","line":270,"range":{"start_line":270,"start_character":30,"end_line":270,"end_character":61},"updated":"2016-01-06 09:34:37.000000000","message":"It will not fix the problem. Please look at implementation of generate_random_name. It requires several properties in the class - https://github.com/openstack/rally/blob/0.1.2/rally/common/utils.py#L278\n\nYou should implement several fake attrs to make generate_random_name works.","commit_id":"142822e7c71215fdf52f743d7295af2b856ca6d9"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"2213ca74d35734c3e2974d90d13167c5ceb868e7","unresolved":false,"context_lines":[{"line_number":267,"context_line":"            _write_config(conf_path, self.conf)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"class TempestResourcesContext(utils.RandomNameGeneratorMixin):"},{"line_number":271,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    def __init__(self, deployment, conf_path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_73074482","line":270,"range":{"start_line":270,"start_character":30,"end_line":270,"end_character":61},"in_reply_to":"fa69d971_8cf2e004","updated":"2016-01-06 12:58:39.000000000","message":"Done","commit_id":"142822e7c71215fdf52f743d7295af2b856ca6d9"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d77484caa2bbd2434092c94306739d076a4e0daa","unresolved":false,"context_lines":[{"line_number":81,"context_line":"class TempestConfig(utils.RandomNameGeneratorMixin):"},{"line_number":82,"context_line":"    \"\"\"Class to generate Tempest configuration file.\"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def __init__(self, verification, deployment):"},{"line_number":85,"context_line":"        self.deployment \u003d deployment"},{"line_number":86,"context_line":"        self.verification \u003d verification"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_f39ea2b7","line":84,"updated":"2016-01-07 11:34:35.000000000","message":"Generation of Tempest config doesn\u0027t depend on verification. I think we don\u0027t need to do any changes here.","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6ea076e0fb7ea1ae63d4e705e7a133f5a613bd0a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"class TempestConfig(utils.RandomNameGeneratorMixin):"},{"line_number":82,"context_line":"    \"\"\"Class to generate Tempest configuration file.\"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def __init__(self, verification, deployment):"},{"line_number":85,"context_line":"        self.deployment \u003d deployment"},{"line_number":86,"context_line":"        self.verification \u003d verification"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_b971ebaa","line":84,"in_reply_to":"fa69d971_f39ea2b7","updated":"2016-01-07 12:15:08.000000000","message":"Done","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b655f51cab7a55f32548e3b46c1da9cbbf63b231","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"class TempestResourcesContext(utils.RandomNameGeneratorMixin):"},{"line_number":272,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def __init__(self, verification, deployment, conf_path):"},{"line_number":275,"context_line":"        self.verification \u003d verification"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_be5d517b","line":273,"updated":"2016-01-07 11:44:10.000000000","message":"Please, add it here.\n\nRESOURCE_NAME_FORMAT \u003d \"rally_verify_XXXXXXXX_XXXXXXXX\"","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6ea076e0fb7ea1ae63d4e705e7a133f5a613bd0a","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"class TempestResourcesContext(utils.RandomNameGeneratorMixin):"},{"line_number":272,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def __init__(self, verification, deployment, conf_path):"},{"line_number":275,"context_line":"        self.verification \u003d verification"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_59678fea","line":273,"in_reply_to":"fa69d971_be5d517b","updated":"2016-01-07 12:15:08.000000000","message":"Done","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d77484caa2bbd2434092c94306739d076a4e0daa","unresolved":false,"context_lines":[{"line_number":271,"context_line":"class TempestResourcesContext(utils.RandomNameGeneratorMixin):"},{"line_number":272,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def __init__(self, verification, deployment, conf_path):"},{"line_number":275,"context_line":"        self.verification \u003d verification"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":277,"context_line":"        self.clients \u003d osclients.Clients(objects.Credential(**credential))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_7392b2a1","line":274,"updated":"2016-01-07 11:34:35.000000000","message":"Please, make arguments order like this:\n\n     def __init__(self, deployment, verification, conf_path)","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6ea076e0fb7ea1ae63d4e705e7a133f5a613bd0a","unresolved":false,"context_lines":[{"line_number":271,"context_line":"class TempestResourcesContext(utils.RandomNameGeneratorMixin):"},{"line_number":272,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def __init__(self, verification, deployment, conf_path):"},{"line_number":275,"context_line":"        self.verification \u003d verification"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":277,"context_line":"        self.clients \u003d osclients.Clients(objects.Credential(**credential))"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_7964d3e4","line":274,"in_reply_to":"fa69d971_7392b2a1","updated":"2016-01-07 12:15:08.000000000","message":"Done","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d77484caa2bbd2434092c94306739d076a4e0daa","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def __init__(self, verification, deployment, conf_path):"},{"line_number":275,"context_line":"        self.verification \u003d verification"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":277,"context_line":"        self.clients \u003d osclients.Clients(objects.Credential(**credential))"},{"line_number":278,"context_line":"        self.available_services \u003d self.clients.services().values()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_933f2687","line":275,"updated":"2016-01-07 11:34:35.000000000","message":"Could you please initialize variables in such a way:\n\ncredential \u003d db.deployment_get(deployment)[\"admin\"]\nself.clients \u003d osclients.Clients(objects.Credential(**credential))\nself.available_services \u003d self.clients.services().values()\n\nself.verification \u003d verification\n\nself.conf_path \u003d conf_path\nself.conf \u003d configparser.ConfigParser()\nself.conf.read(conf_path)\n...","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"6ea076e0fb7ea1ae63d4e705e7a133f5a613bd0a","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    \"\"\"Context class to create/delete resources needed for Tempest.\"\"\""},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def __init__(self, verification, deployment, conf_path):"},{"line_number":275,"context_line":"        self.verification \u003d verification"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":277,"context_line":"        self.clients \u003d osclients.Clients(objects.Credential(**credential))"},{"line_number":278,"context_line":"        self.available_services \u003d self.clients.services().values()"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_196117d4","line":275,"in_reply_to":"fa69d971_933f2687","updated":"2016-01-07 12:15:08.000000000","message":"Done","commit_id":"4586a75416e5a799ce999b75ea5c0a7c4a471291"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b36ff7549f2057ed29a291623f0d411ee1fac0f1","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    def __init__(self, deployment, verification, conf_path):"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":277,"context_line":"        self.clients \u003d osclients.Clients(objects.Credential(**credential))"},{"line_number":278,"context_line":"        self.available_services \u003d self.clients.services().values()"},{"line_number":279,"context_line":"        self.verification \u003d verification"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        self.conf_path \u003d conf_path"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_e43576a8","line":278,"updated":"2016-01-07 12:36:45.000000000","message":"Please, keep a blank line between L278 and L279.","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"80491073cb1cee5f045583d0226c4137f11e67d5","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    def __init__(self, deployment, verification, conf_path):"},{"line_number":276,"context_line":"        credential \u003d db.deployment_get(deployment)[\"admin\"]"},{"line_number":277,"context_line":"        self.clients \u003d osclients.Clients(objects.Credential(**credential))"},{"line_number":278,"context_line":"        self.available_services \u003d self.clients.services().values()"},{"line_number":279,"context_line":"        self.verification \u003d verification"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        self.conf_path \u003d conf_path"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_dfb4bfd5","line":278,"in_reply_to":"fa69d971_e43576a8","updated":"2016-01-07 13:02:45.000000000","message":"Done","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"}],"rally/verification/tempest/tempest.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b36ff7549f2057ed29a291623f0d411ee1fac0f1","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                LOG.info(_(\"Tempest is not configured.\"))"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"            LOG.info(_(\"Starting: Creating configuration file for Tempest.\"))"},{"line_number":233,"context_line":"            config.TempestConfig(self.verification,"},{"line_number":234,"context_line":"                                 self.deployment).generate(self.config_file)"},{"line_number":235,"context_line":"            LOG.info(_(\"Completed: Creating configuration file for Tempest.\"))"},{"line_number":236,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_64950687","line":233,"updated":"2016-01-07 12:36:45.000000000","message":"It looks like you forgot to make the corresponding changes here. Please, remove self.verification.","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"80491073cb1cee5f045583d0226c4137f11e67d5","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                LOG.info(_(\"Tempest is not configured.\"))"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"            LOG.info(_(\"Starting: Creating configuration file for Tempest.\"))"},{"line_number":233,"context_line":"            config.TempestConfig(self.verification,"},{"line_number":234,"context_line":"                                 self.deployment).generate(self.config_file)"},{"line_number":235,"context_line":"            LOG.info(_(\"Completed: Creating configuration file for Tempest.\"))"},{"line_number":236,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_9fae4780","line":233,"in_reply_to":"fa69d971_64950687","updated":"2016-01-07 13:02:45.000000000","message":"Done","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b36ff7549f2057ed29a291623f0d411ee1fac0f1","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        LOG.debug(\"Test(s) started by the command: %s\" % test_cmd)"},{"line_number":349,"context_line":"        # Create all resources needed for Tempest before running tests."},{"line_number":350,"context_line":"        # Once tests finish, all created resources will be deleted."},{"line_number":351,"context_line":"        with config.TempestResourcesContext(self.verification,"},{"line_number":352,"context_line":"                                            self.deployment, self.config_file):"},{"line_number":353,"context_line":"            # Run tests"},{"line_number":354,"context_line":"            subprocess.check_call(test_cmd, cwd\u003dself.path(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_e4e7b644","line":351,"updated":"2016-01-07 12:36:45.000000000","message":"Please, change arguments order here.","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"80491073cb1cee5f045583d0226c4137f11e67d5","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        LOG.debug(\"Test(s) started by the command: %s\" % test_cmd)"},{"line_number":349,"context_line":"        # Create all resources needed for Tempest before running tests."},{"line_number":350,"context_line":"        # Once tests finish, all created resources will be deleted."},{"line_number":351,"context_line":"        with config.TempestResourcesContext(self.verification,"},{"line_number":352,"context_line":"                                            self.deployment, self.config_file):"},{"line_number":353,"context_line":"            # Run tests"},{"line_number":354,"context_line":"            subprocess.check_call(test_cmd, cwd\u003dself.path(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_5fc9af59","line":351,"in_reply_to":"fa69d971_e4e7b644","updated":"2016-01-07 13:02:45.000000000","message":"Done","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"}],"tests/unit/verification/test_config.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b36ff7549f2057ed29a291623f0d411ee1fac0f1","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            \"name\": \"network\","},{"line_number":402,"context_line":"            \"status\": \"status\"}"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        client.create_network.side_effect \u003d [{\"network\": fake_network}]"},{"line_number":405,"context_line":"        client.create_router.side_effect \u003d [{\"router\": {\"id\": \"rid1\"}}]"},{"line_number":406,"context_line":"        client.create_subnet.side_effect \u003d [{\"subnet\": {\"id\": \"subid1\"}}]"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_444a42ae","line":404,"updated":"2016-01-07 12:36:45.000000000","message":"I think you can do something like this:\n\n\n    client.create_network.side_effect \u003d [{\"network\": {\"id\": \"nid1\"}}]\n\n\nand remove \u0027fake_network\u0027 dict.","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"},{"author":{"_account_id":18785,"name":"Bo Chi","email":"bochi@tethrnet.com","username":"bochi"},"change_message_id":"80491073cb1cee5f045583d0226c4137f11e67d5","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            \"name\": \"network\","},{"line_number":402,"context_line":"            \"status\": \"status\"}"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        client.create_network.side_effect \u003d [{\"network\": fake_network}]"},{"line_number":405,"context_line":"        client.create_router.side_effect \u003d [{\"router\": {\"id\": \"rid1\"}}]"},{"line_number":406,"context_line":"        client.create_subnet.side_effect \u003d [{\"subnet\": {\"id\": \"subid1\"}}]"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_bfeb0b78","line":404,"in_reply_to":"fa69d971_444a42ae","updated":"2016-01-07 13:02:45.000000000","message":"\"name\" and \"status\" are needed in NeutronWrapper.create_network L345, and I think add these in one sentence does not look good","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"4a91d555bf3a766fc2158c8037f907dfcee93c5a","unresolved":false,"context_lines":[{"line_number":401,"context_line":"            \"name\": \"network\","},{"line_number":402,"context_line":"            \"status\": \"status\"}"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        client.create_network.side_effect \u003d [{\"network\": fake_network}]"},{"line_number":405,"context_line":"        client.create_router.side_effect \u003d [{\"router\": {\"id\": \"rid1\"}}]"},{"line_number":406,"context_line":"        client.create_subnet.side_effect \u003d [{\"subnet\": {\"id\": \"subid1\"}}]"},{"line_number":407,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_5b5e9c13","line":404,"in_reply_to":"fa69d971_bfeb0b78","updated":"2016-01-07 15:15:09.000000000","message":"Ok, got it. Thanks.","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"}],"tests/unit/verification/test_tempest.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b36ff7549f2057ed29a291623f0d411ee1fac0f1","unresolved":false,"context_lines":[{"line_number":360,"context_line":"        self.verifier.verify(set_name, None, None)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        self.assertEqual(2, mock_tempest_is_configured.call_count)"},{"line_number":363,"context_line":"        mock_tempest_config.assert_called_once_with(self.verifier.verification,"},{"line_number":364,"context_line":"                                                    self.verifier.deployment)"},{"line_number":365,"context_line":"        mock_tempest_config.return_value.generate.assert_called_once_with("},{"line_number":366,"context_line":"            self.verifier.config_file"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_0493ea50","line":363,"updated":"2016-01-07 12:36:45.000000000","message":"Please, remove self.verifier.verification from here.","commit_id":"7acc5f833775bc06116bb3eaf15492a2ac5b6c8e"}]}
