)]}'
{"nailgun/nailgun/db/sqlalchemy/models/network_config.py":[{"author":{"_account_id":10959,"name":"Alexander Kislitsky","email":"akislitsky@mirantis.com","username":"akislitsky"},"change_message_id":"4a309d1acef16e7d2314e610cdcea93d146c5205","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from nailgun import consts"},{"line_number":26,"context_line":"from nailgun.db.sqlalchemy.models.base import Base"},{"line_number":27,"context_line":"from nailgun.db.sqlalchemy.models.fields import JSON"},{"line_number":28,"context_line":"from nailgun.db.sqlalchemy.models.mutable import MutableList"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_6d3eab8d","line":27,"updated":"2015-11-27 08:36:57.000000000","message":"Please use native JSON implementation from PostgreSQL:\nfrom sqlalchemy.dialects.postgresql import JSON","commit_id":"6eea0f87f6ec31b035f5191024dd6730af20551d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"873a80286233ecf9fd3c3694e27442e1206ce1f8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    ])"},{"line_number":44,"context_line":"    floating_ranges \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":45,"context_line":"    configuration_template \u003d Column(MutableDict.as_mutable(JSON), default\u003dNone,"},{"line_number":46,"context_line":"                                    server_default\u003dNone, nullable\u003dTrue)"},{"line_number":47,"context_line":"    __mapper_args__ \u003d {"},{"line_number":48,"context_line":"        \u0027polymorphic_on\u0027: discriminator"},{"line_number":49,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_6e691d25","line":46,"updated":"2015-11-25 16:07:13.000000000","message":"I think, \u0027default\u0027 and \u0027server_default\u0027 can be committed because those are set to \u0027None\u0027 if weren\u0027t passed: https://github.com/zzzeek/sqlalchemy/blob/382950b70150434f124b6dc27df2b360e7d0331e/lib/sqlalchemy/sql/schema.py#L1124-L1125","commit_id":"6eea0f87f6ec31b035f5191024dd6730af20551d"},{"author":{"_account_id":18205,"name":"Bulat Gaifullin","email":"gaifullinbf@gmail.com","username":"bgaifullin"},"change_message_id":"6530926790b0a45b9368f6ad171fabb5fbcef655","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    ])"},{"line_number":44,"context_line":"    floating_ranges \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":45,"context_line":"    configuration_template \u003d Column(MutableDict.as_mutable(JSON), default\u003dNone,"},{"line_number":46,"context_line":"                                    server_default\u003dNone, nullable\u003dTrue)"},{"line_number":47,"context_line":"    __mapper_args__ \u003d {"},{"line_number":48,"context_line":"        \u0027polymorphic_on\u0027: discriminator"},{"line_number":49,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a8ffd7b_02838557","line":46,"in_reply_to":"9a8ffd7b_6e691d25","updated":"2015-11-25 16:13:20.000000000","message":"+1","commit_id":"6eea0f87f6ec31b035f5191024dd6730af20551d"},{"author":{"_account_id":10959,"name":"Alexander Kislitsky","email":"akislitsky@mirantis.com","username":"akislitsky"},"change_message_id":"3cf1118f22630c4edc5696c9e04f03ec6c6c6b16","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from nailgun import consts"},{"line_number":26,"context_line":"from nailgun.db.sqlalchemy.models.base import Base"},{"line_number":27,"context_line":"from nailgun.db.sqlalchemy.models.fields import JSON"},{"line_number":28,"context_line":"from nailgun.db.sqlalchemy.models.mutable import MutableList"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_3cebef14","line":27,"updated":"2015-11-27 10:26:30.000000000","message":"Please use native JSON implementation from PostgreSQL: from sqlalchemy.dialects.postgresql import JSON","commit_id":"40c6bf2e81e16991ace13f6e72ac00283199d4b4"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d9b5204de128ecd8f91298c6e128ebacca051db6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        Integer,"},{"line_number":38,"context_line":"        ForeignKey(\u0027clusters.id\u0027, ondelete\u003d\"CASCADE\")"},{"line_number":39,"context_line":"    )"},{"line_number":40,"context_line":"    dns_nameservers \u003d Column(MutableList.as_mutable(JSON), default\u003d["},{"line_number":41,"context_line":"        \"8.8.4.4\","},{"line_number":42,"context_line":"        \"8.8.8.8\""},{"line_number":43,"context_line":"    ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_7e87b261","line":40,"updated":"2015-12-04 09:40:21.000000000","message":"IMHO, for keeping consistency both \u0027default\u0027 and \u0027server_default\u0027 should be be provided.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":19196,"name":"Valentin Kaplov","email":"vkaplov@mirantis.com","username":"vkaplov"},"change_message_id":"db981d34536a28ad3a4dbdc0a7b4853dbb156c1a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        Integer,"},{"line_number":38,"context_line":"        ForeignKey(\u0027clusters.id\u0027, ondelete\u003d\"CASCADE\")"},{"line_number":39,"context_line":"    )"},{"line_number":40,"context_line":"    dns_nameservers \u003d Column(MutableList.as_mutable(JSON), default\u003d["},{"line_number":41,"context_line":"        \"8.8.4.4\","},{"line_number":42,"context_line":"        \"8.8.8.8\""},{"line_number":43,"context_line":"    ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_f6e0c2fc","line":40,"in_reply_to":"7a740942_7e87b261","updated":"2015-12-09 17:33:10.000000000","message":"Because of fix risks It is better to do such changes in different review.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d612897b33f3bf95813ff89774bf2a08ff95fd54","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        Integer,"},{"line_number":38,"context_line":"        ForeignKey(\u0027clusters.id\u0027, ondelete\u003d\"CASCADE\")"},{"line_number":39,"context_line":"    )"},{"line_number":40,"context_line":"    dns_nameservers \u003d Column(MutableList.as_mutable(JSON), default\u003d["},{"line_number":41,"context_line":"        \"8.8.4.4\","},{"line_number":42,"context_line":"        \"8.8.8.8\""},{"line_number":43,"context_line":"    ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_190dc1e7","line":40,"in_reply_to":"7a740942_f6e0c2fc","updated":"2015-12-14 11:26:33.000000000","message":"As it\u0027s been decided, let\u0027s leave defaults as is.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d9b5204de128ecd8f91298c6e128ebacca051db6","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        \"8.8.4.4\","},{"line_number":42,"context_line":"        \"8.8.8.8\""},{"line_number":43,"context_line":"    ])"},{"line_number":44,"context_line":"    floating_ranges \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":45,"context_line":"    configuration_template \u003d Column("},{"line_number":46,"context_line":"        MutableDict.as_mutable(JSON), nullable\u003dTrue)"},{"line_number":47,"context_line":"    __mapper_args__ \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_1e7c6e71","line":44,"updated":"2015-12-04 09:40:21.000000000","message":"Ditto.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d9b5204de128ecd8f91298c6e128ebacca051db6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    ])"},{"line_number":44,"context_line":"    floating_ranges \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":45,"context_line":"    configuration_template \u003d Column("},{"line_number":46,"context_line":"        MutableDict.as_mutable(JSON), nullable\u003dTrue)"},{"line_number":47,"context_line":"    __mapper_args__ \u003d {"},{"line_number":48,"context_line":"        \u0027polymorphic_on\u0027: discriminator"},{"line_number":49,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_9e905e97","line":46,"updated":"2015-12-04 09:40:21.000000000","message":"Ditto.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d9b5204de128ecd8f91298c6e128ebacca051db6","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027networking_configs.id\u0027), primary_key\u003dTrue)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vlan_range \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":61,"context_line":"    gre_id_range \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":62,"context_line":"    base_mac \u003d Column(psql.MACADDR, nullable\u003dFalse)"},{"line_number":63,"context_line":"    internal_cidr \u003d Column(psql.CIDR)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_3ef84ae5","line":60,"updated":"2015-12-04 09:40:21.000000000","message":"Ditto.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d9b5204de128ecd8f91298c6e128ebacca051db6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027networking_configs.id\u0027), primary_key\u003dTrue)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    vlan_range \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":61,"context_line":"    gre_id_range \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":62,"context_line":"    base_mac \u003d Column(psql.MACADDR, nullable\u003dFalse)"},{"line_number":63,"context_line":"    internal_cidr \u003d Column(psql.CIDR)"},{"line_number":64,"context_line":"    internal_gateway \u003d Column(psql.INET)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_dedd8671","line":61,"updated":"2015-12-04 09:40:21.000000000","message":"Ditto.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"},{"author":{"_account_id":11577,"name":"Ivan Kliuk","email":"ivan.kliuk+spam@gmail.com","username":"ivan"},"change_message_id":"d9b5204de128ecd8f91298c6e128ebacca051db6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    internal_cidr \u003d Column(psql.CIDR)"},{"line_number":64,"context_line":"    internal_gateway \u003d Column(psql.INET)"},{"line_number":65,"context_line":"    baremetal_gateway \u003d Column(psql.INET)"},{"line_number":66,"context_line":"    baremetal_range \u003d Column(MutableList.as_mutable(JSON), default\u003d[])"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    # Neutron L3 names for default internal / floating networks"},{"line_number":69,"context_line":"    # which were previously knows as net04 and net04_ext."}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_bee43a3b","line":66,"updated":"2015-12-04 09:40:21.000000000","message":"Ditto.","commit_id":"48abe6daefef15bde460ce34e7eda3d3bd38fa1d"}]}
