)]}'
{"neutron/cmd/upgrade_checks/checks.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3b625f7b6beb861a3c9ba7e96b35869864295666","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        networks_with_empty_mtu_attr \u003d []"},{"line_number":144,"context_line":"        for network in get_networks():"},{"line_number":145,"context_line":"            mtu \u003d network.get(\u0027mtu\u0027)"},{"line_number":146,"context_line":"            if not mtu:"},{"line_number":147,"context_line":"                networks_with_empty_mtu_attr.append(network.get(\"id\"))"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_ffb9f114","line":145,"range":{"start_line":145,"start_character":26,"end_line":145,"end_character":36},"updated":"2019-10-18 11:39:11.000000000","message":"nit: get(\u0027mtu\u0027, None)","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a184913da1596e7376aa99cb5cd5843edc52f364","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"        networks_with_empty_mtu_attr \u003d []"},{"line_number":144,"context_line":"        for network in get_networks():"},{"line_number":145,"context_line":"            mtu \u003d network.get(\u0027mtu\u0027)"},{"line_number":146,"context_line":"            if not mtu:"},{"line_number":147,"context_line":"                networks_with_empty_mtu_attr.append(network.get(\"id\"))"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_5fb5a57d","line":145,"range":{"start_line":145,"start_character":26,"end_line":145,"end_character":36},"in_reply_to":"3fa7e38b_ffb9f114","updated":"2019-10-18 12:26:51.000000000","message":"Done","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3b625f7b6beb861a3c9ba7e96b35869864295666","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            networks_list \u003d \", \".join(networks_with_empty_mtu_attr)"},{"line_number":151,"context_line":"            return upgradecheck.Result("},{"line_number":152,"context_line":"                upgradecheck.Code.WARNING,"},{"line_number":153,"context_line":"                _(\"The \u0027mtu\u0027 attributes of networks %s are not set \""},{"line_number":154,"context_line":"                  \"This attribute can\u0027t be nullable now.\") % networks_list)"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            return upgradecheck.Result("}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_7f43c114","line":153,"range":{"start_line":153,"start_character":29,"end_line":153,"end_character":39},"updated":"2019-10-18 11:39:11.000000000","message":"nit: attribute","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a184913da1596e7376aa99cb5cd5843edc52f364","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            networks_list \u003d \", \".join(networks_with_empty_mtu_attr)"},{"line_number":151,"context_line":"            return upgradecheck.Result("},{"line_number":152,"context_line":"                upgradecheck.Code.WARNING,"},{"line_number":153,"context_line":"                _(\"The \u0027mtu\u0027 attributes of networks %s are not set \""},{"line_number":154,"context_line":"                  \"This attribute can\u0027t be nullable now.\") % networks_list)"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            return upgradecheck.Result("}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_7fbae16e","line":153,"range":{"start_line":153,"start_character":29,"end_line":153,"end_character":39},"in_reply_to":"3fa7e38b_7f43c114","updated":"2019-10-18 12:26:51.000000000","message":"Done","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3b625f7b6beb861a3c9ba7e96b35869864295666","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            return upgradecheck.Result("},{"line_number":152,"context_line":"                upgradecheck.Code.WARNING,"},{"line_number":153,"context_line":"                _(\"The \u0027mtu\u0027 attributes of networks %s are not set \""},{"line_number":154,"context_line":"                  \"This attribute can\u0027t be nullable now.\") % networks_list)"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            return upgradecheck.Result("},{"line_number":157,"context_line":"                upgradecheck.Code.SUCCESS,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_df5195db","line":154,"range":{"start_line":154,"start_character":19,"end_line":154,"end_character":56},"updated":"2019-10-18 11:39:11.000000000","message":"nit: This attribute can\u0027t be null now.","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a184913da1596e7376aa99cb5cd5843edc52f364","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            return upgradecheck.Result("},{"line_number":152,"context_line":"                upgradecheck.Code.WARNING,"},{"line_number":153,"context_line":"                _(\"The \u0027mtu\u0027 attributes of networks %s are not set \""},{"line_number":154,"context_line":"                  \"This attribute can\u0027t be nullable now.\") % networks_list)"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            return upgradecheck.Result("},{"line_number":157,"context_line":"                upgradecheck.Code.SUCCESS,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_1faf2d2c","line":154,"range":{"start_line":154,"start_character":19,"end_line":154,"end_character":56},"in_reply_to":"3fa7e38b_df5195db","updated":"2019-10-18 12:26:51.000000000","message":"Done","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3b625f7b6beb861a3c9ba7e96b35869864295666","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            return upgradecheck.Result("},{"line_number":157,"context_line":"                upgradecheck.Code.SUCCESS,"},{"line_number":158,"context_line":"                _(\"The \u0027mtu\u0027 attributes of all networks are set.\"))"}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_5f57e5cb","line":158,"range":{"start_line":158,"start_character":29,"end_line":158,"end_character":39},"updated":"2019-10-18 11:39:11.000000000","message":"nit: attribute","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a184913da1596e7376aa99cb5cd5843edc52f364","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            return upgradecheck.Result("},{"line_number":157,"context_line":"                upgradecheck.Code.SUCCESS,"},{"line_number":158,"context_line":"                _(\"The \u0027mtu\u0027 attributes of all networks are set.\"))"}],"source_content_type":"text/x-python","patch_set":18,"id":"3fa7e38b_dfa8b521","line":158,"range":{"start_line":158,"start_character":29,"end_line":158,"end_character":39},"in_reply_to":"3fa7e38b_5f57e5cb","updated":"2019-10-18 12:26:51.000000000","message":"Done","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"}],"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":18031,"name":"Thomas Bachman","email":"tbachman@yahoo.com","username":"bachmantech"},"change_message_id":"d65fae06276f2446dfb085e2226c5627202a70e4","unresolved":false,"context_lines":[{"line_number":404,"context_line":"            args \u003d {\u0027tenant_id\u0027: n[\u0027tenant_id\u0027],"},{"line_number":405,"context_line":"                    \u0027id\u0027: n.get(\u0027id\u0027) or uuidutils.generate_uuid(),"},{"line_number":406,"context_line":"                    \u0027name\u0027: n[\u0027name\u0027],"},{"line_number":407,"context_line":"                    \u0027mtu\u0027: n.get(\u0027mtu\u0027, constants.DEFAULT_NETWORK_MTU),"},{"line_number":408,"context_line":"                    \u0027admin_state_up\u0027: n[\u0027admin_state_up\u0027],"},{"line_number":409,"context_line":"                    \u0027status\u0027: n.get(\u0027status\u0027, constants.NET_STATUS_ACTIVE),"},{"line_number":410,"context_line":"                    \u0027description\u0027: n.get(\u0027description\u0027)}"}],"source_content_type":"text/x-python","patch_set":24,"id":"9f560f44_95fd0e0a","line":407,"range":{"start_line":407,"start_character":40,"end_line":407,"end_character":69},"updated":"2020-09-23 14:33:05.000000000","message":"I think this should probably be 0, which would be consistent with what happens if the request comes from REST. The auto-allocated-topology uses the plugin to create a network, and if the configuration files have been used to reduce the maximum MTU, I think you end up in a code path that hits an exception: https://opendev.org/openstack/neutron/src/branch/master/neutron/plugins/ml2/plugin.py#L992-L999","commit_id":"68625686a40b3eb75502c8116f23d2297e288ca1"}],"neutron/db/migration/alembic_migrations/versions/train/expand/86274d77933e_change_mtu_to_not_null.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"335814d3d32640586fc5f8a03f961fa7c62881a8","unresolved":false,"context_lines":[{"line_number":31,"context_line":"depends_on \u003d (\u00277d32f979895f\u0027,)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEFAULT_NETWORK_MTU \u003d 1500"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"networks \u003d sa.Table("}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_efd1adf9","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":26},"updated":"2019-09-02 17:11:58.000000000","message":"this constant is in neutron-lib.constants","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"2649690d6913362d52e15c1c10d68123a30f052d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"depends_on \u003d (\u00277d32f979895f\u0027,)"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEFAULT_NETWORK_MTU \u003d 1500"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"networks \u003d sa.Table("}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_f750a360","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":26},"in_reply_to":"7faddb67_efd1adf9","updated":"2019-09-03 02:00:48.000000000","message":"Done","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"33379a6c9e5e9d00301d05160644a32397ad7a57","unresolved":false,"context_lines":[{"line_number":29,"context_line":"# revision identifiers, used by Alembic."},{"line_number":30,"context_line":"revision \u003d \u002786274d77933e\u0027"},{"line_number":31,"context_line":"down_revision \u003d \u0027c613d0b82681\u0027"},{"line_number":32,"context_line":"depends_on \u003d (\u00277d32f979895f\u0027,)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"networks \u003d sa.Table("}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_964c6a77","line":32,"updated":"2019-09-17 09:17:49.000000000","message":"nit: although this is correct, because this patch is from other release and is executed first, this is not needed.","commit_id":"ca5f94d786c79743196097ee80befacdbe8753bd"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"5f11f9ac7bf32c0443091fb9ccd4bcd957ae79cf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"# revision identifiers, used by Alembic."},{"line_number":30,"context_line":"revision \u003d \u002786274d77933e\u0027"},{"line_number":31,"context_line":"down_revision \u003d \u0027c613d0b82681\u0027"},{"line_number":32,"context_line":"depends_on \u003d (\u00277d32f979895f\u0027,)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"networks \u003d sa.Table("}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_36701673","line":32,"in_reply_to":"3fa7e38b_964c6a77","updated":"2019-09-17 09:31:03.000000000","message":"Done","commit_id":"ca5f94d786c79743196097ee80befacdbe8753bd"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a1b07755291e397b63f7e80226832d5f0d312428","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2019 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_37631edf","line":1,"updated":"2019-09-18 08:48:22.000000000","message":"This patch should IMO wait for Ussuri so this file will needs to be moved to new directory then.","commit_id":"48f51edc9d9c87c91b583303208964059adce104"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a6457a477bd61f4fd9be3b31710dd95d9a9b93ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2019 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_c347be76","line":1,"in_reply_to":"3fa7e38b_37631edf","updated":"2019-09-27 14:09:37.000000000","message":"Done","commit_id":"48f51edc9d9c87c91b583303208964059adce104"}],"neutron/db/migration/alembic_migrations/versions/ussuri/expand/86274d77933e_change_mtu_to_not_null.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"31f72bceb41b9b50529efc70a84d609f436ea362","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    sa.Column(\u0027mtu\u0027, sa.Integer(), nullable\u003dTrue))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def update_records_for_existing():"},{"line_number":41,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind())"},{"line_number":42,"context_line":"    with session.begin(subtransactions\u003dTrue):"},{"line_number":43,"context_line":"        for row in session.query(networks):"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_bdcebab1","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":31},"updated":"2019-10-09 07:23:01.000000000","message":"nitty nit: upgrade_existing_records sounds better as function name IMHO","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"c48e0303f1f5a35690357e0f70f4478739fa2c07","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    sa.Column(\u0027mtu\u0027, sa.Integer(), nullable\u003dTrue))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"def update_records_for_existing():"},{"line_number":41,"context_line":"    session \u003d sa.orm.Session(bind\u003dop.get_bind())"},{"line_number":42,"context_line":"    with session.begin(subtransactions\u003dTrue):"},{"line_number":43,"context_line":"        for row in session.query(networks):"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_bdec7a8f","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":31},"in_reply_to":"3fa7e38b_bdcebab1","updated":"2019-10-09 08:11:37.000000000","message":"Done","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"}],"neutron/db/models_v2.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"335814d3d32640586fc5f8a03f961fa7c62881a8","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                                    lazy\u003d\u0027subquery\u0027,"},{"line_number":269,"context_line":"                                    cascade\u003d\u0027all, delete, delete-orphan\u0027)"},{"line_number":270,"context_line":"    availability_zone_hints \u003d sa.Column(sa.String(255))"},{"line_number":271,"context_line":"    mtu \u003d sa.Column(sa.Integer, nullable\u003dFalse, server_default\u003d\u00271500\u0027)"},{"line_number":272,"context_line":"    dhcp_agents \u003d orm.relationship("},{"line_number":273,"context_line":"        \u0027Agent\u0027, lazy\u003d\u0027subquery\u0027, viewonly\u003dTrue,"},{"line_number":274,"context_line":"        secondary\u003dndab_model.NetworkDhcpAgentBinding.__table__)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_4fe1e1ce","line":271,"range":{"start_line":271,"start_character":63,"end_line":271,"end_character":69},"updated":"2019-09-02 17:11:58.000000000","message":"Please, use the constant DEFAULT_NETWORK_MTU","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"2649690d6913362d52e15c1c10d68123a30f052d","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                                    lazy\u003d\u0027subquery\u0027,"},{"line_number":269,"context_line":"                                    cascade\u003d\u0027all, delete, delete-orphan\u0027)"},{"line_number":270,"context_line":"    availability_zone_hints \u003d sa.Column(sa.String(255))"},{"line_number":271,"context_line":"    mtu \u003d sa.Column(sa.Integer, nullable\u003dFalse, server_default\u003d\u00271500\u0027)"},{"line_number":272,"context_line":"    dhcp_agents \u003d orm.relationship("},{"line_number":273,"context_line":"        \u0027Agent\u0027, lazy\u003d\u0027subquery\u0027, viewonly\u003dTrue,"},{"line_number":274,"context_line":"        secondary\u003dndab_model.NetworkDhcpAgentBinding.__table__)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_b746aba6","line":271,"range":{"start_line":271,"start_character":63,"end_line":271,"end_character":69},"in_reply_to":"7faddb67_4fe1e1ce","updated":"2019-09-03 02:00:48.000000000","message":"Done","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"33379a6c9e5e9d00301d05160644a32397ad7a57","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                                    cascade\u003d\u0027all, delete, delete-orphan\u0027)"},{"line_number":270,"context_line":"    availability_zone_hints \u003d sa.Column(sa.String(255))"},{"line_number":271,"context_line":"    mtu \u003d sa.Column(sa.Integer, nullable\u003dFalse,"},{"line_number":272,"context_line":"                    server_default\u003dstr(constants.DEFAULT_NETWORK_MTU))"},{"line_number":273,"context_line":"    dhcp_agents \u003d orm.relationship("},{"line_number":274,"context_line":"        \u0027Agent\u0027, lazy\u003d\u0027subquery\u0027, viewonly\u003dTrue,"},{"line_number":275,"context_line":"        secondary\u003dndab_model.NetworkDhcpAgentBinding.__table__)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_76a9aedd","line":272,"updated":"2019-09-17 09:17:49.000000000","message":"nit: although this value will be enforced by the DB, this parameter should have a default value.\n\ndefault\u003dconstants.DEFAULT_NETWORK_MTU","commit_id":"ca5f94d786c79743196097ee80befacdbe8753bd"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"5f11f9ac7bf32c0443091fb9ccd4bcd957ae79cf","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                                    cascade\u003d\u0027all, delete, delete-orphan\u0027)"},{"line_number":270,"context_line":"    availability_zone_hints \u003d sa.Column(sa.String(255))"},{"line_number":271,"context_line":"    mtu \u003d sa.Column(sa.Integer, nullable\u003dFalse,"},{"line_number":272,"context_line":"                    server_default\u003dstr(constants.DEFAULT_NETWORK_MTU))"},{"line_number":273,"context_line":"    dhcp_agents \u003d orm.relationship("},{"line_number":274,"context_line":"        \u0027Agent\u0027, lazy\u003d\u0027subquery\u0027, viewonly\u003dTrue,"},{"line_number":275,"context_line":"        secondary\u003dndab_model.NetworkDhcpAgentBinding.__table__)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_d66c229e","line":272,"in_reply_to":"3fa7e38b_76a9aedd","updated":"2019-09-17 09:31:03.000000000","message":"Done","commit_id":"ca5f94d786c79743196097ee80befacdbe8753bd"}],"neutron/objects/network.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"335814d3d32640586fc5f8a03f961fa7c62881a8","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            nullable\u003dTrue),"},{"line_number":231,"context_line":"        \u0027shared\u0027: obj_fields.BooleanField(default\u003dFalse),"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        \u0027mtu\u0027: obj_fields.IntegerField(nullable\u003dFalse),"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # TODO(ihrachys): consider exposing availability zones"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_af097595","line":233,"range":{"start_line":233,"start_character":39,"end_line":233,"end_character":53},"updated":"2019-09-02 17:11:58.000000000","message":"nit: not needed, the default value is False\n\nhttps://github.com/openstack/oslo.versionedobjects/blob/master/oslo_versionedobjects/fields.py#L147","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"2649690d6913362d52e15c1c10d68123a30f052d","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            nullable\u003dTrue),"},{"line_number":231,"context_line":"        \u0027shared\u0027: obj_fields.BooleanField(default\u003dFalse),"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        \u0027mtu\u0027: obj_fields.IntegerField(nullable\u003dFalse),"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # TODO(ihrachys): consider exposing availability zones"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_77ca731a","line":233,"range":{"start_line":233,"start_character":39,"end_line":233,"end_character":53},"in_reply_to":"7faddb67_af097595","updated":"2019-09-03 02:00:48.000000000","message":"Done","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"ca1cee6def82c5a6dfbdbb15d708693ad7652c63","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            nullable\u003dTrue),"},{"line_number":231,"context_line":"        \u0027shared\u0027: obj_fields.BooleanField(default\u003dFalse),"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        \u0027mtu\u0027: obj_fields.IntegerField(),"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # TODO(ihrachys): consider exposing availability zones"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_01d91d82","line":233,"range":{"start_line":233,"start_character":9,"end_line":233,"end_character":41},"updated":"2019-09-17 00:07:15.000000000","message":"Wouldn\u0027t it be reasonable to add default\u003dconstants.DEFAULT_NETWORK_MTU here to make compatibility with existing code easier?","commit_id":"31cc8d139f2cdcc9b9f378ad6f5d85e1a082204e"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"cf90ee81a957000a952d54a7aa6707c32a06c839","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            nullable\u003dTrue),"},{"line_number":231,"context_line":"        \u0027shared\u0027: obj_fields.BooleanField(default\u003dFalse),"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        \u0027mtu\u0027: obj_fields.IntegerField(),"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        # TODO(ihrachys): consider exposing availability zones"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_84e19bd3","line":233,"range":{"start_line":233,"start_character":9,"end_line":233,"end_character":41},"in_reply_to":"3fa7e38b_01d91d82","updated":"2019-09-17 02:55:11.000000000","message":"Done","commit_id":"31cc8d139f2cdcc9b9f378ad6f5d85e1a082204e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a1b07755291e397b63f7e80226832d5f0d312428","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_177b828c","line":353,"updated":"2019-09-18 08:48:22.000000000","message":"I think that simple UT for this could be also added","commit_id":"48f51edc9d9c87c91b583303208964059adce104"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a6457a477bd61f4fd9be3b31710dd95d9a9b93ee","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_c3157e4a","line":353,"in_reply_to":"3fa7e38b_177b828c","updated":"2019-09-27 14:09:37.000000000","message":"Actually this can\u0027t be tested, as Rodolfo said in patch[4].\nhttps://review.opendev.org/#/c/679399/4/neutron/tests/unit/objects/test_network.py","commit_id":"48f51edc9d9c87c91b583303208964059adce104"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ade71847f50d8004a410702dec0572ad18a1d45e","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_e4a97add","line":353,"in_reply_to":"3fa7e38b_c3157e4a","updated":"2019-10-01 09:42:10.000000000","message":"The point is we can\u0027t create a v1.0 db object with null MTU value. And any v1.1 object will force the MTU to something not null.","commit_id":"48f51edc9d9c87c91b583303208964059adce104"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"5476c6f58f2c4a6b4211fda39b514db1bc2b4751","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_a1a92925","line":353,"range":{"start_line":347,"start_character":4,"end_line":353,"end_character":61},"updated":"2019-10-01 19:10:05.000000000","message":"Will this affect upgrades in any way? Say one of either the agent or server side is updated, would this affect RPC\u0027s and make N-1 operation during the upgrade impossible?","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5dd013f496279b6ec4e53b4bd20beb335c6fca67","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_f91cb1c2","line":353,"range":{"start_line":347,"start_character":4,"end_line":353,"end_character":61},"in_reply_to":"3fa7e38b_a1a92925","updated":"2019-10-02 09:13:35.000000000","message":"The DB migration script is adding the default MTU value to each port [1]. This should be executed first.\n[1] https://review.opendev.org/#/c/679399/14/neutron/db/migration/alembic_migrations/versions/ussuri/expand/86274d77933e_change_mtu_to_not_null.py","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"f00694863321d93a3b9a6430dbcb958f0136a402","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_d961b5d5","line":353,"range":{"start_line":347,"start_character":4,"end_line":353,"end_character":61},"in_reply_to":"3fa7e38b_a1a92925","updated":"2019-10-02 08:45:00.000000000","message":"Why this has an impact on the upgrade, all version changes need to do this, this is just a compatibility check between different versions.","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"c48e0303f1f5a35690357e0f70f4478739fa2c07","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_1dfd8e39","line":353,"range":{"start_line":347,"start_character":4,"end_line":353,"end_character":61},"in_reply_to":"3fa7e38b_dd04d6c8","updated":"2019-10-09 08:11:37.000000000","message":"I think all db upgrades should be done at the controller node first.","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"31f72bceb41b9b50529efc70a84d609f436ea362","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_dd04d6c8","line":353,"range":{"start_line":347,"start_character":4,"end_line":353,"end_character":61},"in_reply_to":"3fa7e38b_f91cb1c2","updated":"2019-10-09 07:23:01.000000000","message":"IMO this shouldn\u0027t affect upgrades becase:\nAFAIK we supports upgrade when first controllers are upgraded and than computes, right? If so, db migration script should be run first so MTU should be set for all networks already in DB, but event if not, agents are still running older code so will request version \u003c 1.1 of network object and in such version MTU can still be nullable, right?","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5814d619946d0771b5bf158b9d7760d2d9c38d60","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_dfe251d5","line":347,"range":{"start_line":347,"start_character":8,"end_line":347,"end_character":27},"updated":"2019-10-12 03:51:11.000000000","message":"We need unit test to cover this. Please add a test case like this: https://opendev.org/openstack/neutron/src/branch/master/neutron/tests/unit/objects/test_trunk.py#L175","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bec28dafccbe33b40e727f752b849f8f39034601","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_c8e816e0","line":347,"range":{"start_line":347,"start_character":8,"end_line":347,"end_character":27},"in_reply_to":"3fa7e38b_145d2b14","updated":"2019-10-17 10:06:15.000000000","message":"yes, that\u0027s right. Please check https://review.opendev.org/#/c/679399/4/neutron/tests/unit/objects/test_network.py for details","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"1e5ced1e643934d04a2d8858e22110f644e67e16","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        # TODO(ihrachys): provide actual implementation"},{"line_number":345,"context_line":"        return set()"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_145d2b14","line":347,"range":{"start_line":347,"start_character":8,"end_line":347,"end_character":27},"in_reply_to":"3fa7e38b_dfe251d5","updated":"2019-10-12 09:31:24.000000000","message":"This can\u0027t be tested. This problem has already been discussed. Please refer to the comments above for details.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5814d619946d0771b5bf158b9d7760d2d9c38d60","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_9fb379e9","line":349,"range":{"start_line":349,"start_character":12,"end_line":349,"end_character":36},"updated":"2019-10-12 03:51:11.000000000","message":"I guess you want to make it compatible with older version (_target_version \u003c (1,1)) instead? Or I misunderstand something.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"1e5ced1e643934d04a2d8858e22110f644e67e16","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_b4d2175b","line":349,"range":{"start_line":349,"start_character":12,"end_line":349,"end_character":36},"in_reply_to":"3fa7e38b_9fb379e9","updated":"2019-10-12 09:31:24.000000000","message":"This is no problem, old version is allowed to be empty.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bec28dafccbe33b40e727f752b849f8f39034601","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"    def obj_make_compatible(self, primitive, target_version):"},{"line_number":348,"context_line":"        _target_version \u003d versionutils.convert_version_to_tuple(target_version)"},{"line_number":349,"context_line":"        if _target_version \u003e\u003d (1, 1):"},{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_c8fa56b8","line":349,"range":{"start_line":349,"start_character":12,"end_line":349,"end_character":36},"in_reply_to":"3fa7e38b_b4d2175b","updated":"2019-10-17 10:06:15.000000000","message":"I agree with zhanghao here. Older version just can have \"mtu\" empty and that is no problem at all.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5814d619946d0771b5bf158b9d7760d2d9c38d60","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_dfbd71b7","line":353,"range":{"start_line":353,"start_character":51,"end_line":353,"end_character":60},"updated":"2019-10-12 03:51:11.000000000","message":"nit: better to avoid hard-code object name. You can use self.__class__.__name__ instead.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"483dee5e3ffd226a1207d91fc560f44e68fb628a","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_90a311b2","line":353,"range":{"start_line":353,"start_character":51,"end_line":353,"end_character":60},"in_reply_to":"3fa7e38b_28da0a4a","updated":"2019-10-18 08:17:08.000000000","message":"oh,QosPolicy has used self.__class__.__name__ instead of ovoname , so I change it directly:)","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bec28dafccbe33b40e727f752b849f8f39034601","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_28da0a4a","line":353,"range":{"start_line":353,"start_character":51,"end_line":353,"end_character":60},"in_reply_to":"3fa7e38b_b43777b0","updated":"2019-10-17 10:06:15.000000000","message":"I don\u0027t even think we have defined any constanst with OVO object names. We could use Network.__name__ here but IMO this can be changed accross all repo in one follow-up patch if needed.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"1e5ced1e643934d04a2d8858e22110f644e67e16","unresolved":false,"context_lines":[{"line_number":350,"context_line":"            if primitive[\u0027mtu\u0027] is None:"},{"line_number":351,"context_line":"                # mtu will not be nullable after"},{"line_number":352,"context_line":"                raise exception.IncompatibleObjectVersion("},{"line_number":353,"context_line":"                    objver\u003dtarget_version, objname\u003d\u0027Network\u0027)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"@base.NeutronObjectRegistry.register"}],"source_content_type":"text/x-python","patch_set":15,"id":"3fa7e38b_b43777b0","line":353,"range":{"start_line":353,"start_character":51,"end_line":353,"end_character":60},"in_reply_to":"3fa7e38b_dfbd71b7","updated":"2019-10-12 09:31:24.000000000","message":"Currently，it seems that the class name is directly used by OVO.For example, like QosPolicy.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"}],"neutron/tests/unit/objects/test_network.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d059508404f5cf9a8654c6f4cd23065a35ea951f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.objs[0].create()"},{"line_number":266,"context_line":"        return self.objs[0]"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def test_object_version_degradation_1_1_to_1_0_null_mtu(self):"},{"line_number":269,"context_line":"        network_obj \u003d self._create_test_network()"},{"line_number":270,"context_line":"        primitive \u003d network_obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":271,"context_line":"        primitive[\u0027versioned_object.data\u0027][\u0027mtu\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_4fb24198","line":268,"updated":"2019-09-02 17:35:43.000000000","message":"Actually this can\u0027t be tested:\n- A lower version object (1.0) can be upgraded to 1.1\n- There is no upper version objects (1.2) to check downgrade and those new versions should support this change too\n- It\u0027s not possible to assign network_obj.mtu \u003d None, to check the method obj_to_primitive.","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"2649690d6913362d52e15c1c10d68123a30f052d","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.objs[0].create()"},{"line_number":266,"context_line":"        return self.objs[0]"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def test_object_version_degradation_1_1_to_1_0_null_mtu(self):"},{"line_number":269,"context_line":"        network_obj \u003d self._create_test_network()"},{"line_number":270,"context_line":"        primitive \u003d network_obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":271,"context_line":"        primitive[\u0027versioned_object.data\u0027][\u0027mtu\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_f7fe6336","line":268,"in_reply_to":"7faddb67_4fb24198","updated":"2019-09-03 02:00:48.000000000","message":"you are right, I want to test that mtu can\u0027t be none, it seems that this is unnecessary, I will delete it.","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"335814d3d32640586fc5f8a03f961fa7c62881a8","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        network_obj \u003d self._create_test_network()"},{"line_number":270,"context_line":"        primitive \u003d network_obj.obj_to_primitive(\u00271.0\u0027)"},{"line_number":271,"context_line":"        primitive[\u0027versioned_object.data\u0027][\u0027mtu\u0027] \u003d None"},{"line_number":272,"context_line":"        self.assertRaises(ValueError, network_obj.obj_from_primitive,"},{"line_number":273,"context_line":"                          primitive\u003dprimitive)"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_6f0dbd8d","line":272,"range":{"start_line":272,"start_character":26,"end_line":272,"end_character":36},"updated":"2019-09-02 17:11:58.000000000","message":"This should be IncompatibleObjectVersion","commit_id":"4b98d8f4c3b1dce2a134585512a3d537c2832621"}],"releasenotes/notes/make-mtu-not-nullable-2b2765bc85379545.yaml":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ade71847f50d8004a410702dec0572ad18a1d45e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network \u0027mtu\u0027 attribute is set to be non-nullable, and so some detections"},{"line_number":5,"context_line":"    can be removed, the writer context can also be modified into a reader context."},{"line_number":6,"context_line":"    If the \u0027mtu\u0027 is empty before the pike version, it is set to the default value"},{"line_number":7,"context_line":"    of 1500."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_e43bbac5","line":4,"range":{"start_line":4,"start_character":16,"end_line":4,"end_character":21},"updated":"2019-10-01 09:42:10.000000000","message":"nit: ``mtu``","commit_id":"5cb088315328e3f14110aa73f3d9993129bdc36b"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"b721b22727c1b44c44c866bac194c62d747c456f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network \u0027mtu\u0027 attribute is set to be non-nullable, and so some detections"},{"line_number":5,"context_line":"    can be removed, the writer context can also be modified into a reader context."},{"line_number":6,"context_line":"    If the \u0027mtu\u0027 is empty before the pike version, it is set to the default value"},{"line_number":7,"context_line":"    of 1500."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_cd2261bb","line":4,"range":{"start_line":4,"start_character":16,"end_line":4,"end_character":21},"in_reply_to":"3fa7e38b_e43bbac5","updated":"2019-10-01 13:09:29.000000000","message":"Done","commit_id":"5cb088315328e3f14110aa73f3d9993129bdc36b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ade71847f50d8004a410702dec0572ad18a1d45e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network \u0027mtu\u0027 attribute is set to be non-nullable, and so some detections"},{"line_number":5,"context_line":"    can be removed, the writer context can also be modified into a reader context."},{"line_number":6,"context_line":"    If the \u0027mtu\u0027 is empty before the pike version, it is set to the default value"},{"line_number":7,"context_line":"    of 1500."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_8448c65c","line":6,"range":{"start_line":6,"start_character":11,"end_line":6,"end_character":16},"updated":"2019-10-01 09:42:10.000000000","message":"ditto","commit_id":"5cb088315328e3f14110aa73f3d9993129bdc36b"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"b721b22727c1b44c44c866bac194c62d747c456f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network \u0027mtu\u0027 attribute is set to be non-nullable, and so some detections"},{"line_number":5,"context_line":"    can be removed, the writer context can also be modified into a reader context."},{"line_number":6,"context_line":"    If the \u0027mtu\u0027 is empty before the pike version, it is set to the default value"},{"line_number":7,"context_line":"    of 1500."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"3fa7e38b_ed1f1d6e","line":6,"range":{"start_line":6,"start_character":11,"end_line":6,"end_character":16},"in_reply_to":"3fa7e38b_8448c65c","updated":"2019-10-01 13:09:29.000000000","message":"Done","commit_id":"5cb088315328e3f14110aa73f3d9993129bdc36b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"31f72bceb41b9b50529efc70a84d609f436ea362","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable, and so some detections"},{"line_number":5,"context_line":"    can be removed, the writer context can also be modified into a reader context."},{"line_number":6,"context_line":"    If the ``mtu`` is empty before the pike version, it is set to the default value"},{"line_number":7,"context_line":"    of 1500."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"3fa7e38b_1d1b4e1b","line":5,"range":{"start_line":4,"start_character":61,"end_line":5,"end_character":82},"updated":"2019-10-09 07:23:01.000000000","message":"IMO release notes are more for users and operators which don\u0027t need/want to ready about such internal implementation details as changed writer context to reader context and so on. So You can remove this part of release note probably.","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"c48e0303f1f5a35690357e0f70f4478739fa2c07","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable, and so some detections"},{"line_number":5,"context_line":"    can be removed, the writer context can also be modified into a reader context."},{"line_number":6,"context_line":"    If the ``mtu`` is empty before the pike version, it is set to the default value"},{"line_number":7,"context_line":"    of 1500."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"3fa7e38b_5d030643","line":5,"range":{"start_line":4,"start_character":61,"end_line":5,"end_character":82},"in_reply_to":"3fa7e38b_1d1b4e1b","updated":"2019-10-09 08:11:37.000000000","message":"Done","commit_id":"1da38cd20cdcab2db91678f0b6edbfaebfa028e2"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5814d619946d0771b5bf158b9d7760d2d9c38d60","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is empty"},{"line_number":5,"context_line":"    before the pike version, it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_1fbf89aa","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":7},"updated":"2019-10-12 03:51:11.000000000","message":"Better to have a upgrade check for this. See: https://github.com/openstack/neutron/blob/master/neutron/cmd/upgrade_checks/checks.py","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"1e5ced1e643934d04a2d8858e22110f644e67e16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is empty"},{"line_number":5,"context_line":"    before the pike version, it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_54f643d9","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":7},"in_reply_to":"3fa7e38b_1fbf89aa","updated":"2019-10-12 09:31:24.000000000","message":"Is this necessary? I see this is an upgrade in the configuration.In my environment, neutron-status does not seem to work，need extra installation?","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bec28dafccbe33b40e727f752b849f8f39034601","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is empty"},{"line_number":5,"context_line":"    before the pike version, it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_c8c1f64f","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":7},"in_reply_to":"3fa7e38b_54f643d9","updated":"2019-10-17 10:06:15.000000000","message":"I agree with Hongbin here. You can add upgrade check script which will WARN operator that there are some networks with not set MTU.\n\nUpgrade check script can be run like:\n\n    neutron-status --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade check\n\nthat should works.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"bba1bc00ae83e895ec070a65b09d729c19e9acd3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is empty"},{"line_number":5,"context_line":"    before the pike version, it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_4703b077","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":7},"in_reply_to":"3fa7e38b_c8c1f64f","updated":"2019-10-17 14:22:04.000000000","message":"Done","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"3c9a4003cc0a64d388637ac6b8fe4708944193ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is empty"},{"line_number":5,"context_line":"    before the pike version, it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_ba36b950","line":5,"range":{"start_line":4,"start_character":61,"end_line":5,"end_character":27},"updated":"2019-10-09 13:35:06.000000000","message":"Wording nit with this shortened release note, I\u0027d say something like:\n\"If it is empty (create before Pike version),\"","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"1e5ced1e643934d04a2d8858e22110f644e67e16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is empty"},{"line_number":5,"context_line":"    before the pike version, it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":15,"id":"3fa7e38b_541f2307","line":5,"range":{"start_line":4,"start_character":61,"end_line":5,"end_character":27},"in_reply_to":"3fa7e38b_ba36b950","updated":"2019-10-12 09:31:24.000000000","message":"It seems to be better, if you insist on this change, I will do this.","commit_id":"822ff9eaf1f84e3ca705e6623ba81f6f59c736e5"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3b625f7b6beb861a3c9ba7e96b35869864295666","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is "},{"line_number":5,"context_line":"    empty(create before Pike version), it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3fa7e38b_5f0cc5eb","line":4,"range":{"start_line":4,"start_character":76,"end_line":4,"end_character":79},"updated":"2019-10-18 11:39:11.000000000","message":"extra white space","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"},{"author":{"_account_id":29157,"name":"zhanghao","email":"hao.zhang.am.i@gmail.com","username":"zhanghao2"},"change_message_id":"a184913da1596e7376aa99cb5cd5843edc52f364","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The network ``mtu`` attribute is set to be non-nullable. If the ``mtu`` is "},{"line_number":5,"context_line":"    empty(create before Pike version), it is set to the default value of 1500."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3fa7e38b_bf65b91f","line":4,"range":{"start_line":4,"start_character":76,"end_line":4,"end_character":79},"in_reply_to":"3fa7e38b_5f0cc5eb","updated":"2019-10-18 12:26:51.000000000","message":"Done","commit_id":"ad9f70d41af749375990681904ee6d089af511a4"}]}
