)]}'
{"doc/source/contributor/tmfapi639-datasource.rst":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b18d39cba70935251c8d502758af7dcf0e533918","unresolved":false,"context_lines":[{"line_number":1,"context_line":"TMF API 639 - Vitrage\r"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\r"},{"line_number":3,"context_line":"\r"},{"line_number":4,"context_line":"This datasource loads to Vitrage topologies exposed in TMF API 639 Resource Inventory Management.\r"},{"line_number":5,"context_line":"https://www.tmforum.org/resources/specification/tmf639-resource-inventory-management-api-rest-specification-r17-0-1/\r"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f493fa4_c7278464","line":2,"updated":"2020-04-21 15:03:05.000000000","message":"docs: Title underline too short.","commit_id":"24fafe25a83a1e23135c4c8144317866ede72823"},{"author":{"_account_id":30408,"name":"Qitao","email":"qihongtao@inspur.com","username":"qihongtao"},"change_message_id":"b9606b6341a3f6f4b1f34f9e07d09ab2c45cd346","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\r"},{"line_number":20,"context_line":"      | -endpoint:\r"},{"line_number":21,"context_line":"      |     snapshot: URL CONTAINING COMPLETE TOPOLOGY\r"},{"line_number":22,"context_line":"      |     update: OPTIONAL URL CONTAINING NOTIFICATIONS FOR TOPOLOGY CHANGES \r"},{"line_number":23,"context_line":"\r"},{"line_number":24,"context_line":"You may allow as many endpoints as you desire.\r"},{"line_number":25,"context_line":"\r"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f493fa4_278f48cd","line":22,"range":{"start_line":22,"start_character":78,"end_line":22,"end_character":79},"updated":"2020-04-24 02:46:01.000000000","message":"extra blank","commit_id":"24fafe25a83a1e23135c4c8144317866ede72823"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"22c9bc722debc3e6f4e6065ea15e9a8d3b170fed","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\r"},{"line_number":37,"context_line":"**Warning:** due to limitations on TMF API definition, topology changes will require all parents all the way to the root to be defined in order to be correctly represented.\r"},{"line_number":38,"context_line":"\r"},{"line_number":39,"context_line":"DONE\r"},{"line_number":40,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f493fa4_65576c04","line":40,"range":{"start_line":39,"start_character":0,"end_line":40,"end_character":4},"updated":"2020-04-22 16:36:34.000000000","message":"not sure you need this","commit_id":"090e8925994172d3b9fd6a2a480ebdfb246a6298"}],"vitrage/datasources/tmfapi639/__init__.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"98f889d09f6bdbf4a966ee71b5df0b45e5c3eeba","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               )]"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class TmfApi639Fields(object):"},{"line_number":53,"context_line":"    TYPE \u003d \u0027type\u0027"},{"line_number":54,"context_line":"    ID \u003d \u0027id\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_7a727413","line":52,"range":{"start_line":52,"start_character":22,"end_line":52,"end_character":28},"updated":"2020-04-06 12:32:46.000000000","message":"nit: it could be simplified to:\nclass TmfApi639Fields:","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"}],"vitrage/datasources/tmfapi639/config.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"98f889d09f6bdbf4a966ee71b5df0b45e5c3eeba","unresolved":false,"context_lines":[{"line_number":22,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class TmfApi639Config(object):"},{"line_number":26,"context_line":"    def __init__(self):"},{"line_number":27,"context_line":"        try:"},{"line_number":28,"context_line":"            tmfapi639_config_file \u003d CONF.tmfapi639[DSOpts.CONFIG_FILE]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_3a510c64","line":25,"updated":"2020-04-06 12:32:46.000000000","message":"nit: it could be simplified to:\nclass TmfApi639Fields:","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"98f889d09f6bdbf4a966ee71b5df0b45e5c3eeba","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            tmfapi639_config_file \u003d CONF.tmfapi639[DSOpts.CONFIG_FILE]"},{"line_number":29,"context_line":"            tmfapi639_config \u003d file_utils.load_yaml_file(tmfapi639_config_file)"},{"line_number":30,"context_line":"            self.endpoints \u003d self._create_mapping(tmfapi639_config)"},{"line_number":31,"context_line":"        except Exception:"},{"line_number":32,"context_line":"            LOG.exception(\u0027Failed in init.\u0027)"},{"line_number":33,"context_line":"            self.endpoints \u003d []"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_baf35c73","line":31,"range":{"start_line":31,"start_character":15,"end_line":31,"end_character":24},"updated":"2020-04-06 12:32:46.000000000","message":"Can we catch more specific exception here?","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"98f889d09f6bdbf4a966ee71b5df0b45e5c3eeba","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            self.endpoints \u003d []"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @staticmethod"},{"line_number":36,"context_line":"    def _create_mapping(config):  # read URL list from config dictionary"},{"line_number":37,"context_line":"        LOG.debug(config)"},{"line_number":38,"context_line":"        endpoint_list \u003d []"},{"line_number":39,"context_line":"        # Tuple list containing either 1 or 2 elements (Endpoint and updates)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_7a4b94af","line":36,"range":{"start_line":36,"start_character":33,"end_line":36,"end_character":72},"updated":"2020-04-06 12:32:46.000000000","message":"please, move this comment to the docstring","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"98f889d09f6bdbf4a966ee71b5df0b45e5c3eeba","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        LOG.info(\"Finished reading endpoints file\")"},{"line_number":50,"context_line":"        return endpoint_list"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def get_tmfapi639_endpoints(self):  # return that url list"},{"line_number":53,"context_line":"        return self.endpoints"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_5a021040","line":52,"range":{"start_line":52,"start_character":8,"end_line":52,"end_character":31},"updated":"2020-04-06 12:32:46.000000000","message":"We don\u0027t need this method at all","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":30408,"name":"Qitao","email":"qihongtao@inspur.com","username":"qihongtao"},"change_message_id":"b9606b6341a3f6f4b1f34f9e07d09ab2c45cd346","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            update_url \u003d \"\""},{"line_number":44,"context_line":"            if \"update\" in e[\"endpoint\"]:"},{"line_number":45,"context_line":"                update_url \u003d e[\"endpoint\"][\"update\"]"},{"line_number":46,"context_line":"            if update_url !\u003d \"\":"},{"line_number":47,"context_line":"                endpoint_list.append((snapshot_url, update_url))"},{"line_number":48,"context_line":"            else:"},{"line_number":49,"context_line":"                endpoint_list.append(snapshot_url)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f493fa4_0455a51d","line":46,"range":{"start_line":46,"start_character":12,"end_line":46,"end_character":32},"updated":"2020-04-24 02:46:01.000000000","message":"if not update_url:","commit_id":"b801bbcdbe64070d7dcfb28209bd5bda8eaf2e4b"}],"vitrage/datasources/tmfapi639/driver.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"22c9bc722debc3e6f4e6065ea15e9a8d3b170fed","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from vitrage.datasources.tmfapi639.config import TmfApi639Config"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from json import loads"},{"line_number":23,"context_line":"from requests import get"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1f493fa4_a53b34cf","line":23,"range":{"start_line":22,"start_character":0,"end_line":23,"end_character":24},"updated":"2020-04-22 16:36:34.000000000","message":"please do \n\nimport json\nimport requests\n\nand then use json.loads and requests.get\n\nit is more readable this way","commit_id":"090e8925994172d3b9fd6a2a480ebdfb246a6298"},{"author":{"_account_id":30408,"name":"Qitao","email":"qihongtao@inspur.com","username":"qihongtao"},"change_message_id":"b9606b6341a3f6f4b1f34f9e07d09ab2c45cd346","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        total \u003d []"},{"line_number":65,"context_line":"        for pairs in self.endpoints:"},{"line_number":66,"context_line":"            try:"},{"line_number":67,"context_line":"                if type(pairs) is tuple:  # Contains an update URL"},{"line_number":68,"context_line":"                    LOG.info(\"Connecting to \" + pairs[0] +"},{"line_number":69,"context_line":"                             \"with updates in \" + pairs[1])"},{"line_number":70,"context_line":"                    r \u003d requests.get(pairs[0])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f493fa4_e7123b58","line":67,"range":{"start_line":67,"start_character":19,"end_line":67,"end_character":39},"updated":"2020-04-24 02:46:01.000000000","message":"isinstance(pairs,tuple)","commit_id":"b801bbcdbe64070d7dcfb28209bd5bda8eaf2e4b"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"c1d9bd1975b6a7a56051af985103cae92e07516f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        total \u003d []"},{"line_number":65,"context_line":"        for pairs in self.endpoints:"},{"line_number":66,"context_line":"            try:"},{"line_number":67,"context_line":"                if type(pairs) is tuple:  # Contains an update URL"},{"line_number":68,"context_line":"                    LOG.info(\"Connecting to \" + pairs[0] +"},{"line_number":69,"context_line":"                             \"with updates in \" + pairs[1])"},{"line_number":70,"context_line":"                    r \u003d requests.get(pairs[0])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f493fa4_ddf8acc5","line":67,"range":{"start_line":67,"start_character":19,"end_line":67,"end_character":39},"in_reply_to":"1f493fa4_e7123b58","updated":"2020-04-24 06:33:13.000000000","message":"isinstance is better because it checks for inheritance but\nI dont know if it is relevant here","commit_id":"b801bbcdbe64070d7dcfb28209bd5bda8eaf2e4b"},{"author":{"_account_id":30408,"name":"Qitao","email":"qihongtao@inspur.com","username":"qihongtao"},"change_message_id":"b9606b6341a3f6f4b1f34f9e07d09ab2c45cd346","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                    LOG.info(\"Connecting to \" + pairs[0] +"},{"line_number":69,"context_line":"                             \"with updates in \" + pairs[1])"},{"line_number":70,"context_line":"                    r \u003d requests.get(pairs[0])"},{"line_number":71,"context_line":"                elif type(pairs) is str:  # Doesn\u0027t contain update URL"},{"line_number":72,"context_line":"                    LOG.info(\"Connecting to \" + pairs)"},{"line_number":73,"context_line":"                    r \u003d requests.get(pairs)"},{"line_number":74,"context_line":"                r_dict \u003d json.loads(r.text)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f493fa4_271d4366","line":71,"range":{"start_line":71,"start_character":21,"end_line":71,"end_character":39},"updated":"2020-04-24 02:46:01.000000000","message":"isinstance(pairs,str)","commit_id":"b801bbcdbe64070d7dcfb28209bd5bda8eaf2e4b"},{"author":{"_account_id":30408,"name":"Qitao","email":"qihongtao@inspur.com","username":"qihongtao"},"change_message_id":"b9606b6341a3f6f4b1f34f9e07d09ab2c45cd346","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        total \u003d []"},{"line_number":82,"context_line":"        for pairs in self.endpoints:"},{"line_number":83,"context_line":"            try:"},{"line_number":84,"context_line":"                if type(pairs) is tuple:  # Contains an update URL"},{"line_number":85,"context_line":"                    LOG.info(\"Connecting to \" + pairs[0] +"},{"line_number":86,"context_line":"                             \"with updates in \" + pairs[1])"},{"line_number":87,"context_line":"                    r \u003d requests.get(pairs[1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f493fa4_472b2f81","line":84,"range":{"start_line":84,"start_character":19,"end_line":84,"end_character":39},"updated":"2020-04-24 02:46:01.000000000","message":"isinstance(pairs,tuple)","commit_id":"b801bbcdbe64070d7dcfb28209bd5bda8eaf2e4b"}],"vitrage/datasources/tmfapi639/transformer.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"98f889d09f6bdbf4a966ee71b5df0b45e5c3eeba","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class TmfApi639Transformer(ResourceTransformerBase):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self, transformers):"},{"line_number":32,"context_line":"        super(TmfApi639Transformer, self).__init__(transformers)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def _create_snapshot_entity_vertex(self, entity_event):"},{"line_number":35,"context_line":"        return self._create_vertex(entity_event)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_7af9d44b","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":64},"updated":"2020-04-06 12:32:46.000000000","message":"Please, delete empty __init__ method","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        return TMFAPI639_DATASOURCE"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _create_vertex(self, entity_event):"},{"line_number":58,"context_line":"        \"\"\"Camps used from the received JSON:"},{"line_number":59,"context_line":"            - id"},{"line_number":60,"context_line":"            - name"},{"line_number":61,"context_line":"            - @type"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_c07133e1","line":58,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _create_vertex(self, entity_event):"},{"line_number":58,"context_line":"        \"\"\"Camps used from the received JSON:"},{"line_number":59,"context_line":"            - id"},{"line_number":60,"context_line":"            - name"},{"line_number":61,"context_line":"            - @type"},{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_207f3fac","line":59,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def _create_vertex(self, entity_event):"},{"line_number":58,"context_line":"        \"\"\"Camps used from the received JSON:"},{"line_number":59,"context_line":"            - id"},{"line_number":60,"context_line":"            - name"},{"line_number":61,"context_line":"            - @type"},{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"},{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_007cbbb3","line":60,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \"\"\"Camps used from the received JSON:"},{"line_number":59,"context_line":"            - id"},{"line_number":60,"context_line":"            - name"},{"line_number":61,"context_line":"            - @type"},{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"},{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"},{"line_number":64,"context_line":"        but we only use this one for topology"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_604ae783","line":61,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            - id"},{"line_number":60,"context_line":"            - name"},{"line_number":61,"context_line":"            - @type"},{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"},{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"},{"line_number":64,"context_line":"        but we only use this one for topology"},{"line_number":65,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_404fe391","line":62,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            - name"},{"line_number":61,"context_line":"            - @type"},{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"},{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"},{"line_number":64,"context_line":"        but we only use this one for topology"},{"line_number":65,"context_line":"        \"\"\""},{"line_number":66,"context_line":"        "}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_a044ef75","line":63,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            - @type"},{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"},{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"},{"line_number":64,"context_line":"        but we only use this one for topology"},{"line_number":65,"context_line":"        \"\"\""},{"line_number":66,"context_line":"        "},{"line_number":67,"context_line":"        vitrage_sample_timestamp \u003d \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_8049eb8c","line":64,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            - resourceRelationship : [type, resource: id]"},{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"},{"line_number":64,"context_line":"        but we only use this one for topology"},{"line_number":65,"context_line":"        \"\"\""},{"line_number":66,"context_line":"        "},{"line_number":67,"context_line":"        vitrage_sample_timestamp \u003d \\"},{"line_number":68,"context_line":"            datetime.now().strftime(transformer_base.TIMESTAMP_FORMAT)"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_e05d5749","line":65,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"83dffa30757321b1b2eb037c6d007b5eaf3948dd","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        The TMF 639 API REST Endpoint can contain more information"},{"line_number":64,"context_line":"        but we only use this one for topology"},{"line_number":65,"context_line":"        \"\"\""},{"line_number":66,"context_line":"        "},{"line_number":67,"context_line":"        vitrage_sample_timestamp \u003d \\"},{"line_number":68,"context_line":"            datetime.now().strftime(transformer_base.TIMESTAMP_FORMAT)"},{"line_number":69,"context_line":"        update_timestamp \u003d self._format_update_timestamp("}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_c05ad34e","line":66,"updated":"2020-04-03 19:48:44.000000000","message":"pep8: W293 blank line contains whitespace","commit_id":"237b478b459f04d5457f5ce24ed5d6b001f06bc0"}]}
