)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"715b757b70658cbe439a3d071cd6121c349291fe","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add shim extension admin_state_down_before_update"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Shim extension for neutron patch:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/625134/"},{"line_number":11,"context_line":"Adds releasenote."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie1167a9c7fc5dcb88a6955085937572805e41fd7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5fc1f717_a84eab6b","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":40},"updated":"2019-04-02 22:59:57.000000000","message":"Pointers to gerrit are only valid as long as gerrit exists.\nAdd this line to the commit message instead (kinda like you have for the neutron patch with Closes-Bug):\n\nRelated-Bug: #1811166","commit_id":"d9795da6fcdc5a7b764e9c2ca361fd753dfcee10"}],"api-ref/source/v2/routers.inc":[{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"9df0e7a4268f6898ff6c4bef8c99f00e6f80558f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"The ``router-admin-state-down-before-update`` extension adds the requirement"},{"line_number":59,"context_line":"that the administrative state of a distributed virtual router (DVR) be set to"},{"line_number":60,"context_line":"DOWN (``admin_state_up\u003dFalse``) prior to modifying the ``distributed``"},{"line_number":61,"context_line":"parameter of the router. A ``BadRequest`` exception will be thrown if the"},{"line_number":62,"context_line":"router\u0027s ``distributed`` atttribute is modified without first setting the"},{"line_number":63,"context_line":"router\u0027s ``admin_state_up\u003dFalse``."},{"line_number":64,"context_line":"This extension requires the ``dvr`` extension."}],"source_content_type":"text/x-c++src","patch_set":8,"id":"7faddb67_8003ca0d","line":61,"range":{"start_line":61,"start_character":29,"end_line":61,"end_character":39},"updated":"2019-07-03 22:25:16.000000000","message":"api-ref is mostly user facing, replace BadRequest statement with the fact the HTTP API will reply with 400. (some things in this file talk about response codes too)","commit_id":"76131e76e8831e776799275bab9c93ed2d4175ae"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"95f4451085d9dc53d4a9de111297e10d8dbb9379","unresolved":false,"context_lines":[{"line_number":58,"context_line":"The ``router-admin-state-down-before-update`` extension adds the requirement"},{"line_number":59,"context_line":"that the administrative state of a distributed virtual router (DVR) be set to"},{"line_number":60,"context_line":"DOWN (``admin_state_up\u003dFalse``) prior to modifying the ``distributed``"},{"line_number":61,"context_line":"parameter of the router. A ``BadRequest`` exception will be thrown if the"},{"line_number":62,"context_line":"router\u0027s ``distributed`` atttribute is modified without first setting the"},{"line_number":63,"context_line":"router\u0027s ``admin_state_up\u003dFalse``."},{"line_number":64,"context_line":"This extension requires the ``dvr`` extension."}],"source_content_type":"text/x-c++src","patch_set":8,"id":"7faddb67_40a952dd","line":61,"range":{"start_line":61,"start_character":29,"end_line":61,"end_character":39},"in_reply_to":"7faddb67_8003ca0d","updated":"2019-07-03 22:37:56.000000000","message":"Done","commit_id":"76131e76e8831e776799275bab9c93ed2d4175ae"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"9df0e7a4268f6898ff6c4bef8c99f00e6f80558f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"that the administrative state of a distributed virtual router (DVR) be set to"},{"line_number":60,"context_line":"DOWN (``admin_state_up\u003dFalse``) prior to modifying the ``distributed``"},{"line_number":61,"context_line":"parameter of the router. A ``BadRequest`` exception will be thrown if the"},{"line_number":62,"context_line":"router\u0027s ``distributed`` atttribute is modified without first setting the"},{"line_number":63,"context_line":"router\u0027s ``admin_state_up\u003dFalse``."},{"line_number":64,"context_line":"This extension requires the ``dvr`` extension."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":8,"id":"7faddb67_f5092231","line":62,"range":{"start_line":62,"start_character":25,"end_line":62,"end_character":35},"updated":"2019-07-03 22:25:16.000000000","message":"attribute","commit_id":"76131e76e8831e776799275bab9c93ed2d4175ae"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"95f4451085d9dc53d4a9de111297e10d8dbb9379","unresolved":false,"context_lines":[{"line_number":59,"context_line":"that the administrative state of a distributed virtual router (DVR) be set to"},{"line_number":60,"context_line":"DOWN (``admin_state_up\u003dFalse``) prior to modifying the ``distributed``"},{"line_number":61,"context_line":"parameter of the router. A ``BadRequest`` exception will be thrown if the"},{"line_number":62,"context_line":"router\u0027s ``distributed`` atttribute is modified without first setting the"},{"line_number":63,"context_line":"router\u0027s ``admin_state_up\u003dFalse``."},{"line_number":64,"context_line":"This extension requires the ``dvr`` extension."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":8,"id":"7faddb67_20a45608","line":62,"range":{"start_line":62,"start_character":25,"end_line":62,"end_character":35},"in_reply_to":"7faddb67_f5092231","updated":"2019-07-03 22:37:56.000000000","message":"Done","commit_id":"76131e76e8831e776799275bab9c93ed2d4175ae"}],"neutron_lib/api/definitions/admin_state_down_before_update.py":[{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"715b757b70658cbe439a3d071cd6121c349291fe","unresolved":false,"context_lines":[{"line_number":15,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":16,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"},{"line_number":17,"context_line":"DESCRIPTION \u003d \u0027Ensure that the admin state of a router is down"},{"line_number":18,"context_line":"(admin_state_up\u003dFalse) before updating the distributed attribute\u0027"},{"line_number":19,"context_line":"UPDATED_TIMESTAMP \u003d \u00272019-01-18:11:18\u0027"},{"line_number":20,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {}"},{"line_number":21,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_65154e49","line":18,"range":{"start_line":18,"start_character":0,"end_line":18,"end_character":1},"updated":"2019-04-02 22:59:57.000000000","message":"correct syntax / align text","commit_id":"d9795da6fcdc5a7b764e9c2ca361fd753dfcee10"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"715b757b70658cbe439a3d071cd6121c349291fe","unresolved":false,"context_lines":[{"line_number":20,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {}"},{"line_number":21,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {}"},{"line_number":22,"context_line":"ACTION_MAP \u003d {}"},{"line_number":23,"context_line":"REQUIRED_EXTENSIONS \u003d []"},{"line_number":24,"context_line":"OPTIONAL_EXTENSIONS \u003d []"},{"line_number":25,"context_line":"ACTION_STATUS \u003d {}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_45129264","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":24},"updated":"2019-04-02 22:59:57.000000000","message":"\u0027router\u0027 extension not required?","commit_id":"d9795da6fcdc5a7b764e9c2ca361fd753dfcee10"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f600f89f071bbdc4801f10869eccd929e3943261","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from neutron_lib.api.definitions import l3 as l3_apidef"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"ALIAS \u003d \u0027admin-state-down-before-update\u0027"},{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_c00f10de","line":13,"range":{"start_line":13,"start_character":46,"end_line":13,"end_character":55},"updated":"2019-04-05 14:51:01.000000000","message":"It\u0027s possible this is causing circular import issue (I didn\u0027t look). If so we\u0027ll have to just use the static string for the l3 alias below.","commit_id":"7d5ab8aa09f1403ef6d8edd295eeef072d712b3b"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f600f89f071bbdc4801f10869eccd929e3943261","unresolved":false,"context_lines":[{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"},{"line_number":19,"context_line":"DESCRIPTION \u003d \u0027Ensure that the admin state of a router is down\u0027"},{"line_number":20,"context_line":"              \u0027(admin_state_up\u003dFalse) before updating the distributed\u0027"},{"line_number":21,"context_line":"              \u0027attribute\u0027"},{"line_number":22,"context_line":"UPDATED_TIMESTAMP \u003d \u00272019-04-02 16:30:00\u0027"},{"line_number":23,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {}"},{"line_number":24,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_6073bc81","line":21,"range":{"start_line":19,"start_character":14,"end_line":21,"end_character":25},"updated":"2019-04-05 14:51:01.000000000","message":"Since these lines are continuations of the previous, shouldn\u0027t there be a space at the end to ensure proper formatting?","commit_id":"7d5ab8aa09f1403ef6d8edd295eeef072d712b3b"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"2b0ea8777ef66a154c5c219a384707ca1a7d5053","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from neutron_lib.api.definitions import l3 as l3_apidef"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"ALIAS \u003d \u0027admin-state-down-before-update\u0027"},{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_99995a20","line":15,"range":{"start_line":15,"start_character":8,"end_line":15,"end_character":40},"updated":"2019-04-08 22:18:49.000000000","message":"Please see comments here: https://review.openstack.org/#/c/625134/18/neutron/extensions/_admin_state_down_before_update_lib.py","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"b4200a3ff05c9fa0c3eb2f4343781f5c11929d13","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from neutron_lib.api.definitions import l3 as l3_apidef"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"ALIAS \u003d \u0027admin-state-down-before-update\u0027"},{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_5ebc2105","line":15,"range":{"start_line":15,"start_character":8,"end_line":15,"end_character":40},"in_reply_to":"5fc1f717_99995a20","updated":"2019-04-09 21:12:43.000000000","message":"Done","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"2b0ea8777ef66a154c5c219a384707ca1a7d5053","unresolved":false,"context_lines":[{"line_number":15,"context_line":"ALIAS \u003d \u0027admin-state-down-before-update\u0027"},{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"},{"line_number":19,"context_line":"DESCRIPTION \u003d (\u0027Ensure that the admin state of a router is down \u0027"},{"line_number":20,"context_line":"               \u0027(admin_state_up\u003dFalse) before updating the distributed \u0027"},{"line_number":21,"context_line":"               \u0027attribute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_399aa612","line":18,"range":{"start_line":18,"start_character":8,"end_line":18,"end_character":57},"updated":"2019-04-08 22:18:49.000000000","message":"Please see comments here: https://review.openstack.org/#/c/625134/18/neutron/extensions/_admin_state_down_before_update_lib.py","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"b4200a3ff05c9fa0c3eb2f4343781f5c11929d13","unresolved":false,"context_lines":[{"line_number":15,"context_line":"ALIAS \u003d \u0027admin-state-down-before-update\u0027"},{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"},{"line_number":19,"context_line":"DESCRIPTION \u003d (\u0027Ensure that the admin state of a router is down \u0027"},{"line_number":20,"context_line":"               \u0027(admin_state_up\u003dFalse) before updating the distributed \u0027"},{"line_number":21,"context_line":"               \u0027attribute\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_7eb79d22","line":18,"range":{"start_line":18,"start_character":8,"end_line":18,"end_character":57},"in_reply_to":"5fc1f717_399aa612","updated":"2019-04-09 21:12:43.000000000","message":"Done","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"cd58b371f8f86928e80e2f9c0f2d984d6895508f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"},{"line_number":19,"context_line":"DESCRIPTION \u003d (\u0027Ensure that the admin state of a router is down \u0027"},{"line_number":20,"context_line":"               \u0027(admin_state_up\u003dFalse) before updating the distributed \u0027"},{"line_number":21,"context_line":"               \u0027attribute\u0027)"},{"line_number":22,"context_line":"UPDATED_TIMESTAMP \u003d \u00272019-04-02 16:30:00\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_b41a33c3","line":19,"range":{"start_line":19,"start_character":59,"end_line":19,"end_character":63},"updated":"2019-04-08 07:34:49.000000000","message":"nitty nit: DOWN","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"b4200a3ff05c9fa0c3eb2f4343781f5c11929d13","unresolved":false,"context_lines":[{"line_number":16,"context_line":"IS_SHIM_EXTENSION \u003d True"},{"line_number":17,"context_line":"IS_STANDARD_ATTR_EXTENSION \u003d False"},{"line_number":18,"context_line":"NAME \u003d \u0027Enforce Admin State Down Before Update Extension\u0027"},{"line_number":19,"context_line":"DESCRIPTION \u003d (\u0027Ensure that the admin state of a router is down \u0027"},{"line_number":20,"context_line":"               \u0027(admin_state_up\u003dFalse) before updating the distributed \u0027"},{"line_number":21,"context_line":"               \u0027attribute\u0027)"},{"line_number":22,"context_line":"UPDATED_TIMESTAMP \u003d \u00272019-04-02 16:30:00\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_3e3b559c","line":19,"range":{"start_line":19,"start_character":59,"end_line":19,"end_character":63},"in_reply_to":"5fc1f717_b41a33c3","updated":"2019-04-09 21:12:43.000000000","message":"Done","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"}],"neutron_lib/tests/unit/api/definitions/test_admin_state_down_before_update.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"7a186298fee31c4c8996266a2d54555d92bfd286","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from neutron_lib.tests.unit.api.definitions import base"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class StandardAttrSegmentdminStateDownBeforeUpdateDefinitionTestCase(base.DefinitionBaseTestCase):"},{"line_number":18,"context_line":"    extension_module \u003d admin_state_down_before_update"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_a983e303","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":29},"updated":"2019-02-11 13:28:38.000000000","message":"I\u0027m confused on the naming of this class.","commit_id":"63007f6ce9961d18b08d3d13f8ffd220c95c940c"}],"releasenotes/notes/admin-state-down-before-update-c06fb3a551fe499f.yaml":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"7a186298fee31c4c8996266a2d54555d92bfd286","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_]"},{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (router.admin_state_up\u003d\u003dFalse) before modifying it\u0027s"},{"line_number":7,"context_line":"    distributed attribute. If the router\u0027s admin_state_up\u003d\u003dTrue when trying"},{"line_number":8,"context_line":"    to change the \"distributed\" attribute, a BadRequest exception will be"},{"line_number":9,"context_line":"    thrown."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fdfeff1_c99bc763","line":6,"range":{"start_line":6,"start_character":18,"end_line":6,"end_character":46},"updated":"2019-02-11 13:28:38.000000000","message":"Nit: best to use ``router.admin_state_up\u003d\u003dFalse`` for formatting code.","commit_id":"63007f6ce9961d18b08d3d13f8ffd220c95c940c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"7a186298fee31c4c8996266a2d54555d92bfd286","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_]"},{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (router.admin_state_up\u003d\u003dFalse) before modifying it\u0027s"},{"line_number":7,"context_line":"    distributed attribute. If the router\u0027s admin_state_up\u003d\u003dTrue when trying"},{"line_number":8,"context_line":"    to change the \"distributed\" attribute, a BadRequest exception will be"},{"line_number":9,"context_line":"    thrown."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fdfeff1_29acd38a","line":7,"range":{"start_line":7,"start_character":43,"end_line":7,"end_character":63},"updated":"2019-02-11 13:28:38.000000000","message":"ditto","commit_id":"63007f6ce9961d18b08d3d13f8ffd220c95c940c"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"7a186298fee31c4c8996266a2d54555d92bfd286","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (router.admin_state_up\u003d\u003dFalse) before modifying it\u0027s"},{"line_number":7,"context_line":"    distributed attribute. If the router\u0027s admin_state_up\u003d\u003dTrue when trying"},{"line_number":8,"context_line":"    to change the \"distributed\" attribute, a BadRequest exception will be"},{"line_number":9,"context_line":"    thrown."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fdfeff1_e9b7abd7","line":8,"range":{"start_line":8,"start_character":19,"end_line":8,"end_character":30},"updated":"2019-02-11 13:28:38.000000000","message":"ditto","commit_id":"63007f6ce9961d18b08d3d13f8ffd220c95c940c"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"715b757b70658cbe439a3d071cd6121c349291fe","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_]"},{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (``router.admin_state_up\u003d\u003dFalse`` ) before modifying its"},{"line_number":7,"context_line":"    distributed attribute. If the router ``admin_state_up\u003d\u003dTrue`` when trying"},{"line_number":8,"context_line":"    to change the ``distributed`` attribute, a BadRequest exception will be"},{"line_number":9,"context_line":"    thrown."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5fc1f717_e5005e05","line":6,"range":{"start_line":6,"start_character":50,"end_line":6,"end_character":51},"updated":"2019-04-02 22:59:57.000000000","message":"nit","commit_id":"d9795da6fcdc5a7b764e9c2ca361fd753dfcee10"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"715b757b70658cbe439a3d071cd6121c349291fe","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_]"},{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (``router.admin_state_up\u003d\u003dFalse`` ) before modifying its"},{"line_number":7,"context_line":"    distributed attribute. If the router ``admin_state_up\u003d\u003dTrue`` when trying"},{"line_number":8,"context_line":"    to change the ``distributed`` attribute, a BadRequest exception will be"},{"line_number":9,"context_line":"    thrown."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5fc1f717_88fdef09","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":15},"updated":"2019-04-02 22:59:57.000000000","message":"I\u0027d personally add `` around this one too, but not important.","commit_id":"d9795da6fcdc5a7b764e9c2ca361fd753dfcee10"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"715b757b70658cbe439a3d071cd6121c349291fe","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (``router.admin_state_up\u003d\u003dFalse`` ) before modifying its"},{"line_number":7,"context_line":"    distributed attribute. If the router ``admin_state_up\u003d\u003dTrue`` when trying"},{"line_number":8,"context_line":"    to change the ``distributed`` attribute, a BadRequest exception will be"},{"line_number":9,"context_line":"    thrown."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"5fc1f717_a800eb01","line":8,"range":{"start_line":8,"start_character":47,"end_line":8,"end_character":57},"updated":"2019-04-02 22:59:57.000000000","message":"and this one","commit_id":"d9795da6fcdc5a7b764e9c2ca361fd753dfcee10"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"f600f89f071bbdc4801f10869eccd929e3943261","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_]"},{"line_number":5,"context_line":"    Changes the API behavior to enforce that a router\u0027s administrative state"},{"line_number":6,"context_line":"    must be down (``router.admin_state_up\u003d\u003dFalse``) before modifying its"},{"line_number":7,"context_line":"    ``distributed`` attribute. If the router ``admin_state_up\u003d\u003dTrue`` when"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5fc1f717_60e65c19","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":5},"updated":"2019-04-05 14:51:01.000000000","message":"Did you intend to format this with the [] around it (See [1])?? Doesn\u0027t seem necessary, but probably a nit.\n\n\n\n[1] http://logs.openstack.org/09/634509/3/check/build-openstack-releasenotes/fbffd67/html/unreleased.html","commit_id":"7d5ab8aa09f1403ef6d8edd295eeef072d712b3b"},{"author":{"_account_id":30156,"name":"Igor D.C.","email":"igor.duarte.cardoso@intel.com","username":"igordc"},"change_message_id":"e837a23a8179b3bacc7fc556a152f2ac6cb2366d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Bug \u00271811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_ is fixed"},{"line_number":4,"context_line":"    by changing the API behavior to enforce that a router\u0027s administrative "},{"line_number":5,"context_line":"    state must be down (``router.admin_state_up\u003d\u003dFalse``) before modifying its"},{"line_number":6,"context_line":"    ``distributed`` attribute. If the router ``admin_state_up\u003d\u003dTrue`` when"},{"line_number":7,"context_line":"    trying to change the ``distributed`` attribute, a ``BadRequest`` exception"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5fc1f717_8c005f36","line":4,"updated":"2019-04-05 18:31:44.000000000","message":"whitespace :)","commit_id":"eca1f74e6aea0702d94cd704edc79627af4d9c56"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"cd58b371f8f86928e80e2f9c0f2d984d6895508f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    state must be down (``router.admin_state_up\u003d\u003dFalse``) before modifying its"},{"line_number":6,"context_line":"    ``distributed`` attribute. If the router ``admin_state_up\u003d\u003dTrue`` when"},{"line_number":7,"context_line":"    trying to change the ``distributed`` attribute, a ``BadRequest`` exception"},{"line_number":8,"context_line":"    will be thrown."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_149b0717","line":8,"updated":"2019-04-08 07:34:49.000000000","message":"IMO this release note is good for patch in neutron, but here You should just write something like \"regime API extension ... to neutron-lib\" or something like that.","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"2b0ea8777ef66a154c5c219a384707ca1a7d5053","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    state must be down (``router.admin_state_up\u003d\u003dFalse``) before modifying its"},{"line_number":6,"context_line":"    ``distributed`` attribute. If the router ``admin_state_up\u003d\u003dTrue`` when"},{"line_number":7,"context_line":"    trying to change the ``distributed`` attribute, a ``BadRequest`` exception"},{"line_number":8,"context_line":"    will be thrown."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_599f7201","line":8,"in_reply_to":"5fc1f717_149b0717","updated":"2019-04-08 22:18:49.000000000","message":"Agree with Slawek","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"b4200a3ff05c9fa0c3eb2f4343781f5c11929d13","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    state must be down (``router.admin_state_up\u003d\u003dFalse``) before modifying its"},{"line_number":6,"context_line":"    ``distributed`` attribute. If the router ``admin_state_up\u003d\u003dTrue`` when"},{"line_number":7,"context_line":"    trying to change the ``distributed`` attribute, a ``BadRequest`` exception"},{"line_number":8,"context_line":"    will be thrown."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_de3d718e","line":8,"in_reply_to":"5fc1f717_149b0717","updated":"2019-04-09 21:12:43.000000000","message":"I will revise this release note in the next patch set","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":24797,"name":"Matt Welch","email":"matt.welch@intel.com","username":"mattw4"},"change_message_id":"b4200a3ff05c9fa0c3eb2f4343781f5c11929d13","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    state must be down (``router.admin_state_up\u003d\u003dFalse``) before modifying its"},{"line_number":6,"context_line":"    ``distributed`` attribute. If the router ``admin_state_up\u003d\u003dTrue`` when"},{"line_number":7,"context_line":"    trying to change the ``distributed`` attribute, a ``BadRequest`` exception"},{"line_number":8,"context_line":"    will be thrown."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5fc1f717_9e4b6929","line":8,"in_reply_to":"5fc1f717_599f7201","updated":"2019-04-09 21:12:43.000000000","message":"I will revise this release note in the next patch set","commit_id":"b680de507be8eb61149f4b2c332a593f11f39338"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2f329968fc66dcda71515f19f722a4c794360ecf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Bug `1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_ is fixed"},{"line_number":4,"context_line":"    through a regime API extension to neutron-lib that enforces the admin"},{"line_number":5,"context_line":"    state of a router be DOWN (admin_state_up\u003dFalse) prior to modifying the"},{"line_number":6,"context_line":"    distributed attribute of the router."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7faddb67_4639673f","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":77},"updated":"2019-07-04 07:51:00.000000000","message":"this patch don\u0027t fix anything. IMO You should just mention that definition of new API was added here.\nRelease note about \"fixed bug\" should be added later to neutron\u0027s release notes.","commit_id":"0ba4c782f718a2a6259a47159c84b5d9f02d9c9f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"c9ead86faf4ca4443bf36541613a369bfd2c43df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Bug `1811166 \u003chttps://bugs.launchpad.net/neutron/+bug/1811166\u003e`_ is fixed"},{"line_number":4,"context_line":"    through a regime API extension to neutron-lib that enforces the admin"},{"line_number":5,"context_line":"    state of a router be DOWN (admin_state_up\u003dFalse) prior to modifying the"},{"line_number":6,"context_line":"    distributed attribute of the router."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"7faddb67_373d74bb","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":77},"in_reply_to":"7faddb67_4639673f","updated":"2019-07-04 11:55:43.000000000","message":"Yeah you can probably just mention the API def was added in the \u0027features\u0027 section of this release note.","commit_id":"0ba4c782f718a2a6259a47159c84b5d9f02d9c9f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3f92e905f0271aa855c569b67906ef3f35a809ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Router API is modified through a regime API extension to neutron-lib that"},{"line_number":4,"context_line":"    enforces the admin state of a router be DOWN (admin_state_up\u003dFalse) prior"},{"line_number":5,"context_line":"    to modifying the distributed attribute of the router."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"7faddb67_3c6d1004","line":4,"range":{"start_line":4,"start_character":41,"end_line":4,"end_character":43},"updated":"2019-07-10 07:33:26.000000000","message":"IMHO it should be \"to be\" here","commit_id":"adc6a7087f0b7aa07730e25a9b946157bbf98c53"}]}
