)]}'
{"vitrage/datasources/static/driver.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.cfg \u003d conf"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @staticmethod"},{"line_number":40,"context_line":"    def is_valid_config(config):"},{"line_number":41,"context_line":"        \"\"\"check for validity of configuration\"\"\""},{"line_number":42,"context_line":"        # TODO(yujunz) check with yaml schema or reuse template validation"},{"line_number":43,"context_line":"        return TopologyFields.DEFINITIONS in config"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_eb62b53c","line":40,"updated":"2017-01-10 14:13:35.000000000","message":"should start with _ because it is private method","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        self.cfg \u003d conf"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    @staticmethod"},{"line_number":40,"context_line":"    def is_valid_config(config):"},{"line_number":41,"context_line":"        \"\"\"check for validity of configuration\"\"\""},{"line_number":42,"context_line":"        # TODO(yujunz) check with yaml schema or reuse template validation"},{"line_number":43,"context_line":"        return TopologyFields.DEFINITIONS in config"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_e19e2d53","line":40,"in_reply_to":"ba5201f7_eb62b53c","updated":"2017-01-12 06:43:11.000000000","message":"Done","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    @classmethod"},{"line_number":97,"context_line":"    def _pack_entity(cls, entities_dict, entity):"},{"line_number":98,"context_line":"        config_id \u003d entity[StaticFields.CONFIG_ID]"},{"line_number":99,"context_line":"        metadata \u003d {key: value for key, value in iteritems(entity)"},{"line_number":100,"context_line":"                    if key not in cls.BASE_FIELDS}"},{"line_number":101,"context_line":"        if config_id not in entities_dict:"},{"line_number":102,"context_line":"            entities_dict[config_id] \u003d entity"},{"line_number":103,"context_line":"            entity[TopologyFields.RELATIONSHIPS] \u003d []"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_6eab331f","line":100,"range":{"start_line":99,"start_character":8,"end_line":100,"end_character":50},"updated":"2017-01-10 14:13:35.000000000","message":"put this inside the \"if\", because we don\u0027t need to use it if it goes to else","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    @classmethod"},{"line_number":97,"context_line":"    def _pack_entity(cls, entities_dict, entity):"},{"line_number":98,"context_line":"        config_id \u003d entity[StaticFields.CONFIG_ID]"},{"line_number":99,"context_line":"        metadata \u003d {key: value for key, value in iteritems(entity)"},{"line_number":100,"context_line":"                    if key not in cls.BASE_FIELDS}"},{"line_number":101,"context_line":"        if config_id not in entities_dict:"},{"line_number":102,"context_line":"            entities_dict[config_id] \u003d entity"},{"line_number":103,"context_line":"            entity[TopologyFields.RELATIONSHIPS] \u003d []"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_61b95dcb","line":100,"range":{"start_line":99,"start_character":8,"end_line":100,"end_character":50},"in_reply_to":"ba5201f7_6eab331f","updated":"2017-01-12 06:43:11.000000000","message":"Done","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            source, target \u003d entities_dict[source_id], entities_dict[target_id]"},{"line_number":118,"context_line":"            source[TopologyFields.RELATIONSHIPS].append("},{"line_number":119,"context_line":"                cls._expand_neighbor(rel, target))"},{"line_number":120,"context_line":"            target[TopologyFields.RELATIONSHIPS].append("},{"line_number":121,"context_line":"                cls._expand_neighbor(rel, source))"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @staticmethod"},{"line_number":124,"context_line":"    def _expand_neighbor(rel, neighbor):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_5141ae38","line":121,"range":{"start_line":120,"start_character":12,"end_line":121,"end_character":50},"updated":"2017-01-10 14:13:35.000000000","message":"why do we need to put the edge (relationship) in both of the entities? it\u0027s no enough to put it just in the source entity for example?","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            source, target \u003d entities_dict[source_id], entities_dict[target_id]"},{"line_number":118,"context_line":"            source[TopologyFields.RELATIONSHIPS].append("},{"line_number":119,"context_line":"                cls._expand_neighbor(rel, target))"},{"line_number":120,"context_line":"            target[TopologyFields.RELATIONSHIPS].append("},{"line_number":121,"context_line":"                cls._expand_neighbor(rel, source))"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    @staticmethod"},{"line_number":124,"context_line":"    def _expand_neighbor(rel, neighbor):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_c16da933","line":121,"range":{"start_line":120,"start_character":12,"end_line":121,"end_character":50},"in_reply_to":"ba5201f7_5141ae38","updated":"2017-01-12 06:43:11.000000000","message":"Done.","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def _expand_neighbor(rel, neighbor):"},{"line_number":125,"context_line":"        \"\"\"Expand config id to neighbor entity"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        rel\u003d{\u0027source\u0027: \u0027s1\u0027, \u0027target\u0027: \u0027r1\u0027, \u0027relation_type\u0027: \u0027attached\u0027"},{"line_number":128,"context_line":"        neighbor\u003d{\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}"},{"line_number":129,"context_line":"        result\u003d{\u0027relation_type\u0027: \u0027attached\u0027, \u0027source\u0027: \u0027s1\u0027,"},{"line_number":130,"context_line":"                \u0027target\u0027: {\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}}"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_919f965e","line":127,"updated":"2017-01-10 14:13:35.000000000","message":"add \"}\"","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def _expand_neighbor(rel, neighbor):"},{"line_number":125,"context_line":"        \"\"\"Expand config id to neighbor entity"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        rel\u003d{\u0027source\u0027: \u0027s1\u0027, \u0027target\u0027: \u0027r1\u0027, \u0027relation_type\u0027: \u0027attached\u0027"},{"line_number":128,"context_line":"        neighbor\u003d{\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}"},{"line_number":129,"context_line":"        result\u003d{\u0027relation_type\u0027: \u0027attached\u0027, \u0027source\u0027: \u0027s1\u0027,"},{"line_number":130,"context_line":"                \u0027target\u0027: {\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}}"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_5cf8e57c","line":127,"range":{"start_line":127,"start_character":46,"end_line":127,"end_character":59},"updated":"2017-01-10 14:13:35.000000000","message":"shouldn\u0027t it be \"relationship_type\"","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def _expand_neighbor(rel, neighbor):"},{"line_number":125,"context_line":"        \"\"\"Expand config id to neighbor entity"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        rel\u003d{\u0027source\u0027: \u0027s1\u0027, \u0027target\u0027: \u0027r1\u0027, \u0027relation_type\u0027: \u0027attached\u0027"},{"line_number":128,"context_line":"        neighbor\u003d{\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}"},{"line_number":129,"context_line":"        result\u003d{\u0027relation_type\u0027: \u0027attached\u0027, \u0027source\u0027: \u0027s1\u0027,"},{"line_number":130,"context_line":"                \u0027target\u0027: {\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}}"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_017891f1","line":127,"in_reply_to":"ba5201f7_919f965e","updated":"2017-01-12 06:43:11.000000000","message":"Done","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        rel\u003d{\u0027source\u0027: \u0027s1\u0027, \u0027target\u0027: \u0027r1\u0027, \u0027relation_type\u0027: \u0027attached\u0027"},{"line_number":128,"context_line":"        neighbor\u003d{\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}"},{"line_number":129,"context_line":"        result\u003d{\u0027relation_type\u0027: \u0027attached\u0027, \u0027source\u0027: \u0027s1\u0027,"},{"line_number":130,"context_line":"                \u0027target\u0027: {\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}}"},{"line_number":131,"context_line":"        \"\"\""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_3c38813d","line":129,"range":{"start_line":129,"start_character":17,"end_line":129,"end_character":30},"updated":"2017-01-10 14:13:35.000000000","message":"shouldn\u0027t it be \"relationship_type\"","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        rel\u003d{\u0027source\u0027: \u0027s1\u0027, \u0027target\u0027: \u0027r1\u0027, \u0027relation_type\u0027: \u0027attached\u0027"},{"line_number":128,"context_line":"        neighbor\u003d{\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}"},{"line_number":129,"context_line":"        result\u003d{\u0027relation_type\u0027: \u0027attached\u0027, \u0027source\u0027: \u0027s1\u0027,"},{"line_number":130,"context_line":"                \u0027target\u0027: {\u0027config_id\u0027: \u0027h1\u0027, \u0027type\u0027: \u0027host.nova\u0027, \u0027id\u0027: 1}}"},{"line_number":131,"context_line":"        \"\"\""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_505f8840","line":129,"range":{"start_line":129,"start_character":17,"end_line":129,"end_character":30},"in_reply_to":"ba5201f7_3c38813d","updated":"2017-01-12 06:43:11.000000000","message":"Done","commit_id":"0e540c48da375278f20c61c14139423ee257307f"}],"vitrage/datasources/static/transformer.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"a84f8a032260c526dd08d40a6ba6db75bd3e96e9","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            update_timestamp\u003dupdate_timestamp,"},{"line_number":74,"context_line":"            entity_state\u003dstate)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _create_static_neighbors(self, entity_event):"},{"line_number":77,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a71b18c_12dc1de3","line":77,"range":{"start_line":76,"start_character":4,"end_line":77,"end_character":17},"updated":"2016-12-12 09:03:15.000000000","message":"please implement the neighbors as well","commit_id":"22283df6c57c28b95f957a269dbe19a2bfa874b7"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        entity_key \u003d self._create_entity_key(entity_event)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # create placeholder for non-static datasource entity"},{"line_number":73,"context_line":"        if entity_type in self.transformers:"},{"line_number":74,"context_line":"            properties \u003d {"},{"line_number":75,"context_line":"                VProps.TYPE: entity_type,"},{"line_number":76,"context_line":"                VProps.ID: entity_id,"},{"line_number":77,"context_line":"                VProps.CATEGORY: EntityCategory.RESOURCE,"},{"line_number":78,"context_line":"                VProps.SAMPLE_TIMESTAMP: sample_timestamp}"},{"line_number":79,"context_line":"            return self.create_neighbor_placeholder_vertex(**properties)"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            return graph_utils.create_vertex("},{"line_number":82,"context_line":"                entity_key,"},{"line_number":83,"context_line":"                entity_id\u003dentity_id,"},{"line_number":84,"context_line":"                entity_category\u003dEntityCategory.RESOURCE,"},{"line_number":85,"context_line":"                entity_type\u003dentity_type,"},{"line_number":86,"context_line":"                sample_timestamp\u003dsample_timestamp,"},{"line_number":87,"context_line":"                update_timestamp\u003dupdate_timestamp,"},{"line_number":88,"context_line":"                entity_state\u003dstate,"},{"line_number":89,"context_line":"                metadata\u003dmetadata)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _create_static_neighbor(self, entity_event, rel):"},{"line_number":92,"context_line":"        if entity_event[StaticFields.CONFIG_ID] \u003d\u003d rel[StaticFields.SOURCE]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_91fcf63f","line":89,"range":{"start_line":73,"start_character":8,"end_line":89,"end_character":34},"updated":"2017-01-10 14:13:35.000000000","message":"I think all you need here is just to write:\n properties \u003d {\n                VProps.TYPE: entity_type,\n                VProps.ID: entity_id,\n                VProps.CATEGORY: EntityCategory.RESOURCE,\n                VProps.SAMPLE_TIMESTAMP: sample_timestamp\n            }\n            return self.create_neighbor_placeholder_vertex(**properties)","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"5b30b53bc3076bfb2d2ca1a805b302af7a1185ae","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        entity_key \u003d self._create_entity_key(entity_event)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # create placeholder for non-static datasource entity"},{"line_number":73,"context_line":"        if entity_type in self.transformers:"},{"line_number":74,"context_line":"            properties \u003d {"},{"line_number":75,"context_line":"                VProps.TYPE: entity_type,"},{"line_number":76,"context_line":"                VProps.ID: entity_id,"},{"line_number":77,"context_line":"                VProps.CATEGORY: EntityCategory.RESOURCE,"},{"line_number":78,"context_line":"                VProps.SAMPLE_TIMESTAMP: sample_timestamp}"},{"line_number":79,"context_line":"            return self.create_neighbor_placeholder_vertex(**properties)"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            return graph_utils.create_vertex("},{"line_number":82,"context_line":"                entity_key,"},{"line_number":83,"context_line":"                entity_id\u003dentity_id,"},{"line_number":84,"context_line":"                entity_category\u003dEntityCategory.RESOURCE,"},{"line_number":85,"context_line":"                entity_type\u003dentity_type,"},{"line_number":86,"context_line":"                sample_timestamp\u003dsample_timestamp,"},{"line_number":87,"context_line":"                update_timestamp\u003dupdate_timestamp,"},{"line_number":88,"context_line":"                entity_state\u003dstate,"},{"line_number":89,"context_line":"                metadata\u003dmetadata)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _create_static_neighbor(self, entity_event, rel):"},{"line_number":92,"context_line":"        if entity_event[StaticFields.CONFIG_ID] \u003d\u003d rel[StaticFields.SOURCE]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a57fde8_32370ee5","line":89,"range":{"start_line":73,"start_character":8,"end_line":89,"end_character":34},"in_reply_to":"ba5201f7_21e1159b","updated":"2017-01-12 07:57:13.000000000","message":"I see your point now.\nLooks good.","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        entity_key \u003d self._create_entity_key(entity_event)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # create placeholder for non-static datasource entity"},{"line_number":73,"context_line":"        if entity_type in self.transformers:"},{"line_number":74,"context_line":"            properties \u003d {"},{"line_number":75,"context_line":"                VProps.TYPE: entity_type,"},{"line_number":76,"context_line":"                VProps.ID: entity_id,"},{"line_number":77,"context_line":"                VProps.CATEGORY: EntityCategory.RESOURCE,"},{"line_number":78,"context_line":"                VProps.SAMPLE_TIMESTAMP: sample_timestamp}"},{"line_number":79,"context_line":"            return self.create_neighbor_placeholder_vertex(**properties)"},{"line_number":80,"context_line":"        else:"},{"line_number":81,"context_line":"            return graph_utils.create_vertex("},{"line_number":82,"context_line":"                entity_key,"},{"line_number":83,"context_line":"                entity_id\u003dentity_id,"},{"line_number":84,"context_line":"                entity_category\u003dEntityCategory.RESOURCE,"},{"line_number":85,"context_line":"                entity_type\u003dentity_type,"},{"line_number":86,"context_line":"                sample_timestamp\u003dsample_timestamp,"},{"line_number":87,"context_line":"                update_timestamp\u003dupdate_timestamp,"},{"line_number":88,"context_line":"                entity_state\u003dstate,"},{"line_number":89,"context_line":"                metadata\u003dmetadata)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def _create_static_neighbor(self, entity_event, rel):"},{"line_number":92,"context_line":"        if entity_event[StaticFields.CONFIG_ID] \u003d\u003d rel[StaticFields.SOURCE]:"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_21e1159b","line":89,"range":{"start_line":73,"start_character":8,"end_line":89,"end_character":34},"in_reply_to":"ba5201f7_91fcf63f","updated":"2017-01-12 06:43:11.000000000","message":"I don\u0027t understand, metadata will be lost if we always create placeholder.","commit_id":"0e540c48da375278f20c61c14139423ee257307f"}],"vitrage/tests/resources/mock_configurations/driver/driver_static_snapshot_dynamic.json":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7ea0e1138f269bb85291b6d8e69e27439275b96a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"name\": \"[switch|host]-[1-9]\","},{"line_number":3,"context_line":"  \"id\": \"[1-9]{5}\","},{"line_number":4,"context_line":"  \"config_id\": \"[sh][1-9]\","},{"line_number":5,"context_line":"  \"type\": \"[switch|nova.host]\","}],"source_content_type":"application/json","patch_set":2,"id":"1a6eadb0_1d74b733","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":23},"updated":"2016-12-13 07:52:51.000000000","message":"I would change it to something unique, like \"my_type\", to make sure the new code can handle any type","commit_id":"38643182b140dc3843e928a19b8470ee4c2e4e9b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"945506c3744d27837206456aab5dc4c467054342","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"  \"name\": \"[switch|host]-[1-9]\","},{"line_number":3,"context_line":"  \"id\": \"[1-9]{5}\","},{"line_number":4,"context_line":"  \"config_id\": \"[sh][1-9]\","},{"line_number":5,"context_line":"  \"type\": \"[switch|nova.host]\","}],"source_content_type":"application/json","patch_set":2,"id":"1a6eadb0_00e36ba4","line":2,"range":{"start_line":2,"start_character":12,"end_line":2,"end_character":23},"in_reply_to":"1a6eadb0_1d74b733","updated":"2016-12-13 09:58:45.000000000","message":"Done","commit_id":"38643182b140dc3843e928a19b8470ee4c2e4e9b"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7ea0e1138f269bb85291b6d8e69e27439275b96a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  \"name\": \"[switch|host]-[1-9]\","},{"line_number":3,"context_line":"  \"id\": \"[1-9]{5}\","},{"line_number":4,"context_line":"  \"config_id\": \"[sh][1-9]\","},{"line_number":5,"context_line":"  \"type\": \"[switch|nova.host]\","},{"line_number":6,"context_line":"  \"state\": \"available\","},{"line_number":7,"context_line":"  \"vitrage_datasource_action\": \"snapshot\","},{"line_number":8,"context_line":"  \"vitrage_sample_date\": \"2015-12-01T12:46:41Z\","}],"source_content_type":"application/json","patch_set":2,"id":"1a6eadb0_3d8fb324","line":5,"range":{"start_line":5,"start_character":12,"end_line":5,"end_character":28},"updated":"2016-12-13 07:52:51.000000000","message":"Same comment","commit_id":"38643182b140dc3843e928a19b8470ee4c2e4e9b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"945506c3744d27837206456aab5dc4c467054342","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  \"name\": \"[switch|host]-[1-9]\","},{"line_number":3,"context_line":"  \"id\": \"[1-9]{5}\","},{"line_number":4,"context_line":"  \"config_id\": \"[sh][1-9]\","},{"line_number":5,"context_line":"  \"type\": \"[switch|nova.host]\","},{"line_number":6,"context_line":"  \"state\": \"available\","},{"line_number":7,"context_line":"  \"vitrage_datasource_action\": \"snapshot\","},{"line_number":8,"context_line":"  \"vitrage_sample_date\": \"2015-12-01T12:46:41Z\","}],"source_content_type":"application/json","patch_set":2,"id":"1a6eadb0_20eea78b","line":5,"range":{"start_line":5,"start_character":12,"end_line":5,"end_character":28},"in_reply_to":"1a6eadb0_3d8fb324","updated":"2016-12-13 09:58:45.000000000","message":"Done","commit_id":"38643182b140dc3843e928a19b8470ee4c2e4e9b"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"7ea0e1138f269bb85291b6d8e69e27439275b96a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    {"},{"line_number":12,"context_line":"      \"source\": \"s[1-9]\","},{"line_number":13,"context_line":"      \"target\": \"h[1-9]\","},{"line_number":14,"context_line":"      \"relation_type\": \"attached\""},{"line_number":15,"context_line":"    }"},{"line_number":16,"context_line":"  ]"},{"line_number":17,"context_line":"}"}],"source_content_type":"application/json","patch_set":2,"id":"1a6eadb0_dda07f93","line":14,"range":{"start_line":14,"start_character":24,"end_line":14,"end_character":32},"updated":"2016-12-13 07:52:51.000000000","message":"Again, let\u0027s try a non-existing relationship type","commit_id":"38643182b140dc3843e928a19b8470ee4c2e4e9b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"945506c3744d27837206456aab5dc4c467054342","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    {"},{"line_number":12,"context_line":"      \"source\": \"s[1-9]\","},{"line_number":13,"context_line":"      \"target\": \"h[1-9]\","},{"line_number":14,"context_line":"      \"relation_type\": \"attached\""},{"line_number":15,"context_line":"    }"},{"line_number":16,"context_line":"  ]"},{"line_number":17,"context_line":"}"}],"source_content_type":"application/json","patch_set":2,"id":"1a6eadb0_40f3a373","line":14,"range":{"start_line":14,"start_character":24,"end_line":14,"end_character":32},"in_reply_to":"1a6eadb0_dda07f93","updated":"2016-12-13 09:58:45.000000000","message":"Done","commit_id":"38643182b140dc3843e928a19b8470ee4c2e4e9b"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    {"},{"line_number":12,"context_line":"      \"source\": \"[sc][1-9]\","},{"line_number":13,"context_line":"      \"target\": \"[hc][1-9]\","},{"line_number":14,"context_line":"      \"relation_type\": \"attached|custom\""},{"line_number":15,"context_line":"    }"},{"line_number":16,"context_line":"  ]"},{"line_number":17,"context_line":"}"}],"source_content_type":"application/json","patch_set":9,"id":"ba5201f7_9c76cd3c","line":14,"range":{"start_line":14,"start_character":7,"end_line":14,"end_character":15},"updated":"2017-01-10 14:13:35.000000000","message":"shouldn\u0027t it be \"relationship_type\"","commit_id":"0e540c48da375278f20c61c14139423ee257307f"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"7b6bfb504af27cf736207db7269dfaf5b0d50b82","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    {"},{"line_number":12,"context_line":"      \"source\": \"[sc][1-9]\","},{"line_number":13,"context_line":"      \"target\": \"[hc][1-9]\","},{"line_number":14,"context_line":"      \"relation_type\": \"attached|custom\""},{"line_number":15,"context_line":"    }"},{"line_number":16,"context_line":"  ]"},{"line_number":17,"context_line":"}"}],"source_content_type":"application/json","patch_set":9,"id":"ba5201f7_6b6661ee","line":14,"range":{"start_line":14,"start_character":7,"end_line":14,"end_character":15},"in_reply_to":"ba5201f7_9c76cd3c","updated":"2017-01-12 06:43:11.000000000","message":"Done","commit_id":"0e540c48da375278f20c61c14139423ee257307f"}],"vitrage/tests/unit/datasources/static/test_static_driver.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # Test assertions"},{"line_number":79,"context_line":"        self.assertEqual(9, len(static_entities))"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        for entity in static_entities[:-1]:  # exclude end message"},{"line_number":82,"context_line":"            self._validate_static_entity(entity)"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    # noinspection PyAttributeOutsideInit"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_dc5f7573","line":81,"range":{"start_line":81,"start_character":37,"end_line":81,"end_character":42},"updated":"2017-01-10 14:13:35.000000000","message":"nice :)","commit_id":"0e540c48da375278f20c61c14139423ee257307f"}],"vitrage/tests/unit/datasources/static/test_static_transformer.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"fcbc156f1eb68ace907894589dfd6248fb6d0770","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertFalse(vertex[VProps.IS_DELETED])"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _validate_neighbors(self, neighbors, vertex_id, event):"},{"line_number":116,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba5201f7_3ceb217a","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":12},"updated":"2017-01-10 14:13:35.000000000","message":"is it possible to validate the neighbors?","commit_id":"0e540c48da375278f20c61c14139423ee257307f"}]}
