)]}'
{"dragonflow/cli/df_model.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"146af56abb062e8e328a1d9445ef7f6e39a5c634","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# IpAddress, MacAddress, PortRange,"},{"line_number":226,"context_line":"# IpNetwork, HostRoute,"},{"line_number":227,"context_line":"class OASPrinter(ModelsPrinter):"},{"line_number":228,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":229,"context_line":"    def __init__(self, fh):"},{"line_number":230,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":231,"context_line":"        self._indent \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff82abbf_365a5083","line":228,"updated":"2017-11-30 13:02:01.000000000","message":"Why not construct a python dict, and then dump it as a json?","commit_id":"7b6df0f57f0ac647f098a8a3071401548d5ddf9d"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"ba5703cbb5a3f598a121676bb3502aae30626db5","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# IpAddress, MacAddress, PortRange,"},{"line_number":226,"context_line":"# IpNetwork, HostRoute,"},{"line_number":227,"context_line":"class OASPrinter(ModelsPrinter):"},{"line_number":228,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":229,"context_line":"    def __init__(self, fh):"},{"line_number":230,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":231,"context_line":"        self._indent \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff82abbf_1f84fcb0","line":228,"in_reply_to":"ff82abbf_365a5083","updated":"2017-11-30 16:21:44.000000000","message":"Done","commit_id":"7b6df0f57f0ac647f098a8a3071401548d5ddf9d"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"da59efa206e8aeade81bcf9a371a9ff0270fc9c8","unresolved":false,"context_lines":[{"line_number":225,"context_line":"# IpAddress, MacAddress, PortRange,"},{"line_number":226,"context_line":"# IpNetwork, HostRoute,"},{"line_number":227,"context_line":"class OASPrinter(ModelsPrinter):"},{"line_number":228,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":229,"context_line":"    def __init__(self, fh):"},{"line_number":230,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":231,"context_line":"        self._indent \u003d 0"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff82abbf_a9bfdece","line":228,"in_reply_to":"ff82abbf_365a5083","updated":"2017-11-30 15:07:15.000000000","message":"Interesting idea. Let\u0027s discuss it offline","commit_id":"7b6df0f57f0ac647f098a8a3071401548d5ddf9d"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import abc"},{"line_number":16,"context_line":"import argparse"},{"line_number":17,"context_line":"import contextlib"},{"line_number":18,"context_line":"from oslo_serialization import jsonutils"},{"line_number":19,"context_line":"import re"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":"import sys"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_c13f8085","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":40},"updated":"2017-12-01 08:50:58.000000000","message":"This should be in the second import block. oslo is not python standard library.","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"import abc"},{"line_number":16,"context_line":"import argparse"},{"line_number":17,"context_line":"import contextlib"},{"line_number":18,"context_line":"from oslo_serialization import jsonutils"},{"line_number":19,"context_line":"import re"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":"import sys"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_98d9e9f5","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":40},"in_reply_to":"ff82abbf_c13f8085","updated":"2017-12-01 12:23:03.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":31,"context_line":"# Classes: HostRoute, AddressPair, DhcpParams, PortBinding"},{"line_number":32,"context_line":"# Fields:  MacAddress, IpAddress, IpNetwork, PortRange"},{"line_number":33,"context_line":"# Temporary solution:"},{"line_number":34,"context_line":"#  Fields: we currently print them as strings."},{"line_number":35,"context_line":"#  Classes: added the mf.construct_nb_db_model annotation - we should probably"},{"line_number":36,"context_line":"#   remove them and find a better solution (maybe turn into fields?)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_21ed0c25","line":34,"updated":"2017-12-01 08:50:58.000000000","message":"Good enough for first implementation. We have server-side validation, and the input is a string anyway (it is parsed to become the relevant object)","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"# Classes: HostRoute, AddressPair, DhcpParams, PortBinding"},{"line_number":32,"context_line":"# Fields:  MacAddress, IpAddress, IpNetwork, PortRange"},{"line_number":33,"context_line":"# Temporary solution:"},{"line_number":34,"context_line":"#  Fields: we currently print them as strings."},{"line_number":35,"context_line":"#  Classes: added the mf.construct_nb_db_model annotation - we should probably"},{"line_number":36,"context_line":"#   remove them and find a better solution (maybe turn into fields?)"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_f8ed958b","line":34,"in_reply_to":"ff82abbf_21ed0c25","updated":"2017-12-01 12:23:03.000000000","message":"ok","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# Temporary solution:"},{"line_number":34,"context_line":"#  Fields: we currently print them as strings."},{"line_number":35,"context_line":"#  Classes: added the mf.construct_nb_db_model annotation - we should probably"},{"line_number":36,"context_line":"#   remove them and find a better solution (maybe turn into fields?)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":39,"context_line":"class ModelsPrinter(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_41e5b037","line":36,"updated":"2017-12-01 08:50:58.000000000","message":"I think we tried this in the past, and it didn\u0027t work well. Too much is expected of nb_db_models that can be waived for basic json models.","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c908af009c0148c64706c7c096f8a5753bde55b2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# Temporary solution:"},{"line_number":34,"context_line":"#  Fields: we currently print them as strings."},{"line_number":35,"context_line":"#  Classes: added the mf.construct_nb_db_model annotation - we should probably"},{"line_number":36,"context_line":"#   remove them and find a better solution (maybe turn into fields?)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":39,"context_line":"class ModelsPrinter(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_de91abf3","line":36,"in_reply_to":"ff82abbf_18ef1988","updated":"2017-12-02 16:31:47.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"# Temporary solution:"},{"line_number":34,"context_line":"#  Fields: we currently print them as strings."},{"line_number":35,"context_line":"#  Classes: added the mf.construct_nb_db_model annotation - we should probably"},{"line_number":36,"context_line":"#   remove them and find a better solution (maybe turn into fields?)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":39,"context_line":"class ModelsPrinter(object):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_18ef1988","line":36,"in_reply_to":"ff82abbf_41e5b037","updated":"2017-12-01 12:23:03.000000000","message":"This is also why the build fails.\nI will give it a better solution in the next patchset","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    def __init__(self, fh):"},{"line_number":178,"context_line":"        super(UMLPrinter, self).__init__(fh)"},{"line_number":179,"context_line":"        self._model \u003d \u0027\u0027"},{"line_number":180,"context_line":"        self._fields \u003d set()"},{"line_number":181,"context_line":"        self._processed \u003d set()"},{"line_number":182,"context_line":"        self._dependencies \u003d set()"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_c1ca20a0","line":180,"range":{"start_line":180,"start_character":0,"end_line":180,"end_character":28},"updated":"2017-12-01 08:50:58.000000000","message":"I can\u0027t find where this attribute is used","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    def __init__(self, fh):"},{"line_number":178,"context_line":"        super(UMLPrinter, self).__init__(fh)"},{"line_number":179,"context_line":"        self._model \u003d \u0027\u0027"},{"line_number":180,"context_line":"        self._fields \u003d set()"},{"line_number":181,"context_line":"        self._processed \u003d set()"},{"line_number":182,"context_line":"        self._dependencies \u003d set()"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_b8ff0d33","line":180,"range":{"start_line":180,"start_character":0,"end_line":180,"end_character":28},"in_reply_to":"ff82abbf_c1ca20a0","updated":"2017-12-01 12:23:03.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":235,"context_line":"    def __init__(self, fh):"},{"line_number":236,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":237,"context_line":"        self._indent \u003d 0"},{"line_number":238,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":239,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":240,"context_line":"        self._version \u003d \u00270.0.1\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_a146fc20","line":237,"range":{"start_line":237,"start_character":0,"end_line":237,"end_character":24},"updated":"2017-12-01 08:50:58.000000000","message":"No longer needed.","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":235,"context_line":"    def __init__(self, fh):"},{"line_number":236,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":237,"context_line":"        self._indent \u003d 0"},{"line_number":238,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":239,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":240,"context_line":"        self._version \u003d \u00270.0.1\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_78f9854b","line":237,"range":{"start_line":237,"start_character":0,"end_line":237,"end_character":24},"in_reply_to":"ff82abbf_a146fc20","updated":"2017-12-01 12:23:03.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        self._indent \u003d 0"},{"line_number":238,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":239,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":240,"context_line":"        self._version \u003d \u00270.0.1\u0027"},{"line_number":241,"context_line":"        self._required \u003d list()"},{"line_number":242,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":243,"context_line":"        self._models_obj \u003d dict()"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_015fa8e5","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":31},"updated":"2017-12-01 08:50:58.000000000","message":"Maybe make a constant?","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        self._indent \u003d 0"},{"line_number":238,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":239,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":240,"context_line":"        self._version \u003d \u00270.0.1\u0027"},{"line_number":241,"context_line":"        self._required \u003d list()"},{"line_number":242,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":243,"context_line":"        self._models_obj \u003d dict()"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_1894f9e7","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":31},"in_reply_to":"ff82abbf_015fa8e5","updated":"2017-12-01 12:23:03.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        self._required \u003d list()"},{"line_number":242,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":243,"context_line":"        self._models_obj \u003d dict()"},{"line_number":244,"context_line":"        self._schemas \u003d dict()"},{"line_number":245,"context_line":"        self._model \u003d dict()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def output_start(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_61ec74f3","line":244,"range":{"start_line":244,"start_character":0,"end_line":244,"end_character":30},"updated":"2017-12-01 08:50:58.000000000","message":"This attribute is only referenced in output_start. All other referenced go through self._models_obj[\u0027components\u0027]...\n\nWhy keep it?","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        self._required \u003d list()"},{"line_number":242,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":243,"context_line":"        self._models_obj \u003d dict()"},{"line_number":244,"context_line":"        self._schemas \u003d dict()"},{"line_number":245,"context_line":"        self._model \u003d dict()"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    def output_start(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_3899bd1e","line":244,"range":{"start_line":244,"start_character":0,"end_line":244,"end_character":30},"in_reply_to":"ff82abbf_61ec74f3","updated":"2017-12-01 12:23:03.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        info[\u0027license\u0027] \u003d license"},{"line_number":258,"context_line":"        license[\u0027name\u0027] \u003d \u0027Apache 2.0\u0027"},{"line_number":259,"context_line":"        license[\u0027url\u0027] \u003d \u0027http://www.apache.org/licenses/LICENSE-2.0.html\u0027"},{"line_number":260,"context_line":"        info[\u0027version\u0027] \u003d \u00270.0.1\u0027"},{"line_number":261,"context_line":"        self._models_obj[\u0027paths\u0027] \u003d paths"},{"line_number":262,"context_line":"        self._models_obj[\u0027components\u0027] \u003d components"},{"line_number":263,"context_line":"        components[\u0027schemas\u0027] \u003d self._schemas"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_010488c5","line":260,"range":{"start_line":260,"start_character":0,"end_line":260,"end_character":33},"updated":"2017-12-01 08:50:58.000000000","message":"Take from self._version or a constant?","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        info[\u0027license\u0027] \u003d license"},{"line_number":258,"context_line":"        license[\u0027name\u0027] \u003d \u0027Apache 2.0\u0027"},{"line_number":259,"context_line":"        license[\u0027url\u0027] \u003d \u0027http://www.apache.org/licenses/LICENSE-2.0.html\u0027"},{"line_number":260,"context_line":"        info[\u0027version\u0027] \u003d \u00270.0.1\u0027"},{"line_number":261,"context_line":"        self._models_obj[\u0027paths\u0027] \u003d paths"},{"line_number":262,"context_line":"        self._models_obj[\u0027components\u0027] \u003d components"},{"line_number":263,"context_line":"        components[\u0027schemas\u0027] \u003d self._schemas"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_d89d310b","line":260,"range":{"start_line":260,"start_character":0,"end_line":260,"end_character":33},"in_reply_to":"ff82abbf_010488c5","updated":"2017-12-01 12:23:03.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            # return type(field).__name__, None"},{"line_number":338,"context_line":"            return \u0027string\u0027, None"},{"line_number":339,"context_line":"        else:"},{"line_number":340,"context_line":"            # TODO(snapiri) problematic classes flow get here"},{"line_number":341,"context_line":"            return field.__name__, None"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def _process_field(self, key, field):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_817c1821","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":61},"updated":"2017-12-01 08:50:58.000000000","message":"Maybe dynamically aggregate a list of the problematic classes (HostRoutes, PortBinding, etc.), and then iterate these and add them after the main loop?","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"0e5365c2b1c210cec705a29d49de14ea8b66134d","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            # return type(field).__name__, None"},{"line_number":338,"context_line":"            return \u0027string\u0027, None"},{"line_number":339,"context_line":"        else:"},{"line_number":340,"context_line":"            # TODO(snapiri) problematic classes flow get here"},{"line_number":341,"context_line":"            return field.__name__, None"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def _process_field(self, key, field):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_b884edb2","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":61},"in_reply_to":"ff82abbf_817c1821","updated":"2017-12-01 12:23:03.000000000","message":"Will handle","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c908af009c0148c64706c7c096f8a5753bde55b2","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            # return type(field).__name__, None"},{"line_number":338,"context_line":"            return \u0027string\u0027, None"},{"line_number":339,"context_line":"        else:"},{"line_number":340,"context_line":"            # TODO(snapiri) problematic classes flow get here"},{"line_number":341,"context_line":"            return field.__name__, None"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    def _process_field(self, key, field):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_5eb7db87","line":340,"range":{"start_line":340,"start_character":0,"end_line":340,"end_character":61},"in_reply_to":"ff82abbf_b884edb2","updated":"2017-12-02 16:31:47.000000000","message":"Done","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cf52a80da4e30a41d8a7aefb4a6185586b000d80","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":"import sys"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from jsonmodels import fields"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from dragonflow.db import field_types"},{"line_number":24,"context_line":"from dragonflow.db import model_framework"}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_24cbe653","line":21,"updated":"2017-12-02 19:17:21.000000000","message":"oslo_serialization import should be here.","commit_id":"2e867507f612b9f8b640e7ef4838480c26e43520"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"008ce391e9455cdbd43dbfa17c1665d51d5399f7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import six"},{"line_number":19,"context_line":"import sys"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from jsonmodels import fields"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from dragonflow.db import field_types"},{"line_number":24,"context_line":"from dragonflow.db import model_framework"}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_8404327d","line":21,"in_reply_to":"df87a7cf_24cbe653","updated":"2017-12-02 19:24:03.000000000","message":"Oops...","commit_id":"2e867507f612b9f8b640e7ef4838480c26e43520"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"cf52a80da4e30a41d8a7aefb4a6185586b000d80","unresolved":false,"context_lines":[{"line_number":306,"context_line":"class DfModelParser(object):"},{"line_number":307,"context_line":"    def __init__(self, printer):"},{"line_number":308,"context_line":"        self._printer \u003d printer"},{"line_number":309,"context_line":"        self._basic_types \u003d (\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027, \u0027enum\u0027)"},{"line_number":310,"context_line":"        self._processed_models \u003d set()"},{"line_number":311,"context_line":"        self._all_models \u003d set()"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_e4c41e43","line":309,"range":{"start_line":309,"start_character":0,"end_line":309,"end_character":76},"updated":"2017-12-02 19:17:21.000000000","message":"nit: Can be a constant too","commit_id":"2e867507f612b9f8b640e7ef4838480c26e43520"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"db83f570c3835a477873562254c4c925ec8c3b9d","unresolved":false,"context_lines":[{"line_number":306,"context_line":"class DfModelParser(object):"},{"line_number":307,"context_line":"    def __init__(self, printer):"},{"line_number":308,"context_line":"        self._printer \u003d printer"},{"line_number":309,"context_line":"        self._basic_types \u003d (\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027, \u0027enum\u0027)"},{"line_number":310,"context_line":"        self._processed_models \u003d set()"},{"line_number":311,"context_line":"        self._all_models \u003d set()"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_6e5c684b","line":309,"range":{"start_line":309,"start_character":0,"end_line":309,"end_character":76},"in_reply_to":"df87a7cf_64ffae67","updated":"2017-12-03 08:04:42.000000000","message":"Class member rather than instance member would be better, but it\u0027s a nit as far as I\u0027m concerned.","commit_id":"2e867507f612b9f8b640e7ef4838480c26e43520"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9ebf66c34bc14fc32f0ed5fefcf0d5f08ee20c06","unresolved":false,"context_lines":[{"line_number":306,"context_line":"class DfModelParser(object):"},{"line_number":307,"context_line":"    def __init__(self, printer):"},{"line_number":308,"context_line":"        self._printer \u003d printer"},{"line_number":309,"context_line":"        self._basic_types \u003d (\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027, \u0027enum\u0027)"},{"line_number":310,"context_line":"        self._processed_models \u003d set()"},{"line_number":311,"context_line":"        self._all_models \u003d set()"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_ff3576f8","line":309,"range":{"start_line":309,"start_character":0,"end_line":309,"end_character":76},"in_reply_to":"df87a7cf_6e5c684b","updated":"2017-12-04 12:00:50.000000000","message":"Done","commit_id":"2e867507f612b9f8b640e7ef4838480c26e43520"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"008ce391e9455cdbd43dbfa17c1665d51d5399f7","unresolved":false,"context_lines":[{"line_number":306,"context_line":"class DfModelParser(object):"},{"line_number":307,"context_line":"    def __init__(self, printer):"},{"line_number":308,"context_line":"        self._printer \u003d printer"},{"line_number":309,"context_line":"        self._basic_types \u003d (\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027, \u0027enum\u0027)"},{"line_number":310,"context_line":"        self._processed_models \u003d set()"},{"line_number":311,"context_line":"        self._all_models \u003d set()"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_64ffae67","line":309,"range":{"start_line":309,"start_character":0,"end_line":309,"end_character":76},"in_reply_to":"df87a7cf_e4c41e43","updated":"2017-12-02 19:24:03.000000000","message":"thought about it before adding it here, but decided to do it this way. I believe that as this is relevant only to this class it should be here.\nIt may, though, be a member of the class and not the instance...","commit_id":"2e867507f612b9f8b640e7ef4838480c26e43520"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"147fda4272675a583201f7617c3e28fdcafd24bf","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":229,"context_line":"    def __init__(self, fh):"},{"line_number":230,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":231,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":232,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":233,"context_line":"        self._required \u003d list()"},{"line_number":234,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_f1a3744e","line":231,"range":{"start_line":231,"start_character":25,"end_line":231,"end_character":47},"updated":"2017-12-04 08:26:21.000000000","message":"constant?","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9ebf66c34bc14fc32f0ed5fefcf0d5f08ee20c06","unresolved":false,"context_lines":[{"line_number":228,"context_line":"    \"\"\"OpenApiSchema format printer\"\"\""},{"line_number":229,"context_line":"    def __init__(self, fh):"},{"line_number":230,"context_line":"        super(OASPrinter, self).__init__(fh)"},{"line_number":231,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":232,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":233,"context_line":"        self._required \u003d list()"},{"line_number":234,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_7f5c064b","line":231,"range":{"start_line":231,"start_character":25,"end_line":231,"end_character":47},"in_reply_to":"df87a7cf_f1a3744e","updated":"2017-12-04 12:00:50.000000000","message":"Done","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"147fda4272675a583201f7617c3e28fdcafd24bf","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":232,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":233,"context_line":"        self._required \u003d list()"},{"line_number":234,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":235,"context_line":"        self._models_obj \u003d dict()"},{"line_number":236,"context_line":"        self._model \u003d dict()"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_9188e8c6","line":234,"range":{"start_line":234,"start_character":28,"end_line":234,"end_character":66},"updated":"2017-12-04 08:26:21.000000000","message":"worth to define as constants","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9ebf66c34bc14fc32f0ed5fefcf0d5f08ee20c06","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":232,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":233,"context_line":"        self._required \u003d list()"},{"line_number":234,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":235,"context_line":"        self._models_obj \u003d dict()"},{"line_number":236,"context_line":"        self._model \u003d dict()"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_1f593a59","line":234,"range":{"start_line":234,"start_character":28,"end_line":234,"end_character":66},"in_reply_to":"df87a7cf_9188e8c6","updated":"2017-12-04 12:00:50.000000000","message":"Done","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"147fda4272675a583201f7617c3e28fdcafd24bf","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        self._models_obj[\u0027openapi\u0027] \u003d self._openapi_version"},{"line_number":245,"context_line":"        self._models_obj[\u0027info\u0027] \u003d info"},{"line_number":246,"context_line":"        info[\u0027title\u0027] \u003d \u0027DragonFlow Schema\u0027"},{"line_number":247,"context_line":"        info[\u0027description\u0027] \u003d \u0027jsonschma representation of the \u0027 \\"},{"line_number":248,"context_line":"                              \u0027DragonFlow model\u0027"},{"line_number":249,"context_line":"        info[\u0027license\u0027] \u003d license"},{"line_number":250,"context_line":"        license[\u0027name\u0027] \u003d \u0027Apache 2.0\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_718f64cc","line":247,"range":{"start_line":247,"start_character":64,"end_line":247,"end_character":66},"updated":"2017-12-04 08:26:21.000000000","message":"please avoid using \u0027\\\u0027","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9ebf66c34bc14fc32f0ed5fefcf0d5f08ee20c06","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        self._models_obj[\u0027openapi\u0027] \u003d self._openapi_version"},{"line_number":245,"context_line":"        self._models_obj[\u0027info\u0027] \u003d info"},{"line_number":246,"context_line":"        info[\u0027title\u0027] \u003d \u0027DragonFlow Schema\u0027"},{"line_number":247,"context_line":"        info[\u0027description\u0027] \u003d \u0027jsonschma representation of the \u0027 \\"},{"line_number":248,"context_line":"                              \u0027DragonFlow model\u0027"},{"line_number":249,"context_line":"        info[\u0027license\u0027] \u003d license"},{"line_number":250,"context_line":"        license[\u0027name\u0027] \u003d \u0027Apache 2.0\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_3f567e2b","line":247,"range":{"start_line":247,"start_character":64,"end_line":247,"end_character":66},"in_reply_to":"df87a7cf_718f64cc","updated":"2017-12-04 12:00:50.000000000","message":"Done","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"147fda4272675a583201f7617c3e28fdcafd24bf","unresolved":false,"context_lines":[{"line_number":306,"context_line":"class DfModelParser(object):"},{"line_number":307,"context_line":"    def __init__(self, printer):"},{"line_number":308,"context_line":"        self._printer \u003d printer"},{"line_number":309,"context_line":"        self._basic_types \u003d (\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027, \u0027enum\u0027)"},{"line_number":310,"context_line":"        self._processed_models \u003d set()"},{"line_number":311,"context_line":"        self._all_models \u003d set()"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_d16c300a","line":309,"range":{"start_line":309,"start_character":29,"end_line":309,"end_character":74},"updated":"2017-12-04 08:26:21.000000000","message":"constants","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9ebf66c34bc14fc32f0ed5fefcf0d5f08ee20c06","unresolved":false,"context_lines":[{"line_number":306,"context_line":"class DfModelParser(object):"},{"line_number":307,"context_line":"    def __init__(self, printer):"},{"line_number":308,"context_line":"        self._printer \u003d printer"},{"line_number":309,"context_line":"        self._basic_types \u003d (\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027, \u0027enum\u0027)"},{"line_number":310,"context_line":"        self._processed_models \u003d set()"},{"line_number":311,"context_line":"        self._all_models \u003d set()"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df87a7cf_df30b20a","line":309,"range":{"start_line":309,"start_character":29,"end_line":309,"end_character":74},"in_reply_to":"df87a7cf_d16c300a","updated":"2017-12-04 12:00:50.000000000","message":"Done","commit_id":"a7ab3e8452ffeb4e73e1281d0916067989049929"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"fd3d3ce07aa8f120dacb4d7e744669a02980f212","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":310,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":311,"context_line":"        self._required \u003d list()"},{"line_number":312,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":313,"context_line":"        self._models_obj \u003d dict()"},{"line_number":314,"context_line":"        self._model \u003d dict()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    def output_start(self):"},{"line_number":317,"context_line":"        info \u003d dict()"},{"line_number":318,"context_line":"        license \u003d dict()"},{"line_number":319,"context_line":"        paths \u003d dict()"},{"line_number":320,"context_line":"        schemas \u003d dict()"},{"line_number":321,"context_line":"        components \u003d dict()"},{"line_number":322,"context_line":"        self._models_obj[\u0027openapi\u0027] \u003d self._openapi_version"},{"line_number":323,"context_line":"        self._models_obj[\u0027info\u0027] \u003d info"},{"line_number":324,"context_line":"        info[\u0027title\u0027] \u003d \u0027DragonFlow Schema\u0027"},{"line_number":325,"context_line":"        info[\u0027description\u0027] \u003d \u0027jsonschma representation of the \u0027 \\"},{"line_number":326,"context_line":"                              \u0027DragonFlow model\u0027"},{"line_number":327,"context_line":"        info[\u0027license\u0027] \u003d license"},{"line_number":328,"context_line":"        license[\u0027name\u0027] \u003d \u0027Apache 2.0\u0027"},{"line_number":329,"context_line":"        license[\u0027url\u0027] \u003d \u0027http://www.apache.org/licenses/LICENSE-2.0.html\u0027"},{"line_number":330,"context_line":"        info[\u0027version\u0027] \u003d MODEL_SCHEMA_VERSION"},{"line_number":331,"context_line":"        self._models_obj[\u0027paths\u0027] \u003d paths"},{"line_number":332,"context_line":"        self._models_obj[\u0027components\u0027] \u003d components"}],"source_content_type":"text/x-python","patch_set":21,"id":"df87a7cf_92122658","line":329,"range":{"start_line":312,"start_character":27,"end_line":329,"end_character":74},"updated":"2017-12-04 08:33:01.000000000","message":"Worth to consider moving strings to be constants, especially if they are used more than once","commit_id":"55f72cc4125946b8486d433bd4dcdeaf390a5791"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"9ebf66c34bc14fc32f0ed5fefcf0d5f08ee20c06","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        self._ref_base \u003d \u0027#/components/schemas\u0027"},{"line_number":310,"context_line":"        self._openapi_version \u003d \u00273.0.0\u0027"},{"line_number":311,"context_line":"        self._required \u003d list()"},{"line_number":312,"context_line":"        self._base_types \u003d [\u0027string\u0027, \u0027number\u0027, \u0027float\u0027, \u0027boolean\u0027]"},{"line_number":313,"context_line":"        self._models_obj \u003d dict()"},{"line_number":314,"context_line":"        self._model \u003d dict()"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    def output_start(self):"},{"line_number":317,"context_line":"        info \u003d dict()"},{"line_number":318,"context_line":"        license \u003d dict()"},{"line_number":319,"context_line":"        paths \u003d dict()"},{"line_number":320,"context_line":"        schemas \u003d dict()"},{"line_number":321,"context_line":"        components \u003d dict()"},{"line_number":322,"context_line":"        self._models_obj[\u0027openapi\u0027] \u003d self._openapi_version"},{"line_number":323,"context_line":"        self._models_obj[\u0027info\u0027] \u003d info"},{"line_number":324,"context_line":"        info[\u0027title\u0027] \u003d \u0027DragonFlow Schema\u0027"},{"line_number":325,"context_line":"        info[\u0027description\u0027] \u003d \u0027jsonschma representation of the \u0027 \\"},{"line_number":326,"context_line":"                              \u0027DragonFlow model\u0027"},{"line_number":327,"context_line":"        info[\u0027license\u0027] \u003d license"},{"line_number":328,"context_line":"        license[\u0027name\u0027] \u003d \u0027Apache 2.0\u0027"},{"line_number":329,"context_line":"        license[\u0027url\u0027] \u003d \u0027http://www.apache.org/licenses/LICENSE-2.0.html\u0027"},{"line_number":330,"context_line":"        info[\u0027version\u0027] \u003d MODEL_SCHEMA_VERSION"},{"line_number":331,"context_line":"        self._models_obj[\u0027paths\u0027] \u003d paths"},{"line_number":332,"context_line":"        self._models_obj[\u0027components\u0027] \u003d components"}],"source_content_type":"text/x-python","patch_set":21,"id":"df87a7cf_7f2166b4","line":329,"range":{"start_line":312,"start_character":27,"end_line":329,"end_character":74},"in_reply_to":"df87a7cf_92122658","updated":"2017-12-04 12:00:50.000000000","message":"Done","commit_id":"55f72cc4125946b8486d433bd4dcdeaf390a5791"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"9590196ad7a1a13c5c994d1969f437abc7e74956","unresolved":false,"context_lines":[{"line_number":544,"context_line":"                       action\u003d\u0027store_true\u0027)"},{"line_number":545,"context_line":"    group.add_argument(\u0027--uml\u0027, help\u003d\u0027PlantUML format output\u0027,"},{"line_number":546,"context_line":"                       action\u003d\u0027store_true\u0027)"},{"line_number":547,"context_line":"    group.add_argument(\u0027--json\u0027, help\u003d\u0027OpenApiSchema JSON format output\u0027,"},{"line_number":548,"context_line":"                       action\u003d\u0027store_true\u0027)"},{"line_number":549,"context_line":"    parser.add_argument(\u0027-o\u0027, \u0027--outfile\u0027,"},{"line_number":550,"context_line":"                        help\u003d\u0027Output to file (instead of stdout)\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"df87a7cf_13602901","line":547,"range":{"start_line":547,"start_character":26,"end_line":547,"end_character":30},"updated":"2017-12-05 19:40:14.000000000","message":"nit: I think this should be --jsonschema, don\u0027t mind if fixed later","commit_id":"e8a1ece4f4021cda8b5e9ec4fd181a169ffd7a97"}],"dragonflow/db/models/host_route.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"79b522cd42a6f95e5200927f33db2d46d766ae42","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import dragonflow.db.model_framework as mf"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"@mf.construct_nb_db_model"},{"line_number":18,"context_line":"class HostRoute(mf.ModelBase):"},{"line_number":19,"context_line":"    id \u003d None"},{"line_number":20,"context_line":"    destination \u003d df_fields.IpNetworkField(required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff82abbf_e181644c","line":17,"updated":"2017-12-01 08:50:58.000000000","message":"This was something we tried at first, and moved away to the existing solution. It was abandoned because there are other assumptions beyond that of \u0027id\u0027, that we didn\u0027t want to accommodate in these objects.","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"},{"author":{"_account_id":17880,"name":"Shachar Snapiri","email":"shachar.snapiri@toganetworks.com","username":"snapiri"},"change_message_id":"c908af009c0148c64706c7c096f8a5753bde55b2","unresolved":false,"context_lines":[{"line_number":14,"context_line":"import dragonflow.db.model_framework as mf"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"@mf.construct_nb_db_model"},{"line_number":18,"context_line":"class HostRoute(mf.ModelBase):"},{"line_number":19,"context_line":"    id \u003d None"},{"line_number":20,"context_line":"    destination \u003d df_fields.IpNetworkField(required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":8,"id":"df87a7cf_7ebc1f69","line":17,"in_reply_to":"ff82abbf_e181644c","updated":"2017-12-02 16:31:47.000000000","message":"Fixed and reverted","commit_id":"53c00cd3e59335186840c49f450671d733d025ec"}]}
