)]}'
{"trove/common/cfg.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    cfg.StrOpt(\u0027template_path\u0027,"},{"line_number":237,"context_line":"               default\u003d\u0027/etc/trove/templates/\u0027,"},{"line_number":238,"context_line":"               help\u003d\u0027Path which leads to datastore templates.\u0027),"},{"line_number":239,"context_line":"    cfg.ListOpt(\u0027template_name_patterns\u0027,"},{"line_number":240,"context_line":"                default\u003d[\u0027{name}/{version}/{flavor_ram}.config.template\u0027,"},{"line_number":241,"context_line":"                         \u0027{name}/{version}/config.template\u0027,"},{"line_number":242,"context_line":"                         \u0027{name}/config.template\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_391e3a64","line":239,"updated":"2014-05-02 16:24:26.000000000","message":"We should not be adding config options for this. Every single template we add would need that and it would get too complicated really fast. It should be deterministic where templates are located and this should be handled in the template logic itself.","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"}],"trove/common/template.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        rendering on the guest"},{"line_number":39,"context_line":"    \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    template_name_patterns_setting \u003d \"template_name_patterns\""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, datastore_version, flavor_dict, instance_id):"},{"line_number":44,"context_line":"        \"\"\"Constructor"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_59305ee8","line":41,"updated":"2014-05-02 16:24:26.000000000","message":"change this to template_name \u003d \"config.template\"","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        names \u003d [name.format(name\u003dself.datastore.datastore_name,"},{"line_number":61,"context_line":"                             manager\u003dself.datastore.manager,"},{"line_number":62,"context_line":"                             version\u003dself.datastore.name,"},{"line_number":63,"context_line":"                             flavor_ram\u003dself.flavor_dict[\u0027ram\u0027],"},{"line_number":64,"context_line":"                             flavor_name\u003dself.flavor_dict[\u0027name\u0027],"},{"line_number":65,"context_line":"                             flavor_id\u003dself.flavor_dict[\u0027id\u0027])"},{"line_number":66,"context_line":"                 for name in patterns]"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_39baba23","line":63,"updated":"2014-05-02 16:24:26.000000000","message":"There is no need to select the templates by flavor, that is out of the scope of this BP, basically by passing the flavor dict to the template during the render you can accomplish including a different template for example:\n\n      # mysql/config.template\n      {% set custom_template \u003d \u0027mysql/%s.config.template\u0027 % flavor.ram %}\n      {% include custom_template \u0027default_template_name_here\u0027 %}","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"c5ed225ba77c11330aac9a37851e7c9f3b45fc13","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                             flavor_name\u003dself.flavor_dict[\u0027name\u0027],"},{"line_number":65,"context_line":"                             flavor_id\u003dself.flavor_dict[\u0027id\u0027])"},{"line_number":66,"context_line":"                 for name in patterns]"},{"line_number":67,"context_line":"        for name in names:"},{"line_number":68,"context_line":"            try:"},{"line_number":69,"context_line":"                return ENV.get_template(name)"},{"line_number":70,"context_line":"            except jinja2.TemplateNotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_1dea390f","line":67,"updated":"2014-05-02 18:32:40.000000000","message":"This can be changed to use the get_or_select_template()\n\nhttp://jinja.pocoo.org/docs/api/#jinja2.Environment.get_or_select_template","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"class OverrideConfigTemplate(SingleInstanceConfigTemplate):"},{"line_number":109,"context_line":"    template_name_patterns_setting \u003d \"template_override_name_patterns\""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"def load_heat_template(datastore_manager):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_99ed8628","line":109,"updated":"2014-05-02 16:24:26.000000000","message":"see above","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"def load_heat_template(datastore_manager):"},{"line_number":113,"context_line":"    template_filename \u003d \"%s/heat.template\" % datastore_manager"},{"line_number":114,"context_line":"    try:"},{"line_number":115,"context_line":"        template_obj \u003d ENV.get_template(template_filename)"},{"line_number":116,"context_line":"        return template_obj"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_79ea8210","line":113,"updated":"2014-05-02 16:24:26.000000000","message":"do the same for heat","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"},{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"43ddd56e1878d25ed254eb50386839d97c352bd6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def get_template(self):"},{"line_number":68,"context_line":"        patterns \u003d [\u0027{name}/{version}/{template_name}\u0027,"},{"line_number":69,"context_line":"                    \u0027{name}/{template_name}\u0027,"},{"line_number":70,"context_line":"                    \u0027{manager}/{template_name}\u0027]"},{"line_number":71,"context_line":"        names \u003d [name.format(name\u003dself.datastore_version.datastore_name,"},{"line_number":72,"context_line":"                             manager\u003dself.datastore_version.manager,"},{"line_number":73,"context_line":"                             version\u003dself.datastore_version.name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7adec928_1641700b","line":70,"updated":"2014-05-21 16:09:34.000000000","message":"Since you already have self.datastore_dict you should use that to do the format below like so:\n\n    context \u003d self.datastore_dict.copy()\n    context[\u0027template_name\u0027] \u003d self.template_name\n    names \u003d [name.format(**context) for name in patterns]","commit_id":"2f0886f4324a93dea5446a4e557e7eed9044c651"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"951a460680d4982a5ddad878a8aa296ee68b0ccc","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def get_template(self):"},{"line_number":68,"context_line":"        patterns \u003d [\u0027{name}/{version}/{template_name}\u0027,"},{"line_number":69,"context_line":"                    \u0027{name}/{template_name}\u0027,"},{"line_number":70,"context_line":"                    \u0027{manager}/{template_name}\u0027]"},{"line_number":71,"context_line":"        names \u003d [name.format(name\u003dself.datastore_version.datastore_name,"},{"line_number":72,"context_line":"                             manager\u003dself.datastore_version.manager,"},{"line_number":73,"context_line":"                             version\u003dself.datastore_version.name,"}],"source_content_type":"text/x-python","patch_set":13,"id":"7adec928_f693244d","line":70,"in_reply_to":"7adec928_1641700b","updated":"2014-05-21 16:17:30.000000000","message":"good point thats pretty.","commit_id":"2f0886f4324a93dea5446a4e557e7eed9044c651"}],"trove/configuration/models.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"43ddd56e1878d25ed254eb50386839d97c352bd6","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            for i in items:"},{"line_number":192,"context_line":"                overrides[i.configuration_key] \u003d i.configuration_value"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"            task_api.API(context).update_overrides(instance.id,"},{"line_number":195,"context_line":"                                                   overrides)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7adec928_9654a0cb","line":194,"updated":"2014-05-21 16:09:34.000000000","message":"is this a pep8 issue? why change?","commit_id":"2f0886f4324a93dea5446a4e557e7eed9044c651"},{"author":{"_account_id":4240,"name":"Craig Vyvial","email":"cp16net@gmail.com","username":"cp16net"},"change_message_id":"951a460680d4982a5ddad878a8aa296ee68b0ccc","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            for i in items:"},{"line_number":192,"context_line":"                overrides[i.configuration_key] \u003d i.configuration_value"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"            task_api.API(context).update_overrides(instance.id,"},{"line_number":195,"context_line":"                                                   overrides)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7adec928_16825000","line":194,"in_reply_to":"7adec928_9654a0cb","updated":"2014-05-21 16:17:30.000000000","message":"i dunno why i did this other than i probably originally made this signature longer and this was the fall out of it after changing it back.","commit_id":"2f0886f4324a93dea5446a4e557e7eed9044c651"}],"trove/datastore/models.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    def datastore_name(self):"},{"line_number":133,"context_line":"        if self._datastore_name is None:"},{"line_number":134,"context_line":"            self._datastore_name \u003d Datastore.load(self.datastore_id)"},{"line_number":135,"context_line":"        return self._datastore_name"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    #TODO(tim.simpson): This would be less confusing if it was called \"version\""},{"line_number":138,"context_line":"    #                   and datastore_name was called \"name\"."}],"source_content_type":"text/x-python","patch_set":7,"id":"9ad9bd40_f9c4d293","line":135,"updated":"2014-05-02 16:24:26.000000000","message":"isn\u0027t this returning the Datastore model not just the name?","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"}],"trove/taskmanager/models.py":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"43ddd56e1878d25ed254eb50386839d97c352bd6","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def _render_config(self, flavor):"},{"line_number":143,"context_line":"        config \u003d template.SingleInstanceConfigTemplate("},{"line_number":144,"context_line":"            self.datastore_version, flavor, self.id)"},{"line_number":145,"context_line":"        config.render()"},{"line_number":146,"context_line":"        return config"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"7adec928_d62b8831","line":144,"updated":"2014-05-21 16:09:34.000000000","message":"nice cleanup","commit_id":"2f0886f4324a93dea5446a4e557e7eed9044c651"}],"trove/templates/mysql/mysql-test/1024.config.template":[{"author":{"_account_id":6268,"name":"Robert Myers","email":"myer0052@gmail.com","username":"rmyers"},"change_message_id":"f9038ff45fe0b9b485dac4d74d7d331235053234","unresolved":false,"context_lines":[{"line_number":1,"context_line":"hyper \u003d 0M"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9ad9bd40_f920524b","line":1,"updated":"2014-05-02 16:24:26.000000000","message":"No need for flavor templates. This is easily accomplish by using jinja templates during render as I described eariler","commit_id":"cf76564821567665ba3df0bf9f73d10e831dcf79"}]}
