)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4ecfd8ff193b08a1157e40f3043f3870101ca559","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Remove redundant heat templates from codebase"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Reasons:"},{"line_number":10,"context_line":" - Heat templates are not uniq anymore:"},{"line_number":11,"context_line":"   - last thing was - dependency on tcp/udp ports from configuration."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Changes:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"1ae5cdf2_f5b52e7d","line":10,"updated":"2014-06-27 19:50:12.000000000","message":"unique","commit_id":"d841d526a2b9556e5f6dcd908deb3d0b21f78269"}],"trove/common/exception.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"4ecfd8ff193b08a1157e40f3043f3870101ca559","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"class InvalidDatastoreManager(TroveError):"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    message \u003d _(\"Datastore manager %s cannot be found.\")"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class DatastoreOperationNotSupported(TroveError):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1ae5cdf2_f56c4e09","line":143,"updated":"2014-06-27 19:50:12.000000000","message":"the recommended way of i18n is to make the message ... %{datastore_manager}s ...","commit_id":"d841d526a2b9556e5f6dcd908deb3d0b21f78269"}],"trove/common/template.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"b8c512ffd6f5bd209965fd3f86eae5693b220e12","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"def load_heat_template(datastore_manager):"},{"line_number":116,"context_line":"    defaul_filename \u003d \"default.heat.template\""},{"line_number":117,"context_line":"    template_filename \u003d \"%s/heat.template\" % datastore_manager"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        exists \u003d (True if template_filename"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_e055b8c2","line":116,"range":{"start_line":116,"start_character":4,"end_line":116,"end_character":19},"updated":"2014-06-13 04:03:19.000000000","message":"default_filename","commit_id":"cae3de926834566aa9ad9e8f7ac098e7dc31e14c"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"c18970f57c47023f1f95bbb5a1b51189bf499938","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    template_name \u003d \"override.config.template\""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"def _validate_datastore(datastore):"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        CONF.get(datastore)"},{"line_number":120,"context_line":"    except oslo_config.NoSuchOptError:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_863c0231","line":117,"range":{"start_line":117,"start_character":24,"end_line":117,"end_character":33},"updated":"2014-06-23 06:57:12.000000000","message":"Shouldn\u0027t the name here be datastore_manager since that\u0027s what\u0027s being passed in? \nPlease let\u0027s be consistent with naming where we can. Thanks!","commit_id":"201fef810c87a090f02103f397af1451b59b823f"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"d511b1e415074506e6bda8b9035e8192a996dfdd","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        CONF.get(datastore)"},{"line_number":120,"context_line":"    except oslo_config.NoSuchOptError:"},{"line_number":121,"context_line":"        raise exception.TroveError(\"Invalid datastore %s\" % datastore)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"def load_heat_template(datastore_manager):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_a5418f3a","line":121,"updated":"2014-06-22 11:52:23.000000000","message":"A better error to raise would be DatastoreNotFound. Which means you have to change your test to catch this error as well but that means you don\u0027t have to rely on the contents of the string being thrown.","commit_id":"201fef810c87a090f02103f397af1451b59b823f"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"dd78c9f7f1fcaac43853694bbeef9b69c28cbbb7","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        exists \u003d (True if template_filename"},{"line_number":130,"context_line":"                  in ENV.list_templates() else False)"},{"line_number":131,"context_line":"        template_obj \u003d ENV.get_template("},{"line_number":132,"context_line":"            template_filename if exists else default_filename)"},{"line_number":133,"context_line":"        return template_obj"},{"line_number":134,"context_line":"    except jinja2.TemplateNotFound:"},{"line_number":135,"context_line":"        msg \u003d \"Missing heat template for %s\" % datastore_manager"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_b694a836","line":132,"updated":"2014-06-27 06:29:31.000000000","message":"You can make this much cleaner using a nice little method jinja has built in.\nhttp://jinja.pocoo.org/docs/api/#jinja2.Environment.select_template\n\n\n    template_name_patterns \u003d [\"%s/heat.template\" % datastore_manager, \"default.heat.template\"]\n    ENV.select_template(template_name_patterns)\n\nThis is similar to what we do on line 76 for the config templates.","commit_id":"46bdf8ba482b0055239850a9f74587724d18aafb"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"8d3ecc2e9406f9523f3e8d4e9c371b43aa70bca6","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        #           in ENV.list_templates() else False)"},{"line_number":131,"context_line":"        template_obj \u003d ENV.select_template(patterns)"},{"line_number":132,"context_line":"        # template_obj \u003d ENV.get_template("},{"line_number":133,"context_line":"        #     template_filename if exists else default_filename)"},{"line_number":134,"context_line":"        return template_obj"},{"line_number":135,"context_line":"    except jinja2.TemplateNotFound:"},{"line_number":136,"context_line":"        msg \u003d \"Missing heat template for %s\" % datastore_manager"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_1b672e26","line":133,"updated":"2014-06-27 17:58:00.000000000","message":"can you remove the commented lines? Doesnt look like they are needed.","commit_id":"224c22d48a0de9ade4764c79bbf68fbf982cf581"}],"trove/tests/unittests/common/test_template.py":[{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"b8c512ffd6f5bd209965fd3f86eae5693b220e12","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_heat_template_load_with_non_integrated_datastore(self):"},{"line_number":92,"context_line":"        self.assertIsNotNone("},{"line_number":93,"context_line":"            template.load_heat_template(\u0027mysql-blah\u0027))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_heat_template_load_success(self):"},{"line_number":96,"context_line":"        default \u003d \u0027default.heat.template\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_b89abb11","line":93,"updated":"2014-06-13 04:03:19.000000000","message":"mysql-blah is not a valid datastore, so why should this succeed?","commit_id":"cae3de926834566aa9ad9e8f7ac098e7dc31e14c"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"4d244faed02aa9f2df42da06e5eb27f7a367b330","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def test_heat_template_load_with_non_integrated_datastore(self):"},{"line_number":92,"context_line":"        self.assertIsNotNone("},{"line_number":93,"context_line":"            template.load_heat_template(\u0027mysql-blah\u0027))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_heat_template_load_success(self):"},{"line_number":96,"context_line":"        default \u003d \u0027default.heat.template\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_aa87bd5f","line":93,"in_reply_to":"1ae5cdf2_b89abb11","updated":"2014-06-13 08:32:59.000000000","message":"to show that it works with non-integrated datastores.","commit_id":"cae3de926834566aa9ad9e8f7ac098e7dc31e14c"}]}
