)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9eccdd6978222e28961cb8053b07f5dc4beb2e42","unresolved":false,"context_lines":[{"line_number":9,"context_line":"support for template add and template delete"},{"line_number":10,"context_line":"not in use until vitrage backend support the changes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I07741ed100b9eb70b303567706b659d10a34b156"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f91af0f_10da9b16","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":6},"updated":"2017-12-31 07:40:58.000000000","message":"Please add another line to the commit message:\n\nImplements: blueprint crud-templates\n\nIt should automatically add a link to this gerrit topic in https://blueprints.launchpad.net/vitrage/+spec/crud-templates","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"}],"tools/vitrage.bash_completion":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6f47d900ef24fc8afb2e85647a6df3b828148219","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  cmds_resource_show\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --variable --prefix\u0027"},{"line_number":23,"context_line":"  cmds_template\u003d\u0027list show validate add delete\u0027"},{"line_number":24,"context_line":"  cmds_template_add\u003d\u0027-h --help --path --type\u0027"},{"line_number":25,"context_line":"  cmds_template_delete\u003d\u0027-h --help\u0027"},{"line_number":26,"context_line":"  cmds_template_list\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --quote\u0027"},{"line_number":27,"context_line":"  cmds_template_show\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --variable --prefix\u0027"},{"line_number":28,"context_line":"  cmds_template_validate\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --variable --prefix --path\u0027"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9f91af0f_c6b8bd2b","line":25,"range":{"start_line":25,"start_character":24,"end_line":25,"end_character":33},"updated":"2018-01-04 16:49:14.000000000","message":"What about the template uuid?","commit_id":"b0bb8c5ebca60907fd6618ae2610db15ce2f47c4"},{"author":{"_account_id":26095,"name":"Idan Kinory","email":"idan.kinory@nokia.com","username":"idankin"},"change_message_id":"91c8308045db65db5814ccd1aed85aa221411672","unresolved":false,"context_lines":[{"line_number":22,"context_line":"  cmds_resource_show\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --variable --prefix\u0027"},{"line_number":23,"context_line":"  cmds_template\u003d\u0027list show validate add delete\u0027"},{"line_number":24,"context_line":"  cmds_template_add\u003d\u0027-h --help --path --type\u0027"},{"line_number":25,"context_line":"  cmds_template_delete\u003d\u0027-h --help\u0027"},{"line_number":26,"context_line":"  cmds_template_list\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --quote\u0027"},{"line_number":27,"context_line":"  cmds_template_show\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --variable --prefix\u0027"},{"line_number":28,"context_line":"  cmds_template_validate\u003d\u0027-h --help -f --format -c --column --max-width --print-empty --noindent --variable --prefix --path\u0027"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7f96bb07_a5ab64d4","line":25,"range":{"start_line":25,"start_character":24,"end_line":25,"end_character":33},"in_reply_to":"9f91af0f_c6b8bd2b","updated":"2018-01-11 17:27:04.000000000","message":"--uuid is not used . the syntax is :vitrage template delete 24bf75c8-e0c5-4c51-ba82-00eba9718929.","commit_id":"b0bb8c5ebca60907fd6618ae2610db15ce2f47c4"}],"vitrageclient/v1/cli/template.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9eccdd6978222e28961cb8053b07f5dc4beb2e42","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                            default\u003d\u0027standard\u0027,"},{"line_number":91,"context_line":"                            choices\u003d[\u0027standard\u0027, \u0027definition\u0027, \u0027equivalence\u0027],"},{"line_number":92,"context_line":"                            help\u003d\u0027Template type. Valid types:\u0027"},{"line_number":93,"context_line":"                                 \u0027[standard, definition, equivalence]\u0027)"},{"line_number":94,"context_line":"        return parser"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_f0e137d2","line":93,"range":{"start_line":93,"start_character":34,"end_line":93,"end_character":69},"updated":"2017-12-31 07:40:58.000000000","message":"How about writing a short explanation about each type?","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9eccdd6978222e28961cb8053b07f5dc4beb2e42","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                                 \u0027[standard, definition, equivalence]\u0027)"},{"line_number":94,"context_line":"        return parser"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def take_action(self, parsed_args):"},{"line_number":97,"context_line":"        path \u003d parsed_args.path"},{"line_number":98,"context_line":"        template_type \u003d parsed_args.type"},{"line_number":99,"context_line":"        templates \u003d utils.get_client(self).template.add("}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_50d023f8","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":19},"updated":"2017-12-31 07:40:58.000000000","message":"Two issues:\n\n1. I think that as a first action you should call template validate and at least issue a warning if the template is not valid (and allow adding it anyway, I guess. Or maybe have a --force flag). \n\n2. Template validate currently works only on standard templates. A user that wishes to add an equivalence template might forget to set the correct type (because we have a default), and will get a misleading validation error (as a result of the standard template validation). Any idea how we can solve this? you don\u0027t need to implement template validation for equivalences and definitions as part of your change; I just think we should try to avoid having wrong error messages (like: scenario is missing). Maybe even remove the default type until we have a correct validation.","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"},{"author":{"_account_id":26095,"name":"Idan Kinory","email":"idan.kinory@nokia.com","username":"idankin"},"change_message_id":"91c8308045db65db5814ccd1aed85aa221411672","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                                 \u0027[standard, definition, equivalence]\u0027)"},{"line_number":94,"context_line":"        return parser"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def take_action(self, parsed_args):"},{"line_number":97,"context_line":"        path \u003d parsed_args.path"},{"line_number":98,"context_line":"        template_type \u003d parsed_args.type"},{"line_number":99,"context_line":"        templates \u003d utils.get_client(self).template.add("}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_9e1bdf19","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":19},"in_reply_to":"9f91af0f_50d023f8","updated":"2018-01-11 17:27:04.000000000","message":"standard and definition templates are validated. \nI dropped the default value (standard), to prevent errors as you said.","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"826b649dcb35bbef0985b30dd8b1b1e2462ed7b7","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def get_parser(self, prog_name):"},{"line_number":113,"context_line":"        parser \u003d super(TemplateDelete, self).get_parser(prog_name)"},{"line_number":114,"context_line":"        parser.add_argument(\u0027uuid\u0027, help\u003d\u0027ID of a template\u0027)"},{"line_number":115,"context_line":"        return parser"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_3dedfd8a","line":114,"range":{"start_line":114,"start_character":29,"end_line":114,"end_character":33},"updated":"2018-01-04 10:18:44.000000000","message":"template_id","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6f47d900ef24fc8afb2e85647a6df3b828148219","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def get_parser(self, prog_name):"},{"line_number":113,"context_line":"        parser \u003d super(TemplateDelete, self).get_parser(prog_name)"},{"line_number":114,"context_line":"        parser.add_argument(\u0027uuid\u0027, help\u003d\u0027ID of a template\u0027)"},{"line_number":115,"context_line":"        return parser"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_06dd456f","line":114,"range":{"start_line":114,"start_character":29,"end_line":114,"end_character":33},"in_reply_to":"9f91af0f_3dedfd8a","updated":"2018-01-04 16:49:14.000000000","message":"Are you sure? other entities in openstack have a uuid","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"826b649dcb35bbef0985b30dd8b1b1e2462ed7b7","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def take_action(self, parsed_args):"},{"line_number":122,"context_line":"        uuid \u003d parsed_args.uuid"},{"line_number":123,"context_line":"        utils.get_client(self).template.delete(uuid\u003duuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_fdfeb536","line":123,"range":{"start_line":123,"start_character":47,"end_line":123,"end_character":56},"updated":"2018-01-04 10:18:44.000000000","message":"rename both to template_id","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"}],"vitrageclient/v1/template.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9eccdd6978222e28961cb8053b07f5dc4beb2e42","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return self.api.get(url).json()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def add(self, path, template_type):"},{"line_number":39,"context_line":"        \"\"\"Add new template\"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        params \u003d dict(path\u003dpath, template_type\u003dtemplate_type)"},{"line_number":42,"context_line":"        return self.api.put(self.url, json\u003dparams).json()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_70cd275c","line":39,"range":{"start_line":39,"start_character":15,"end_line":39,"end_character":18},"updated":"2017-12-31 07:40:58.000000000","message":"a new","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"826b649dcb35bbef0985b30dd8b1b1e2462ed7b7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        params \u003d dict(path\u003dpath, template_type\u003dtemplate_type)"},{"line_number":42,"context_line":"        return self.api.put(self.url, json\u003dparams).json()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def delete(self, uuid):"},{"line_number":45,"context_line":"        \"\"\"Delete existing\"\"\""},{"line_number":46,"context_line":"        params \u003d dict(uuid\u003duuid)"},{"line_number":47,"context_line":"        return self.api.delete(self.url, json\u003dparams).json()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_7d98651a","line":44,"range":{"start_line":44,"start_character":21,"end_line":44,"end_character":25},"updated":"2018-01-04 10:18:44.000000000","message":"template_id","commit_id":"ffbb12858632da6d4ddfe6f98fdeabac39de64c7"}]}
