)]}'
{"trove/common/template.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"4d04ccbdc49b5af31f60b7abfab5a2e8febcd274","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    jinja2.FileSystemLoader(CONF.configuration_path),"},{"line_number":22,"context_line":"    jinja2.FileSystemLoader(CONF.heat_path),"},{"line_number":23,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/configuration\"),"},{"line_number":24,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/heat\")"},{"line_number":25,"context_line":"]))"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fvx0%3D","line":24,"updated":"2013-10-29 15:51:46.000000000","message":"My only nit is that adds an extra config value you need to set and could easily be accomplished with one template directory and then use get_template(\u0027heat/%s.heat.template\u0027 % service_type)","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b385e7534d2e8ff5d0d70daad14e431cb2f4ae90","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    jinja2.FileSystemLoader(CONF.configuration_path),"},{"line_number":22,"context_line":"    jinja2.FileSystemLoader(CONF.heat_path),"},{"line_number":23,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/configuration\"),"},{"line_number":24,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/heat\")"},{"line_number":25,"context_line":"]))"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fvh0%3D","line":24,"in_reply_to":"AAAATn%2F%2FvrA%3D","updated":"2013-10-29 16:52:53.000000000","message":"For nature, config templates and heat templates are different, so it would be a mess to store them in one config.","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"6023143ae23104f1f02d4bc70d81dc06788dd603","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    jinja2.FileSystemLoader(CONF.configuration_path),"},{"line_number":22,"context_line":"    jinja2.FileSystemLoader(CONF.heat_path),"},{"line_number":23,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/configuration\"),"},{"line_number":24,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/heat\")"},{"line_number":25,"context_line":"]))"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FvrA%3D","line":24,"in_reply_to":"AAAATn%2F%2FvwM%3D","updated":"2013-10-29 16:12:21.000000000","message":"Being able to configure the path is good. But what is the point of having two separate locations if file names for configuration and heat templates will be different?","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"a37e48d3219d5f430c8bd9d16a129762be4c7119","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    jinja2.FileSystemLoader(CONF.configuration_path),"},{"line_number":22,"context_line":"    jinja2.FileSystemLoader(CONF.heat_path),"},{"line_number":23,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/configuration\"),"},{"line_number":24,"context_line":"    jinja2.PackageLoader(\"trove\", \"templates/heat\")"},{"line_number":25,"context_line":"]))"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FvwM%3D","line":24,"in_reply_to":"AAAATn%2F%2Fvx0%3D","updated":"2013-10-29 15:55:34.000000000","message":"Point is that we could store template anywhere we want. That is what is thought when i was writing this code.","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"6023143ae23104f1f02d4bc70d81dc06788dd603","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"class HeatTemplateLoader(object):"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    @classmethod"},{"line_number":70,"context_line":"    def get_template(cls, service_type):"},{"line_number":71,"context_line":"        template_filename \u003d \"%s.heat.template\" % service_type"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2Fvqg%3D","line":68,"updated":"2013-10-29 16:12:21.000000000","message":"Why do you use a class with a single classmethod? Maybe it is worth just having a function?","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"51c7ae1bfa4e4d35fef1cb559650d2ea5c55e992","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def get_env(datastore_type):"},{"line_number":25,"context_line":"    return jinja2.Environment(loader\u003djinja2.ChoiceLoader(["},{"line_number":26,"context_line":"        jinja2.FileSystemLoader(CONF.template_path),"},{"line_number":27,"context_line":"        jinja2.PackageLoader(\"trove\", \"templates/%s\" % datastore_type),"},{"line_number":28,"context_line":"    ]))"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FqCw%3D","line":26,"updated":"2013-10-30 19:03:01.000000000","message":"I\u0027m not a huge fan of passing the datastore_type to this function. But if we do, we should add one more FileSystemLoader(CONF.template_path + \u0027/%s\u0027 %datastore_type) \nThat way we can organize the templates in our custom path either way.","commit_id":"156e0e05bcf4094b5b96fbd37db0aac0dc6c9553"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"51c7ae1bfa4e4d35fef1cb559650d2ea5c55e992","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return abs(hash(self.instance_id) % (2 ** 31))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"def load_heat_tempalte(datastore_type):"},{"line_number":72,"context_line":"    template_filename \u003d \"%s.heat.template\" % datastore_type"},{"line_number":73,"context_line":"    env \u003d get_env(datastore_type)"},{"line_number":74,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FqEg%3D","line":71,"updated":"2013-10-30 19:03:01.000000000","message":"load_heat_template","commit_id":"156e0e05bcf4094b5b96fbd37db0aac0dc6c9553"}],"trove/templates/heat/mysql.heat.template":[{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"ec4b3fcad2fa60a36ad122748d79b64fc841abb6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                Fn::Join:"},{"line_number":26,"context_line":"                - \u0027\u0027"},{"line_number":27,"context_line":"                - [\"[DEFAULT]\\nguest_id\u003d\", {Ref: InstanceId},"},{"line_number":28,"context_line":"                  \"\\nservice_type\u003dmysql\"]"},{"line_number":29,"context_line":"              mode: \u0027000644\u0027"},{"line_number":30,"context_line":"              owner: root"},{"line_number":31,"context_line":"              group: root"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2Fvc0%3D","line":28,"updated":"2013-10-29 16:46:41.000000000","message":"can we use service_type from _create_server_volume_heat from trove.taskmanager.models, so if thats the case, we have less hard-codes for mysql.","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b385e7534d2e8ff5d0d70daad14e431cb2f4ae90","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                Fn::Join:"},{"line_number":26,"context_line":"                - \u0027\u0027"},{"line_number":27,"context_line":"                - [\"[DEFAULT]\\nguest_id\u003d\", {Ref: InstanceId},"},{"line_number":28,"context_line":"                  \"\\nservice_type\u003dmysql\"]"},{"line_number":29,"context_line":"              mode: \u0027000644\u0027"},{"line_number":30,"context_line":"              owner: root"},{"line_number":31,"context_line":"              group: root"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2Fvak%3D","line":28,"in_reply_to":"AAAATn%2F%2Fvc0%3D","updated":"2013-10-29 16:52:53.000000000","message":"No, we would not use it, because community decided to have one template per service type.","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"}],"trove/tests/unittests/common/test_template.py":[{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"6023143ae23104f1f02d4bc70d81dc06788dd603","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.assertRaises(template.jinja2.TemplateNotFound,"},{"line_number":85,"context_line":"                          template.HeatTemplateLoader.get_template,"},{"line_number":86,"context_line":"                          \u0027mysql\u0027)"},{"line_number":87,"context_line":"        template.ENV.get_template \u003d real_env"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def test_heat_template_load_success(self):"},{"line_number":90,"context_line":"        htmpl \u003d template.HeatTemplateLoader.get_template(\u0027mysql\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FvpQ%3D","line":87,"updated":"2013-10-29 16:12:21.000000000","message":"if test will fail, this cleanup will not be executed","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"b385e7534d2e8ff5d0d70daad14e431cb2f4ae90","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.assertRaises(template.jinja2.TemplateNotFound,"},{"line_number":85,"context_line":"                          template.HeatTemplateLoader.get_template,"},{"line_number":86,"context_line":"                          \u0027mysql\u0027)"},{"line_number":87,"context_line":"        template.ENV.get_template \u003d real_env"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def test_heat_template_load_success(self):"},{"line_number":90,"context_line":"        htmpl \u003d template.HeatTemplateLoader.get_template(\u0027mysql\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2FvhU%3D","line":87,"in_reply_to":"AAAATn%2F%2FvpQ%3D","updated":"2013-10-29 16:52:53.000000000","message":"agreed","commit_id":"91aca6685bbbbcecad3f0ef987de74771a429197"}]}
