)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"91a83cc154e519d963871d4d1b37412ff550e490","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Support includable files in Vitrage templates."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ie8e950842235c4bdd7542452c0770fd753cfc342"},{"line_number":10,"context_line":"Implements: blueprint includables"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df3967d1_9d5e5d10","line":10,"range":{"start_line":10,"start_character":22,"end_line":10,"end_character":33},"updated":"2017-08-01 14:48:49.000000000","message":"there is a problem with the link it cannot find the blueprint","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/api_handler/apis/template.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    FAILED_MSG \u003d \u0027validation failed\u0027"},{"line_number":35,"context_line":"    OK_MSG \u003d \u0027validation OK\u0027"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self, includables, templates):"},{"line_number":38,"context_line":"        self.includables \u003d includables"},{"line_number":39,"context_line":"        self.templates \u003d templates"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_3aabf789","line":36,"updated":"2017-08-01 15:26:02.000000000","message":"Add a comment above the init that explains the \"included templates\"","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    FAILED_MSG \u003d \u0027validation failed\u0027"},{"line_number":35,"context_line":"    OK_MSG \u003d \u0027validation OK\u0027"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def __init__(self, includables, templates):"},{"line_number":38,"context_line":"        self.includables \u003d includables"},{"line_number":39,"context_line":"        self.templates \u003d templates"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_5abfdbcf","line":37,"updated":"2017-08-01 15:26:02.000000000","message":"Included_templatees","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                continue"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            content_result \u003d content_validation("},{"line_number":90,"context_line":"                template_def,"},{"line_number":91,"context_line":"                self.def_templates)"},{"line_number":92,"context_line":"            if not content_result.is_valid_config:"},{"line_number":93,"context_line":"                self._add_result(path,"},{"line_number":94,"context_line":"                                 self.FAILED_MSG,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_02636cde","line":91,"range":{"start_line":90,"start_character":16,"end_line":91,"end_character":34},"updated":"2017-08-06 15:13:54.000000000","message":"This is very confusing... I think you should rename one of them","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                continue"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            content_result \u003d content_validation("},{"line_number":90,"context_line":"                template_def,"},{"line_number":91,"context_line":"                self.def_templates)"},{"line_number":92,"context_line":"            if not content_result.is_valid_config:"},{"line_number":93,"context_line":"                self._add_result(path,"},{"line_number":94,"context_line":"                                 self.FAILED_MSG,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_78d79025","line":91,"range":{"start_line":90,"start_character":16,"end_line":91,"end_character":34},"in_reply_to":"bf3e73b7_02636cde","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        results \u003d []"},{"line_number":74,"context_line":"        for template in templates:"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"            template \u003d template[1]"},{"line_number":77,"context_line":"            path \u003d template[0]"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"            syntax_result \u003d syntax_validation(template)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_9de67d44","line":76,"range":{"start_line":76,"start_character":12,"end_line":76,"end_character":34},"updated":"2017-08-09 11:55:06.000000000","message":"I think it is confusing, even if it works. Please think of a different name. What other fields does the template has, other than template[1]?","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"}],"vitrage/api_handler/service.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                     AlarmApis(self.entity_graph, self.conf),"},{"line_number":54,"context_line":"                     RcaApis(self.entity_graph, self.conf),"},{"line_number":55,"context_line":"                     TemplateApis("},{"line_number":56,"context_line":"                         self.scenario_repo.includables,"},{"line_number":57,"context_line":"                         self.scenario_repo.templates),"},{"line_number":58,"context_line":"                     EventApis(self.conf),"},{"line_number":59,"context_line":"                     ResourceApis(self.entity_graph, self.conf)]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_9a99c37a","line":56,"updated":"2017-08-01 15:26:02.000000000","message":"included_templates","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                     RcaApis(self.entity_graph, self.conf),"},{"line_number":55,"context_line":"                     TemplateApis("},{"line_number":56,"context_line":"                         self.scenario_repo.templates,"},{"line_number":57,"context_line":"                         self.scenario_repo.def_templates,),"},{"line_number":58,"context_line":"                     EventApis(self.conf),"},{"line_number":59,"context_line":"                     ResourceApis(self.entity_graph, self.conf)]"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_e25f480c","line":57,"range":{"start_line":57,"start_character":57,"end_line":57,"end_character":58},"updated":"2017-08-06 15:13:54.000000000","message":"Should be removed?","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                     RcaApis(self.entity_graph, self.conf),"},{"line_number":55,"context_line":"                     TemplateApis("},{"line_number":56,"context_line":"                         self.scenario_repo.templates,"},{"line_number":57,"context_line":"                         self.scenario_repo.def_templates,),"},{"line_number":58,"context_line":"                     EventApis(self.conf),"},{"line_number":59,"context_line":"                     ResourceApis(self.entity_graph, self.conf)]"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_985fd4e4","line":57,"range":{"start_line":57,"start_character":57,"end_line":57,"end_character":58},"in_reply_to":"bf3e73b7_e25f480c","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"e48139c974a02594004ef1461442ebc638218285"}],"vitrage/evaluator/__init__.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":25,"context_line":"               default\u003d\u0027/etc/vitrage/templates/equivalences\u0027,"},{"line_number":26,"context_line":"               help\u003d\u0027A path for entity equivalences used by the evaluator\u0027"},{"line_number":27,"context_line":"               ),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027/etc/vitrage/templates/includables\u0027,"},{"line_number":30,"context_line":"               help\u003d\u0027A path for includable templates used by the evaluator\u0027)"},{"line_number":31,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_5a8d9b2f","line":28,"updated":"2017-08-01 15:26:02.000000000","message":"included_templates_dir","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":26,"context_line":"               help\u003d\u0027A path for entity equivalences used by the evaluator\u0027"},{"line_number":27,"context_line":"               ),"},{"line_number":28,"context_line":"    cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":29,"context_line":"               default\u003d\u0027/etc/vitrage/templates/includables\u0027,"},{"line_number":30,"context_line":"               help\u003d\u0027A path for includable templates used by the evaluator\u0027)"},{"line_number":31,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_da786b2c","line":29,"updated":"2017-08-01 15:26:02.000000000","message":"includedtemplates or included","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/evaluator/scenario_repository.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from vitrage.evaluator.template_validation.content.template_content_validator \\"},{"line_number":25,"context_line":"    import content_validation"},{"line_number":26,"context_line":"from vitrage.evaluator.template_validation.content.template_content_validator \\"},{"line_number":27,"context_line":"    import includable_content_validation"},{"line_number":28,"context_line":"from vitrage.evaluator.template_validation.template_syntax_validator import \\"},{"line_number":29,"context_line":"    includable_syntax_validation"},{"line_number":30,"context_line":"from vitrage.evaluator.template_validation.template_syntax_validator import \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_7a8f3f23","line":27,"updated":"2017-08-01 15:26:02.000000000","message":"included_content_validation","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from vitrage.evaluator.template_validation.content.template_content_validator \\"},{"line_number":27,"context_line":"    import includable_content_validation"},{"line_number":28,"context_line":"from vitrage.evaluator.template_validation.template_syntax_validator import \\"},{"line_number":29,"context_line":"    includable_syntax_validation"},{"line_number":30,"context_line":"from vitrage.evaluator.template_validation.template_syntax_validator import \\"},{"line_number":31,"context_line":"    syntax_validation"},{"line_number":32,"context_line":"from vitrage.utils import datetime as datetime_utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_1a9cb35b","line":29,"updated":"2017-08-01 15:26:02.000000000","message":"included_syntax_validation","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":40,"context_line":"class ScenarioRepository(object):"},{"line_number":41,"context_line":"    def __init__(self, conf):"},{"line_number":42,"context_line":"        self._templates \u003d {}"},{"line_number":43,"context_line":"        self._includables \u003d {}"},{"line_number":44,"context_line":"        self.entity_equivalences \u003d EquivalenceRepository().load_files("},{"line_number":45,"context_line":"            conf.evaluator.equivalences_dir)"},{"line_number":46,"context_line":"        self.relationship_scenarios \u003d defaultdict(list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_da9d0b58","line":43,"updated":"2017-08-01 15:26:02.000000000","message":"_included_templates","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            conf.evaluator.equivalences_dir)"},{"line_number":46,"context_line":"        self.relationship_scenarios \u003d defaultdict(list)"},{"line_number":47,"context_line":"        self.entity_scenarios \u003d defaultdict(list)"},{"line_number":48,"context_line":"        self._load_includable_files(conf)"},{"line_number":49,"context_line":"        self._load_templates_files(conf)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_9aa783a8","line":48,"updated":"2017-08-01 15:26:02.000000000","message":"_load_included_files","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    @property"},{"line_number":56,"context_line":"    def includables(self):"},{"line_number":57,"context_line":"        return self._includables"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @includables.setter"},{"line_number":60,"context_line":"    def includables(self, includables):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_1ab5d3cd","line":57,"updated":"2017-08-01 15:26:02.000000000","message":"self._indluded_templates","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @includables.setter"},{"line_number":60,"context_line":"    def includables(self, includables):"},{"line_number":61,"context_line":"        self._includables \u003d includables"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @templates.setter"},{"line_number":64,"context_line":"    def templates(self, templates):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_facb2f50","line":61,"updated":"2017-08-01 15:26:02.000000000","message":"you know what to do","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        if not result.is_valid_config:"},{"line_number":99,"context_line":"            LOG.info(\u0027Unable to load template: %s\u0027 % result.comment)"},{"line_number":100,"context_line":"        else:"},{"line_number":101,"context_line":"            result \u003d content_validation(template_def, self._includables)"},{"line_number":102,"context_line":"            if not result.is_valid_config:"},{"line_number":103,"context_line":"                LOG.info(\u0027Unable to load template: %s\u0027 % result.comment)"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_3df3f10c","line":101,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                                                      current_time,"},{"line_number":109,"context_line":"                                                      result)"},{"line_number":110,"context_line":"        if result.is_valid_config:"},{"line_number":111,"context_line":"            template_data \u003d TemplateData(template_def, self._includables)"},{"line_number":112,"context_line":"            for scenario in template_data.scenarios:"},{"line_number":113,"context_line":"                for equivalent_scenario in self._expand_equivalence(scenario):"},{"line_number":114,"context_line":"                    self._add_scenario(equivalent_scenario)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_1df6edfa","line":111,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    def add_includable(self, include_def):"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        current_time \u003d datetime_utils.utcnow()"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        result \u003d includable_syntax_validation(include_def)"},{"line_number":121,"context_line":"        if not result.is_valid_config:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_fd73297f","line":118,"updated":"2017-08-01 15:26:02.000000000","message":"move into \"else\"","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                LOG.info(\u0027Unable to load include: %s\u0027 % result.comment)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"            include_uuid \u003d uuidutils.generate_uuid()"},{"line_number":129,"context_line":"            self._includables[str(include_uuid)] \u003d Template(include_uuid,"},{"line_number":130,"context_line":"                                                            include_def,"},{"line_number":131,"context_line":"                                                            current_time,"},{"line_number":132,"context_line":"                                                            result)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_3ddd3142","line":129,"updated":"2017-08-01 15:26:02.000000000","message":"Do we want to show the included template if it\u0027s invalid ?\nThe answer is probably \"yes\", just make sure of it.","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        for relationship in scenario.relationships.values():"},{"line_number":162,"context_line":"            self._add_relationship_scenario(scenario, relationship)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _load_includable_files(self, conf):"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        includables_dir \u003d conf.evaluator.includables_dir"},{"line_number":167,"context_line":"        includable_defs \u003d file_utils.load_yaml_files(includables_dir)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_5ae0fbcc","line":164,"updated":"2017-08-01 15:26:02.000000000","message":"_load_indluded_files","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _load_includable_files(self, conf):"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        includables_dir \u003d conf.evaluator.includables_dir"},{"line_number":167,"context_line":"        includable_defs \u003d file_utils.load_yaml_files(includables_dir)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        for includable_def in includable_defs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_3ae777e7","line":166,"updated":"2017-08-01 15:26:02.000000000","message":"...","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        try:"},{"line_number":70,"context_line":"            entity_key \u003d frozenset(vertex.properties.items())"},{"line_number":71,"context_line":"        except Exception as e:"},{"line_number":72,"context_line":"            LOG.error(\u0027frozenset for vertex failed %s\u0027, str(vertex))"},{"line_number":73,"context_line":"            raise e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        scenarios \u003d []"},{"line_number":76,"context_line":"        for scenario_key, value in self.entity_scenarios.items():"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_62a918de","line":73,"range":{"start_line":72,"start_character":12,"end_line":73,"end_character":19},"updated":"2017-08-06 15:13:54.000000000","message":"When is it expected to happen?\nAnd do you want to rethrow the exception, or maybe just log it and return?","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                for equivalent_scenario in self._expand_equivalence(scenario):"},{"line_number":117,"context_line":"                    self._add_scenario(equivalent_scenario)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def add_def_template(self, def_template_def):"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        result \u003d def_template_syntax_validation(def_template_def)"},{"line_number":122,"context_line":"        if not result.is_valid_config:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_02b80c28","line":119,"range":{"start_line":119,"start_character":31,"end_line":119,"end_character":47},"updated":"2017-08-06 15:13:54.000000000","message":"Too many \u0027def\u0027s...","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                for equivalent_scenario in self._expand_equivalence(scenario):"},{"line_number":117,"context_line":"                    self._add_scenario(equivalent_scenario)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def add_def_template(self, def_template_def):"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        result \u003d def_template_syntax_validation(def_template_def)"},{"line_number":122,"context_line":"        if not result.is_valid_config:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_b8e2982e","line":119,"range":{"start_line":119,"start_character":31,"end_line":119,"end_character":47},"in_reply_to":"bf3e73b7_02b80c28","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            self._add_relationship_scenario(scenario, relationship)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def _load_def_template_files(self, conf):"},{"line_number":167,"context_line":"        if \u0027def_templates_dir\u0027 in conf.evaluator:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"            def_templates_dir \u003d conf.evaluator.def_templates_dir"},{"line_number":170,"context_line":"            def_template_defs \u003d file_utils.load_yaml_files(def_templates_dir)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_e2b4e837","line":167,"range":{"start_line":167,"start_character":11,"end_line":167,"end_character":30},"updated":"2017-08-06 15:13:54.000000000","message":"Please put it in a constant","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            self._add_relationship_scenario(scenario, relationship)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def _load_def_template_files(self, conf):"},{"line_number":167,"context_line":"        if \u0027def_templates_dir\u0027 in conf.evaluator:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"            def_templates_dir \u003d conf.evaluator.def_templates_dir"},{"line_number":170,"context_line":"            def_template_defs \u003d file_utils.load_yaml_files(def_templates_dir)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_58cbaca4","line":167,"range":{"start_line":167,"start_character":11,"end_line":167,"end_character":30},"in_reply_to":"bf3e73b7_e2b4e837","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            self._add_relationship_scenario(scenario, relationship)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def _load_def_template_files(self, conf):"},{"line_number":168,"context_line":"        def_templates_dir \u003d \u0027def_templates_dir\u0027"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        if def_templates_dir in conf.evaluator:"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_1dcccdba","line":168,"range":{"start_line":168,"start_character":8,"end_line":168,"end_character":47},"updated":"2017-08-09 11:55:06.000000000","message":"Should be in capital letters, on the top of the file","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        result \u003d def_template_syntax_validation(def_template)"},{"line_number":123,"context_line":"        if not result.is_valid_config:"},{"line_number":124,"context_line":"            LOG.info(\u0027Unable to load definition template: %s\u0027 % result.comment)"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            result \u003d def_template_content_validation(def_template)"},{"line_number":127,"context_line":"            if not result.is_valid_config:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_5e624b40","line":124,"updated":"2017-09-24 15:57:45.000000000","message":"Adapt message","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        result \u003d def_template_syntax_validation(def_template)"},{"line_number":123,"context_line":"        if not result.is_valid_config:"},{"line_number":124,"context_line":"            LOG.info(\u0027Unable to load definition template: %s\u0027 % result.comment)"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            result \u003d def_template_content_validation(def_template)"},{"line_number":127,"context_line":"            if not result.is_valid_config:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_8ed64327","line":124,"in_reply_to":"7f515b1d_5e624b40","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            result \u003d def_template_content_validation(def_template)"},{"line_number":127,"context_line":"            if not result.is_valid_config:"},{"line_number":128,"context_line":"                LOG.info(\u0027Unable to load definition template: %s\u0027 %"},{"line_number":129,"context_line":"                         result.comment)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            current_time \u003d datetime_utils.utcnow()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_3e678f50","line":128,"updated":"2017-09-24 15:57:45.000000000","message":"Adapt message","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            result \u003d def_template_content_validation(def_template)"},{"line_number":127,"context_line":"            if not result.is_valid_config:"},{"line_number":128,"context_line":"                LOG.info(\u0027Unable to load definition template: %s\u0027 %"},{"line_number":129,"context_line":"                         result.comment)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            current_time \u003d datetime_utils.utcnow()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_6edd4741","line":128,"in_reply_to":"7f515b1d_3e678f50","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"}],"vitrage/evaluator/template_data.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_804dd273","updated":"2017-08-01 15:26:02.000000000","message":"change names","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                           target\u003dedge_desc.target.copy())"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def search_for_includable(name, includables):"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    for includable_key in includables:"},{"line_number":52,"context_line":"        includable_obj \u003d includables[includable_key]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_40ddaa40","line":49,"updated":"2017-08-01 15:26:02.000000000","message":"find_include....","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                           target\u003dedge_desc.target.copy())"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def search_for_includable(name, includables):"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    for includable_key in includables:"},{"line_number":52,"context_line":"        includable_obj \u003d includables[includable_key]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_7cf4bbcf","line":49,"in_reply_to":"df3967d1_40ddaa40","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"df48dfd6f534bca81d67fe3606cfef0f99ed0386","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def search_for_includable(name, includables):"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    for includable_key in includables:"},{"line_number":52,"context_line":"        includable_obj \u003d includables[includable_key]"},{"line_number":53,"context_line":"        includable \u003d includable_obj.data"},{"line_number":54,"context_line":"        if includable[TFields.METADATA][TFields.NAME] \u003d\u003d name:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"            return includable"},{"line_number":57,"context_line":"    return None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_1ad4b3bc","line":56,"range":{"start_line":51,"start_character":4,"end_line":56,"end_character":29},"updated":"2017-08-01 14:46:19.000000000","message":"you can iterate on the values you don\u0027t need the key","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def search_for_includable(name, includables):"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    for includable_key in includables:"},{"line_number":52,"context_line":"        includable_obj \u003d includables[includable_key]"},{"line_number":53,"context_line":"        includable \u003d includable_obj.data"},{"line_number":54,"context_line":"        if includable[TFields.METADATA][TFields.NAME] \u003d\u003d name:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"            return includable"},{"line_number":57,"context_line":"    return None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_3c69938a","line":56,"range":{"start_line":51,"start_character":4,"end_line":56,"end_character":29},"in_reply_to":"df3967d1_1ad4b3bc","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.relationships \u003d {}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        # Add defs from template then from includables."},{"line_number":85,"context_line":"        if TFields.INCLUDE in template_def:"},{"line_number":86,"context_line":"            includes \u003d template_def[TFields.INCLUDE]"},{"line_number":87,"context_line":"            self._build_entities_from_includables("},{"line_number":88,"context_line":"                includes, includables, self.entities)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_e0a93edd","line":85,"updated":"2017-08-01 15:26:02.000000000","message":"you created \"self.has_includes\", why aren\u0027t you using it?\nThe next 3 \"for\" are irrelevant if there is no \"include\"","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.relationships \u003d {}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        # Add defs from template then from includables."},{"line_number":85,"context_line":"        if TFields.INCLUDE in template_def:"},{"line_number":86,"context_line":"            includes \u003d template_def[TFields.INCLUDE]"},{"line_number":87,"context_line":"            self._build_entities_from_includables("},{"line_number":88,"context_line":"                includes, includables, self.entities)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_7c6f1b92","line":85,"in_reply_to":"df3967d1_e0a93edd","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            self.relationships \u003d self._build_relationships("},{"line_number":92,"context_line":"                defs[TFields.RELATIONSHIPS])"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        if TFields.INCLUDE in template_def:"},{"line_number":95,"context_line":"            includes \u003d template_def[TFields.INCLUDE]"},{"line_number":96,"context_line":"            self._build_relationships_with_includables(includes,"},{"line_number":97,"context_line":"                                                       includables,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_e06ede94","line":94,"updated":"2017-08-01 15:26:02.000000000","message":"You already wrote this \"if\" and the next line (\"include\u003d....\") in the previous \"if\". Remove this \"if\".\nCorrect code after the \"#Add defs from...\" Should be :\n1)\nif TFields.RLATIONSHIPS......\"\n2)\nif Tfields.INCLUDE.....\nand inside do both \"self._build_entities\" and \"self._build_relationships\".","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6d0d7d7b1ee65efbb0c80436c964cbf19dba813b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            self.relationships \u003d self._build_relationships("},{"line_number":92,"context_line":"                defs[TFields.RELATIONSHIPS])"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        if TFields.INCLUDE in template_def:"},{"line_number":95,"context_line":"            includes \u003d template_def[TFields.INCLUDE]"},{"line_number":96,"context_line":"            self._build_relationships_with_includables(includes,"},{"line_number":97,"context_line":"                                                       includables,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_986f7091","line":94,"in_reply_to":"df3967d1_e06ede94","updated":"2017-08-02 09:26:34.000000000","message":"I actually disagree. I think that all entities should be built first, and then all relationships - like is written now. A relationship in the template may reference an included entity, so the entity must be built first.\n\nI would add the included handling inside the _build_entities and _build_relationships functions.","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6d0d7d7b1ee65efbb0c80436c964cbf19dba813b","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        return entities"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _build_entities_from_includables("},{"line_number":148,"context_line":"            self, includes, includables, entities):"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        for includable_dict in includes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_b898f4bf","line":147,"range":{"start_line":147,"start_character":8,"end_line":147,"end_character":40},"updated":"2017-08-02 09:26:34.000000000","message":"Aren\u0027t you doing the same several times, once for each template? maybe there is a way to do it only once?","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.name \u003d template_def[TFields.METADATA][TFields.NAME]"},{"line_number":69,"context_line":"        defs \u003d {}"},{"line_number":70,"context_line":"        if TFields.DEFINITIONS in template_def:"},{"line_number":71,"context_line":"            defs \u003d template_def[TFields.DEFINITIONS]"},{"line_number":72,"context_line":"            if TFields.ENTITIES in defs:"},{"line_number":73,"context_line":"                self.entities \u003d self._build_entities(defs[TFields.ENTITIES])"},{"line_number":74,"context_line":"        self.relationships \u003d {}"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_3e68aff3","line":71,"updated":"2017-09-24 15:57:45.000000000","message":"use \"get\", with default none, and then check if it\u0027s not \"None\"","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        defs \u003d {}"},{"line_number":70,"context_line":"        if TFields.DEFINITIONS in template_def:"},{"line_number":71,"context_line":"            defs \u003d template_def[TFields.DEFINITIONS]"},{"line_number":72,"context_line":"            if TFields.ENTITIES in defs:"},{"line_number":73,"context_line":"                self.entities \u003d self._build_entities(defs[TFields.ENTITIES])"},{"line_number":74,"context_line":"        self.relationships \u003d {}"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_1e6df303","line":72,"updated":"2017-09-24 15:57:45.000000000","message":"Same as previous comment","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                self.entities \u003d self._build_entities(defs[TFields.ENTITIES])"},{"line_number":74,"context_line":"        self.relationships \u003d {}"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Add definitions from template then from definition templates."},{"line_number":77,"context_line":"        if TFields.INCLUDES in template_def:"},{"line_number":78,"context_line":"            includes \u003d template_def[TFields.INCLUDES]"},{"line_number":79,"context_line":"            self._build_entities_from_def_templates("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_412dca93","line":76,"updated":"2017-09-24 15:57:45.000000000","message":"Same as previous comment","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self.relationships \u003d self._build_relationships("},{"line_number":84,"context_line":"                defs[TFields.RELATIONSHIPS])"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        if TFields.INCLUDES in template_def:"},{"line_number":87,"context_line":"            includes \u003d template_def[TFields.INCLUDES]"},{"line_number":88,"context_line":"            self._build_relationships_with_def_templates(includes,"},{"line_number":89,"context_line":"                                                         def_templates,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_2122cea5","line":86,"updated":"2017-09-24 15:57:45.000000000","message":"Same as previous comment","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            def_template \u003d evaluator_utils.find_def_template("},{"line_number":179,"context_line":"                name, def_templates)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"            if TFields.RELATIONSHIPS in def_template[TFields.DEFINITIONS]:"},{"line_number":182,"context_line":"                defs \u003d def_template[TFields.DEFINITIONS]"},{"line_number":183,"context_line":"                relationship_defs \u003d defs[TFields.RELATIONSHIPS]"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_e13b96ce","line":181,"updated":"2017-09-24 15:57:45.000000000","message":"Try to optimize this whole for + content","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"}],"vitrage/evaluator/template_validation/content/template_content_validator.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"df48dfd6f534bca81d67fe3606cfef0f99ed0386","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        name \u003d include[TemplateFields.NAME]"},{"line_number":144,"context_line":"        includable \u003d search_for_includable(name, includables)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        if includable is None:"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            LOG.error(\u0027%s status code: %s\u0027 % (status_msgs[142], 142))"},{"line_number":149,"context_line":"            return get_content_fault_result(142)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_5a66bb2b","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":30},"updated":"2017-08-01 14:46:19.000000000","message":"why not if includable:","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        name \u003d include[TemplateFields.NAME]"},{"line_number":144,"context_line":"        includable \u003d search_for_includable(name, includables)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        if includable is None:"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"            LOG.error(\u0027%s status code: %s\u0027 % (status_msgs[142], 142))"},{"line_number":149,"context_line":"            return get_content_fault_result(142)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_2605d046","line":146,"range":{"start_line":146,"start_character":8,"end_line":146,"end_character":30},"in_reply_to":"df3967d1_5a66bb2b","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"df48dfd6f534bca81d67fe3606cfef0f99ed0386","unresolved":false,"context_lines":[{"line_number":176,"context_line":"    return get_content_correct_result()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"def search_for_includable(name, includables):"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    for includable_key in includables:"},{"line_number":182,"context_line":"        includable_obj \u003d includables[includable_key]"},{"line_number":183,"context_line":"        includable \u003d includable_obj.data"},{"line_number":184,"context_line":"        if includable[TemplateFields.METADATA][TemplateFields.NAME] \u003d\u003d name:"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"            return includable"},{"line_number":187,"context_line":"    return None"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def _validate_relationships_definitions(relationships,"},{"line_number":191,"context_line":"                                        relationships_index,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_1a49538a","line":188,"range":{"start_line":179,"start_character":0,"end_line":188,"end_character":0},"updated":"2017-08-01 14:46:19.000000000","message":"duplication I saw this function earlier","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":176,"context_line":"    return get_content_correct_result()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"def search_for_includable(name, includables):"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    for includable_key in includables:"},{"line_number":182,"context_line":"        includable_obj \u003d includables[includable_key]"},{"line_number":183,"context_line":"        includable \u003d includable_obj.data"},{"line_number":184,"context_line":"        if includable[TemplateFields.METADATA][TemplateFields.NAME] \u003d\u003d name:"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"            return includable"},{"line_number":187,"context_line":"    return None"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def _validate_relationships_definitions(relationships,"},{"line_number":191,"context_line":"                                        relationships_index,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_46d334d6","line":188,"range":{"start_line":179,"start_character":0,"end_line":188,"end_character":0},"in_reply_to":"df3967d1_1a49538a","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6d0d7d7b1ee65efbb0c80436c964cbf19dba813b","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    return get_content_correct_result()"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"def _validate_relationships_definitions_with_includes(template_includes,"},{"line_number":209,"context_line":"                                                      includables,"},{"line_number":210,"context_line":"                                                      entities_index,"},{"line_number":211,"context_line":"                                                      relationships_index):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_58ec68f2","line":208,"range":{"start_line":208,"start_character":4,"end_line":208,"end_character":53},"updated":"2017-08-02 09:26:34.000000000","message":"Why do you need this function *in addition to* the original _validate_relationships_definitions function? why not have one function that handles all cases?","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    entities_index \u003d {}"},{"line_number":55,"context_line":"    template_definitions \u003d {}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    if TemplateFields.DEFINITIONS in template:"},{"line_number":58,"context_line":"        template_definitions \u003d template[TemplateFields.DEFINITIONS]"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        if TemplateFields.ENTITIES in template_definitions:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_e14a7625","line":57,"updated":"2017-09-24 15:57:45.000000000","message":"See previous comments on \"get\" with default.","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":144,"context_line":"def _validate_definitions_with_includes("},{"line_number":145,"context_line":"        template_includes, def_templates, entities_index):"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    for include in template_includes:"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        name \u003d include[TemplateFields.NAME]"},{"line_number":150,"context_line":"        def_template \u003d evaluator_utils.find_def_template(name, def_templates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_a16d9e99","line":147,"updated":"2017-09-24 15:57:45.000000000","message":"Are you sure \"template_includes\" can\u0027t arrive with \"none\" ?\n(see calling method)","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":144,"context_line":"def _validate_definitions_with_includes("},{"line_number":145,"context_line":"        template_includes, def_templates, entities_index):"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    for include in template_includes:"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        name \u003d include[TemplateFields.NAME]"},{"line_number":150,"context_line":"        def_template \u003d evaluator_utils.find_def_template(name, def_templates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_ffe68ee8","line":147,"in_reply_to":"7f515b1d_a16d9e99","updated":"2017-09-26 08:40:13.000000000","message":"if the includes are empty, an error is thrown in the syntax validator","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        def_template_entities,"},{"line_number":171,"context_line":"        entities_index):"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    for entity in def_template_entities:"},{"line_number":174,"context_line":"        entity_dict \u003d entity[TemplateFields.ENTITY]"},{"line_number":175,"context_line":"        result \u003d _validate_entity_definition(entity_dict, entities_index)"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_c1709a75","line":173,"updated":"2017-09-24 15:57:45.000000000","message":"Are you sure \"def_template_entities\" can\u0027t arrive with \"none\" ?\n(see calling method)","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        def_template_entities,"},{"line_number":171,"context_line":"        entities_index):"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    for entity in def_template_entities:"},{"line_number":174,"context_line":"        entity_dict \u003d entity[TemplateFields.ENTITY]"},{"line_number":175,"context_line":"        result \u003d _validate_entity_definition(entity_dict, entities_index)"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_ff9e8e05","line":173,"in_reply_to":"7f515b1d_c1709a75","updated":"2017-09-26 08:40:13.000000000","message":"Gets checked in syntax validator","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"5ebfde4c4bc6294b68d7471c137ceb5d5db07475","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                                                      entities_index,"},{"line_number":208,"context_line":"                                                      relationships_index):"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    for include in template_includes:"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        name \u003d include[TemplateFields.NAME]"},{"line_number":213,"context_line":"        def_template \u003d evaluator_utils.find_def_template(name, def_templates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_e173967f","line":210,"updated":"2017-09-24 15:57:45.000000000","message":"Are you sure \"template_includes\" can\u0027t arrive with \"none\" ?\n(see calling method)","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                                                      entities_index,"},{"line_number":208,"context_line":"                                                      relationships_index):"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    for include in template_includes:"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        name \u003d include[TemplateFields.NAME]"},{"line_number":213,"context_line":"        def_template \u003d evaluator_utils.find_def_template(name, def_templates)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_bf8816c6","line":210,"in_reply_to":"7f515b1d_e173967f","updated":"2017-09-26 08:40:13.000000000","message":"gets checked in syntax validator","commit_id":"2e10d9d00bbc86467046abd2f395cf2cf87728ab"}],"vitrage/evaluator/template_validation/status_messages.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    134: \u0027condition can not contain only \\\u0027not\\\u0027 clauses\u0027,"},{"line_number":81,"context_line":"    135: \u0027condition must contain a common entity for all \\\u0027or\\\u0027 clauses\u0027,"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # includables status messages 140-159"},{"line_number":84,"context_line":"    140: \u0027At least one template must be included\u0027,"},{"line_number":85,"context_line":"    141: \u0027Name field is missing\u0027,"},{"line_number":86,"context_line":"    142: \u0027Trying to include a template that does not exist\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_bdc92179","line":83,"updated":"2017-08-01 15:26:02.000000000","message":"Change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6d0d7d7b1ee65efbb0c80436c964cbf19dba813b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    134: \u0027condition can not contain only \\\u0027not\\\u0027 clauses\u0027,"},{"line_number":81,"context_line":"    135: \u0027condition must contain a common entity for all \\\u0027or\\\u0027 clauses\u0027,"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # includables status messages 140-159"},{"line_number":84,"context_line":"    140: \u0027At least one template must be included\u0027,"},{"line_number":85,"context_line":"    141: \u0027Name field is missing\u0027,"},{"line_number":86,"context_line":"    142: \u0027Trying to include a template that does not exist\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_f8ab1c86","line":83,"range":{"start_line":83,"start_character":34,"end_line":83,"end_character":41},"updated":"2017-08-02 09:26:34.000000000","message":"Until now we didn\u0027t define ranges for errors. I\u0027m not sure it is needed. I think you can just continue from #136.","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    134: \u0027condition can not contain only \\\u0027not\\\u0027 clauses\u0027,"},{"line_number":81,"context_line":"    135: \u0027condition must contain a common entity for all \\\u0027or\\\u0027 clauses\u0027,"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # includables status messages 140-159"},{"line_number":84,"context_line":"    140: \u0027At least one template must be included\u0027,"},{"line_number":85,"context_line":"    141: \u0027Name field is missing\u0027,"},{"line_number":86,"context_line":"    142: \u0027Trying to include a template that does not exist\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_6659988c","line":83,"in_reply_to":"df3967d1_bdc92179","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    134: \u0027condition can not contain only \\\u0027not\\\u0027 clauses\u0027,"},{"line_number":81,"context_line":"    135: \u0027condition must contain a common entity for all \\\u0027or\\\u0027 clauses\u0027,"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # includables status messages 140-159"},{"line_number":84,"context_line":"    140: \u0027At least one template must be included\u0027,"},{"line_number":85,"context_line":"    141: \u0027Name field is missing\u0027,"},{"line_number":86,"context_line":"    142: \u0027Trying to include a template that does not exist\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_2657105b","line":83,"range":{"start_line":83,"start_character":34,"end_line":83,"end_character":41},"in_reply_to":"df3967d1_f8ab1c86","updated":"2017-09-26 08:40:13.000000000","message":"The status messages here have ranges. Didn\u0027t change it","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    140: \u0027At least one template must be included\u0027,"},{"line_number":85,"context_line":"    141: \u0027Name field is missing\u0027,"},{"line_number":86,"context_line":"    142: \u0027Trying to include a template that does not exist\u0027,"},{"line_number":87,"context_line":"    143: \u0027Includable cannot have Includes or Scenarios\u0027,"},{"line_number":88,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_fda2099a","line":87,"updated":"2017-08-01 15:26:02.000000000","message":"Change \"includable\" name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    140: \u0027At least one template must be included\u0027,"},{"line_number":85,"context_line":"    141: \u0027Name field is missing\u0027,"},{"line_number":86,"context_line":"    142: \u0027Trying to include a template that does not exist\u0027,"},{"line_number":87,"context_line":"    143: \u0027Includable cannot have Includes or Scenarios\u0027,"},{"line_number":88,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_8668fc1c","line":87,"in_reply_to":"df3967d1_fda2099a","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/evaluator/template_validation/template_syntax_validator.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"def _validate_template_sections(template_conf):"},{"line_number":89,"context_line":"    if TemplateFields.INCLUDES in template_conf:"},{"line_number":90,"context_line":"        schema \u003d Schema({"},{"line_number":91,"context_line":"            Optional(TemplateFields.DEFINITIONS): dict,"},{"line_number":92,"context_line":"            Required(TemplateFields.METADATA, msg\u003d62): dict,"},{"line_number":93,"context_line":"            Required(TemplateFields.SCENARIOS, msg\u003d80): list,"},{"line_number":94,"context_line":"            Optional(TemplateFields.INCLUDES): list"},{"line_number":95,"context_line":"        })"},{"line_number":96,"context_line":"    else:"},{"line_number":97,"context_line":"        schema \u003d Schema({"},{"line_number":98,"context_line":"            Required(TemplateFields.DEFINITIONS, msg\u003d21): dict,"},{"line_number":99,"context_line":"            Required(TemplateFields.METADATA, msg\u003d62): dict,"},{"line_number":100,"context_line":"            Required(TemplateFields.SCENARIOS, msg\u003d80): list,"},{"line_number":101,"context_line":"            Optional(TemplateFields.INCLUDES): list"},{"line_number":102,"context_line":"        })"},{"line_number":103,"context_line":"    return _validate_dict_schema(schema, template_conf)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_fdafc991","line":102,"range":{"start_line":89,"start_character":0,"end_line":102,"end_character":10},"updated":"2017-08-09 11:55:06.000000000","message":"If we have so many lines of code just in order to use the schema, I don\u0027t think it\u0027s worth it. Maybe put in the schema only the required files (metadata and scnearios) and then do a simple if for the (definitions or index)","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"}],"vitrage/tests/functional/entity_graph/consistency/test_consistency.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":60,"context_line":"                   \u0027/templates/consistency\u0027,"},{"line_number":61,"context_line":"                   ),"},{"line_number":62,"context_line":"        cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":63,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":64,"context_line":"                   \u0027/templates/includables\u0027,"},{"line_number":65,"context_line":"                   ),"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_9da77da8","line":62,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":60,"context_line":"                   \u0027/templates/consistency\u0027,"},{"line_number":61,"context_line":"                   ),"},{"line_number":62,"context_line":"        cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":63,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":64,"context_line":"                   \u0027/templates/includables\u0027,"},{"line_number":65,"context_line":"                   ),"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_e6734815","line":62,"in_reply_to":"df3967d1_9da77da8","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/tests/functional/evaluator/test_scenario_evaluator.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":60,"context_line":"                   \u0027/templates/evaluator\u0027,"},{"line_number":61,"context_line":"                   ),"},{"line_number":62,"context_line":"        cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":63,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":64,"context_line":"                   \u0027/templates/includables\u0027,"},{"line_number":65,"context_line":"                   ),"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_7dddf912","line":62,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":60,"context_line":"                   \u0027/templates/evaluator\u0027,"},{"line_number":61,"context_line":"                   ),"},{"line_number":62,"context_line":"        cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":63,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":64,"context_line":"                   \u0027/templates/includables\u0027,"},{"line_number":65,"context_line":"                   ),"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_066bec1d","line":62,"in_reply_to":"df3967d1_7dddf912","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/tests/resources/templates/def_template_tests/templates/basic_with_two_includes.yaml":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":2,"context_line":" name: basic_template_with_two_includes"},{"line_number":3,"context_line":" description: A template file which includes two defintion templates"},{"line_number":4,"context_line":"include:"},{"line_number":5,"context_line":" - name: basic_def_template"},{"line_number":6,"context_line":" - name: large_def_template"},{"line_number":7,"context_line":"definitions:"},{"line_number":8,"context_line":" entities:"},{"line_number":9,"context_line":"  - entity:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_3d367105","line":6,"range":{"start_line":5,"start_character":0,"end_line":6,"end_character":27},"updated":"2017-08-09 11:55:06.000000000","message":"Do you handle the case that there is an overlap/conflict between entities in the two includes?","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"}],"vitrage/tests/resources/templates/def_template_tests/templates/include_with_empty_name.yaml":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":12,"context_line":"     category: RESOURCE"},{"line_number":13,"context_line":"     type: nova.host"},{"line_number":14,"context_line":"     template_id: resource11"},{"line_number":15,"context_line":"include:"},{"line_number":16,"context_line":"scenarios:"},{"line_number":17,"context_line":" - scenario:"},{"line_number":18,"context_line":"    condition: alarm_on_host"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_bd2141b7","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":7},"updated":"2017-08-09 11:55:06.000000000","message":"Should be \"includes\", right?","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"}],"vitrage/tests/resources/templates/def_template_tests/templates/no_definitions_only_include.yaml":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":1,"context_line":"metadata:"},{"line_number":2,"context_line":" name: no_definitions_only_include"},{"line_number":3,"context_line":" description: A template which only uses another definition template\u0027s definitions and has none of its own"},{"line_number":4,"context_line":"include:"},{"line_number":5,"context_line":"  - name: basic_def_template"},{"line_number":6,"context_line":"scenarios:"},{"line_number":7,"context_line":" - scenario:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f436f4f_3d1f916d","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":7},"updated":"2017-08-09 11:55:06.000000000","message":"includes","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"}],"vitrage/tests/resources/templates/def_templates/general/basic_with_include.yaml":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"     type: nova.host"},{"line_number":14,"context_line":"     template_id: resource11"},{"line_number":15,"context_line":"include:"},{"line_number":16,"context_line":"  - name: basic_def_template"},{"line_number":17,"context_line":"scenarios:"},{"line_number":18,"context_line":" - scenario:"},{"line_number":19,"context_line":"    condition: alarm_on_host"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"bf3e73b7_a2edc026","line":16,"range":{"start_line":16,"start_character":10,"end_line":16,"end_character":28},"updated":"2017-08-06 15:13:54.000000000","message":"Two comments:\n1. You should reorganize the folders structure for the test. Having a template under def_templates/general/ that includes something under def_templates is confusing.\n2. I just noticed a potential problem: the include (probably) references the name of the template, which can be different than the file name. I don\u0027t have a solution, but we should point that out in the documentation.","commit_id":"e48139c974a02594004ef1461442ebc638218285"}],"vitrage/tests/resources/templates/general/basic_with_includable.yaml":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_1dea6dab","updated":"2017-08-01 15:26:02.000000000","message":"change file name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_e61ea8b9","in_reply_to":"df3967d1_1dea6dab","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"metadata:"},{"line_number":2,"context_line":" name: basic_template_with_includables"},{"line_number":3,"context_line":" description: basic template for general tests"},{"line_number":4,"context_line":"definitions:"},{"line_number":5,"context_line":" entities:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_fdd0c9f9","line":2,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"metadata:"},{"line_number":2,"context_line":" name: basic_template_with_includables"},{"line_number":3,"context_line":" description: basic template for general tests"},{"line_number":4,"context_line":"definitions:"},{"line_number":5,"context_line":" entities:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_c61ba4c7","line":2,"in_reply_to":"df3967d1_fdd0c9f9","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":19,"context_line":"     relationship_type: on"},{"line_number":20,"context_line":"     template_id : alarm_on_host11"},{"line_number":21,"context_line":"include:"},{"line_number":22,"context_line":"  - name: basic_includable"},{"line_number":23,"context_line":"scenarios:"},{"line_number":24,"context_line":" - scenario:"},{"line_number":25,"context_line":"    condition: alarm_on_host11"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_7d061989","line":22,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"     relationship_type: on"},{"line_number":20,"context_line":"     template_id : alarm_on_host11"},{"line_number":21,"context_line":"include:"},{"line_number":22,"context_line":"  - name: basic_includable"},{"line_number":23,"context_line":"scenarios:"},{"line_number":24,"context_line":" - scenario:"},{"line_number":25,"context_line":"    condition: alarm_on_host11"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_a67ae0ed","line":22,"in_reply_to":"df3967d1_7d061989","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/tests/resources/templates/includables/basic_includable.yaml":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_bdf3619e","updated":"2017-08-01 15:26:02.000000000","message":"change file name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_4610d4a8","in_reply_to":"df3967d1_bdf3619e","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"metadata:"},{"line_number":2,"context_line":" #a basic includable file"},{"line_number":3,"context_line":" name: basic_includable"},{"line_number":4,"context_line":" description: basic includable for general tests"},{"line_number":5,"context_line":"definitions:"},{"line_number":6,"context_line":" entities:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_fdf9e97f","line":3,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"metadata:"},{"line_number":2,"context_line":" #a basic includable file"},{"line_number":3,"context_line":" name: basic_includable"},{"line_number":4,"context_line":" description: basic includable for general tests"},{"line_number":5,"context_line":"definitions:"},{"line_number":6,"context_line":" entities:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_262950e5","line":3,"in_reply_to":"df3967d1_fdf9e97f","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":18,"context_line":"     source: alarm3"},{"line_number":19,"context_line":"     target: resource3"},{"line_number":20,"context_line":"     relationship_type: on"},{"line_number":21,"context_line":"     template_id : alarm_on_host3"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_3d353147","line":21,"updated":"2017-08-01 15:26:02.000000000","message":"alarm3_on_host3","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"     source: alarm3"},{"line_number":19,"context_line":"     target: resource3"},{"line_number":20,"context_line":"     relationship_type: on"},{"line_number":21,"context_line":"     template_id : alarm_on_host3"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":1,"id":"df3967d1_06264c16","line":21,"in_reply_to":"df3967d1_3d353147","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/tests/unit/evaluator/template_validation/content/test_template_content_validator.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def setUpClass(cls):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        template_dir_path \u003d \u0027%s/templates/general\u0027 % utils.get_resources_dir()"},{"line_number":37,"context_line":"        includables_dir_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":38,"context_line":"                               % utils.get_resources_dir()"},{"line_number":39,"context_line":"        includbales_list \u003d file_utils.load_yaml_files(includables_dir_path)"},{"line_number":40,"context_line":"        cls.includbales \u003d cls.get_dict_for_list(includbales_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_9d43fdaf","line":37,"updated":"2017-08-01 15:26:02.000000000","message":"change name(s), includind following lines","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def setUpClass(cls):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        template_dir_path \u003d \u0027%s/templates/general\u0027 % utils.get_resources_dir()"},{"line_number":37,"context_line":"        includables_dir_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":38,"context_line":"                               % utils.get_resources_dir()"},{"line_number":39,"context_line":"        includbales_list \u003d file_utils.load_yaml_files(includables_dir_path)"},{"line_number":40,"context_line":"        cls.includbales \u003d cls.get_dict_for_list(includbales_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_a7bb2c70","line":37,"in_reply_to":"df3967d1_9d43fdaf","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        template_dir_path \u003d \u0027%s/templates/general\u0027 % utils.get_resources_dir()"},{"line_number":37,"context_line":"        includables_dir_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":38,"context_line":"                               % utils.get_resources_dir()"},{"line_number":39,"context_line":"        includbales_list \u003d file_utils.load_yaml_files(includables_dir_path)"},{"line_number":40,"context_line":"        cls.includbales \u003d cls.get_dict_for_list(includbales_list)"},{"line_number":41,"context_line":"        cls.templates \u003d file_utils.load_yaml_files(template_dir_path)"},{"line_number":42,"context_line":"        cls.first_template \u003d cls.templates[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_5d7c75ea","line":39,"updated":"2017-08-01 15:26:02.000000000","message":"What if the folder is totally missing ? Do you want to test it ?","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        template_dir_path \u003d \u0027%s/templates/general\u0027 % utils.get_resources_dir()"},{"line_number":37,"context_line":"        includables_dir_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":38,"context_line":"                               % utils.get_resources_dir()"},{"line_number":39,"context_line":"        includbales_list \u003d file_utils.load_yaml_files(includables_dir_path)"},{"line_number":40,"context_line":"        cls.includbales \u003d cls.get_dict_for_list(includbales_list)"},{"line_number":41,"context_line":"        cls.templates \u003d file_utils.load_yaml_files(template_dir_path)"},{"line_number":42,"context_line":"        cls.first_template \u003d cls.templates[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_fc0546c3","line":39,"in_reply_to":"df3967d1_58c1082e","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"6d0d7d7b1ee65efbb0c80436c964cbf19dba813b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        template_dir_path \u003d \u0027%s/templates/general\u0027 % utils.get_resources_dir()"},{"line_number":37,"context_line":"        includables_dir_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":38,"context_line":"                               % utils.get_resources_dir()"},{"line_number":39,"context_line":"        includbales_list \u003d file_utils.load_yaml_files(includables_dir_path)"},{"line_number":40,"context_line":"        cls.includbales \u003d cls.get_dict_for_list(includbales_list)"},{"line_number":41,"context_line":"        cls.templates \u003d file_utils.load_yaml_files(template_dir_path)"},{"line_number":42,"context_line":"        cls.first_template \u003d cls.templates[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_58c1082e","line":39,"in_reply_to":"df3967d1_5d7c75ea","updated":"2017-08-02 09:26:34.000000000","message":"This folder is optional. And indeed there should be a test that makes sure its ok to load templates without this folder.","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _execute_and_assert_with_fault_result(self, template, status_code):"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        result \u003d validator.content_validation(template, self.includbales)"},{"line_number":228,"context_line":"        self._assert_fault_result(result, status_code)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def _execute_and_assert_with_correct_result(self, template):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_fd6c4937","line":227,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def _execute_and_assert_with_fault_result(self, template, status_code):"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        result \u003d validator.content_validation(template, self.includbales)"},{"line_number":228,"context_line":"        self._assert_fault_result(result, status_code)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def _execute_and_assert_with_correct_result(self, template):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_c2461e7d","line":227,"in_reply_to":"df3967d1_fd6c4937","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def _execute_and_assert_with_correct_result(self, template):"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        result \u003d validator.content_validation(template, self.includbales)"},{"line_number":233,"context_line":"        self._assert_correct_result(result)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_bd76c105","line":232,"updated":"2017-08-01 15:26:02.000000000","message":"change name","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def _execute_and_assert_with_correct_result(self, template):"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        result \u003d validator.content_validation(template, self.includbales)"},{"line_number":233,"context_line":"        self._assert_correct_result(result)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_82601603","line":232,"in_reply_to":"df3967d1_bd76c105","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        self._assert_correct_result(result)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def get_dict_for_list(alist):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        Template \u003d namedtuple(\u0027Template\u0027, \u0027data\u0027)"},{"line_number":239,"context_line":"        dict \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_7df05968","line":236,"updated":"2017-08-01 15:26:02.000000000","message":"if this is an internal method only, use :\n_get_dict_for_list(alist)","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        self._assert_correct_result(result)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def get_dict_for_list(alist):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        Template \u003d namedtuple(\u0027Template\u0027, \u0027data\u0027)"},{"line_number":239,"context_line":"        dict \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_063d2c2a","line":236,"in_reply_to":"df3967d1_7df05968","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"df48dfd6f534bca81d67fe3606cfef0f99ed0386","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        result \u003d validator.content_validation(template, self.includbales)"},{"line_number":233,"context_line":"        self._assert_correct_result(result)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def get_dict_for_list(alist):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        Template \u003d namedtuple(\u0027Template\u0027, \u0027data\u0027)"},{"line_number":239,"context_line":"        dict \u003d {}"},{"line_number":240,"context_line":"        for num, item in zip(range(len(alist)), alist):"},{"line_number":241,"context_line":"            dict[num] \u003d Template(item)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        return dict"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def _create_scenario_actions(self, target, source):"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_5d02350b","line":243,"range":{"start_line":235,"start_character":4,"end_line":243,"end_character":19},"updated":"2017-08-01 14:46:19.000000000","message":"can you please explain what this method does\nmaybe doc string with example ?","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        result \u003d validator.content_validation(template, self.includbales)"},{"line_number":233,"context_line":"        self._assert_correct_result(result)"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    @staticmethod"},{"line_number":236,"context_line":"    def get_dict_for_list(alist):"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        Template \u003d namedtuple(\u0027Template\u0027, \u0027data\u0027)"},{"line_number":239,"context_line":"        dict \u003d {}"},{"line_number":240,"context_line":"        for num, item in zip(range(len(alist)), alist):"},{"line_number":241,"context_line":"            dict[num] \u003d Template(item)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        return dict"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def _create_scenario_actions(self, target, source):"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_264030a5","line":243,"range":{"start_line":235,"start_character":4,"end_line":243,"end_character":19},"in_reply_to":"df3967d1_5d02350b","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/tests/unit/evaluator/template_validation/test_template_syntax_validator.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        self._test_execution_with_fault_result(template, status_msgs[100])"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def _test_execution_with_fault_result(self,"},{"line_number":233,"context_line":"                                          template,"},{"line_number":234,"context_line":"                                          expected_code,"},{"line_number":235,"context_line":"                                          is_def_template\u003dFalse):"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        # Test action"},{"line_number":238,"context_line":"        if is_def_template:"},{"line_number":239,"context_line":"            result \u003d template_syntax_validator.def_template_syntax_validation("},{"line_number":240,"context_line":"                template)"},{"line_number":241,"context_line":"        else:"},{"line_number":242,"context_line":"            result \u003d template_syntax_validator.syntax_validation(template)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        # Test assertions"},{"line_number":245,"context_line":"        self.assertFalse(result.is_valid_config)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_82cbdca3","line":242,"range":{"start_line":232,"start_character":0,"end_line":242,"end_character":74},"updated":"2017-08-06 15:13:54.000000000","message":"Please write two separate methods for the templates and def_templates, instead of using the boolean.","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        self._test_execution_with_fault_result(template, status_msgs[100])"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"    def _test_execution_with_fault_result(self,"},{"line_number":233,"context_line":"                                          template,"},{"line_number":234,"context_line":"                                          expected_code,"},{"line_number":235,"context_line":"                                          is_def_template\u003dFalse):"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        # Test action"},{"line_number":238,"context_line":"        if is_def_template:"},{"line_number":239,"context_line":"            result \u003d template_syntax_validator.def_template_syntax_validation("},{"line_number":240,"context_line":"                template)"},{"line_number":241,"context_line":"        else:"},{"line_number":242,"context_line":"            result \u003d template_syntax_validator.syntax_validation(template)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        # Test assertions"},{"line_number":245,"context_line":"        self.assertFalse(result.is_valid_config)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_29eb01b1","line":242,"range":{"start_line":232,"start_character":0,"end_line":242,"end_character":74},"in_reply_to":"bf3e73b7_82cbdca3","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"e48139c974a02594004ef1461442ebc638218285"}],"vitrage/tests/unit/evaluator/test_scenario_repository.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_6002ee0b","updated":"2017-08-01 15:26:02.000000000","message":"change names","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_07bf9861","in_reply_to":"df3967d1_6002ee0b","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        cfg.StrOpt(\u0027templates_dir\u0027,"},{"line_number":34,"context_line":"                   default\u003dBASE_DIR,"},{"line_number":35,"context_line":"                   ),"},{"line_number":36,"context_line":"        cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":37,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":38,"context_line":"                   \u0027/templates/includables\u0027,"},{"line_number":39,"context_line":"                   ),"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_ddfe2537","line":36,"updated":"2017-08-01 15:26:02.000000000","message":"change nane","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        cfg.StrOpt(\u0027templates_dir\u0027,"},{"line_number":34,"context_line":"                   default\u003dBASE_DIR,"},{"line_number":35,"context_line":"                   ),"},{"line_number":36,"context_line":"        cfg.StrOpt(\u0027includables_dir\u0027,"},{"line_number":37,"context_line":"                   default\u003dutils.get_resources_dir() +"},{"line_number":38,"context_line":"                   \u0027/templates/includables\u0027,"},{"line_number":39,"context_line":"                   ),"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_c7b87077","line":36,"in_reply_to":"df3967d1_ddfe2537","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"}],"vitrage/tests/unit/evaluator/test_template_data.py":[{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_003c42c6","updated":"2017-08-01 15:26:02.000000000","message":"change names","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"df3967d1_278e1cd0","in_reply_to":"df3967d1_003c42c6","updated":"2017-09-26 08:40:13.000000000","message":"Done","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"bbe8bc6f84a0ac7db19e98c05dbfafdc685348ae","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # Test setup"},{"line_number":44,"context_line":"        includables_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":45,"context_line":"                           % utils.get_resources_dir()"},{"line_number":46,"context_line":"        includables \u003d file_utils.load_yaml_files(includables_path)"},{"line_number":47,"context_line":"        template_path \u003d \u0027%s/templates/general/%s\u0027 % (utils.get_resources_dir(),"},{"line_number":48,"context_line":"                                                     self.BASIC_TEMPLATE)"},{"line_number":49,"context_line":"        template_definition \u003d file_utils.load_yaml_file(template_path, True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_80283286","line":46,"updated":"2017-08-01 15:26:02.000000000","message":"test path exists (unless it\u0027s tested in file_utils.load_yaml_files)","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # Test setup"},{"line_number":44,"context_line":"        includables_path \u003d \u0027%s/templates/includables\u0027 \\"},{"line_number":45,"context_line":"                           % utils.get_resources_dir()"},{"line_number":46,"context_line":"        includables \u003d file_utils.load_yaml_files(includables_path)"},{"line_number":47,"context_line":"        template_path \u003d \u0027%s/templates/general/%s\u0027 % (utils.get_resources_dir(),"},{"line_number":48,"context_line":"                                                     self.BASIC_TEMPLATE)"},{"line_number":49,"context_line":"        template_definition \u003d file_utils.load_yaml_file(template_path, True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_f3b69ffa","line":46,"in_reply_to":"df3967d1_80283286","updated":"2017-09-26 08:40:13.000000000","message":"it is tested in load_yaml_files","commit_id":"ac83258ab41eeedb8f5fb016c9a2b43432b22d26"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            for key, value in definition[\u0027entity\u0027].items():"},{"line_number":71,"context_line":"                new_key \u003d TemplateData.PROPS_CONVERSION[key] if key in \\"},{"line_number":72,"context_line":"                    TemplateData.PROPS_CONVERSION else key"},{"line_number":73,"context_line":"                del definition[\u0027entity\u0027][key]"},{"line_number":74,"context_line":"                definition[\u0027entity\u0027][new_key] \u003d value"},{"line_number":75,"context_line":"        self._validate_entities(entities, definitions[TFields.ENTITIES])"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_22c2f086","line":73,"range":{"start_line":73,"start_character":16,"end_line":73,"end_character":45},"updated":"2017-08-06 15:13:54.000000000","message":"Is it ok to delete in the middle of the iteration?","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"01d0ce029f1355f92a6daa022233ff5479a54801","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def test_basic_template_with_include(self):"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # Test setup"},{"line_number":45,"context_line":"        template_path \u003d \u0027%s/templates/def_template_tests/templates/%s\u0027 % \\"},{"line_number":46,"context_line":"                        (utils.get_resources_dir(),"},{"line_number":47,"context_line":"                         self.BASIC_TEMPLATE_WITH_INCLUDE)"},{"line_number":48,"context_line":"        template_definition \u003d file_utils.load_yaml_file(template_path, True)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f436f4f_c0389ed4","line":45,"range":{"start_line":45,"start_character":27,"end_line":45,"end_character":66},"updated":"2017-08-09 11:55:06.000000000","message":"Please have a common constant for all files that are using this path","commit_id":"63b41142eeb1dfd452912c85749b46c5744b4c83"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"5d52be6a96b50cfaffd5c1d676de3a4460c6217e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            \u0027/templates/%s\u0027 % self.BASIC_TEMPLATE_WITH_INCLUDE"},{"line_number":49,"context_line":"        template_definition \u003d file_utils.load_yaml_file(template_path, True)"},{"line_number":50,"context_line":"        def_templates_path \u003d self.DEF_TEMPLATE_TESTS_DIR + \\"},{"line_number":51,"context_line":"            \u0027/definition_templates\u0027"},{"line_number":52,"context_line":"        def_demplates_list \u003d file_utils.load_yaml_files("},{"line_number":53,"context_line":"            def_templates_path)"},{"line_number":54,"context_line":"        def_templates_dict \u003d utils.get_def_templates_dict_from_list("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_862e29a3","line":51,"range":{"start_line":51,"start_character":14,"end_line":51,"end_character":34},"updated":"2017-08-09 16:26:23.000000000","message":"Isn\u0027t it under templates?","commit_id":"aa3b50f0b7697d313756eec4973feebc1f72ed37"}],"vitrage/utils/evaluator.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 - Nokia"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_02bfecfb","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2017-08-06 15:13:54.000000000","message":"2017.\nWhy does this file appear as a rename from vitrage/cmd/__init__.py??","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"336d30cd24a5de0797ca08b16186cb6cdcd91dd9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 - Nokia"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f436f4f_e979792f","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"bf3e73b7_02bfecfb","updated":"2017-09-26 08:40:13.000000000","message":"No clue. It is a new file","commit_id":"e48139c974a02594004ef1461442ebc638218285"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"3f6857beabfbf54a146b1da64449855e35de176b","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def find_def_template(name, def_templates):"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    for def_template_obj in def_templates.values():"},{"line_number":20,"context_line":"        def_template \u003d def_template_obj.data"},{"line_number":21,"context_line":"        if def_template[TemplateFields.METADATA][TemplateFields.NAME] \u003d\u003d name:"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bf3e73b7_a23b809a","line":19,"range":{"start_line":19,"start_character":28,"end_line":19,"end_character":50},"updated":"2017-08-06 15:13:54.000000000","message":"What is def_templates.keys()? maybe the key could be the name?","commit_id":"e48139c974a02594004ef1461442ebc638218285"}]}
