)]}'
{"api-ref/source/v2/parameters.yaml":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3046ded233a2e84a1b434ad25664f4dbaace79a6","unresolved":true,"context_lines":[{"line_number":5700,"context_line":"    A list of dictionaries with ``destination`` and ``nexthop`` parameters."},{"line_number":5701,"context_line":"    It is available when ``extraroute`` extension is enabled."},{"line_number":5702,"context_line":"    If ``bfd-for-extraroutes`` extension is enabled ``bfd_monitor_id``"},{"line_number":5703,"context_line":"    parameter is available in the ``routes`` dict"},{"line_number":5704,"context_line":"  in: body"},{"line_number":5705,"context_line":"  required: true"},{"line_number":5706,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"c3d457fb_9dd6552f","line":5703,"range":{"start_line":5703,"start_character":45,"end_line":5703,"end_character":49},"updated":"2021-08-17 14:54:41.000000000","message":"Needs a trailing period.\nAlso it is better to use \"dictionary\" for consistency. L.5700 uses \"dictionaries\".","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a64a22e9f3e38386a86b32275795d5e104aa584e","unresolved":true,"context_lines":[{"line_number":5700,"context_line":"    A list of dictionaries with ``destination`` and ``nexthop`` parameters."},{"line_number":5701,"context_line":"    It is available when ``extraroute`` extension is enabled."},{"line_number":5702,"context_line":"    If ``bfd-for-extraroutes`` extension is enabled ``bfd_monitor_id``"},{"line_number":5703,"context_line":"    parameter is available in the ``routes`` dict"},{"line_number":5704,"context_line":"  in: body"},{"line_number":5705,"context_line":"  required: true"},{"line_number":5706,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"3b05f029_aeef1a8e","line":5703,"range":{"start_line":5703,"start_character":45,"end_line":5703,"end_character":49},"in_reply_to":"c3d457fb_9dd6552f","updated":"2021-08-17 16:51:06.000000000","message":"thanks, and yeah I got it from slaweq for the BFD api-def (https://review.opendev.org/c/openstack/neutron-lib/+/775420/14/api-ref/source/v2/parameters.yaml#1761 ) so it\u0027s my lazy style","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"}],"api-ref/source/v2/routers.inc":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3046ded233a2e84a1b434ad25664f4dbaace79a6","unresolved":true,"context_lines":[{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"BFD monitors for Extraroutes extension (``bfd-for-extraroutes``) adds"},{"line_number":129,"context_line":"``bfd_monitor_id`` field to the extraroutes dict."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":".. warning::"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":14,"id":"3284a752_c9905de1","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":48},"updated":"2021-08-17 14:54:41.000000000","message":"we use \"dictionary\" instead of \"dict\" in the API reference in general.","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a64a22e9f3e38386a86b32275795d5e104aa584e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"BFD monitors for Extraroutes extension (``bfd-for-extraroutes``) adds"},{"line_number":129,"context_line":"``bfd_monitor_id`` field to the extraroutes dict."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":".. warning::"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":14,"id":"43477f7d_2250cd89","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":48},"in_reply_to":"3284a752_c9905de1","updated":"2021-08-17 16:51:06.000000000","message":"Done","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"}],"api-ref/source/v2/samples/routers/router-add-extraroutes-request.json":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3046ded233a2e84a1b434ad25664f4dbaace79a6","unresolved":true,"context_lines":[{"line_number":2,"context_line":"   \"router\" : {"},{"line_number":3,"context_line":"      \"routes\" : ["},{"line_number":4,"context_line":"         { \"destination\" : \"10.0.3.0/24\", \"nexthop\" : \"10.0.0.13\" },"},{"line_number":5,"context_line":"         { \"destination\" : \"10.0.4.0/24\", \"nexthop\" : \"10.0.0.14\", \"bfd_monitor_id\":  \"ef261fa5-b01a-425f-984f-e5f20e23a78c\"}"},{"line_number":6,"context_line":"      ]"},{"line_number":7,"context_line":"   }"},{"line_number":8,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"8a6a11cf_6229b591","line":5,"updated":"2021-08-17 14:54:41.000000000","message":"Could you wrap lines?","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a64a22e9f3e38386a86b32275795d5e104aa584e","unresolved":false,"context_lines":[{"line_number":2,"context_line":"   \"router\" : {"},{"line_number":3,"context_line":"      \"routes\" : ["},{"line_number":4,"context_line":"         { \"destination\" : \"10.0.3.0/24\", \"nexthop\" : \"10.0.0.13\" },"},{"line_number":5,"context_line":"         { \"destination\" : \"10.0.4.0/24\", \"nexthop\" : \"10.0.0.14\", \"bfd_monitor_id\":  \"ef261fa5-b01a-425f-984f-e5f20e23a78c\"}"},{"line_number":6,"context_line":"      ]"},{"line_number":7,"context_line":"   }"},{"line_number":8,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"ad88c64a_fd8eae1b","line":5,"in_reply_to":"8a6a11cf_6229b591","updated":"2021-08-17 16:51:06.000000000","message":"Done","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"}],"api-ref/source/v2/samples/routers/router-add-extraroutes-response.json":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3046ded233a2e84a1b434ad25664f4dbaace79a6","unresolved":true,"context_lines":[{"line_number":6,"context_line":"         { \"destination\" : \"10.0.1.0/24\", \"nexthop\" : \"10.0.0.11\" },"},{"line_number":7,"context_line":"         { \"destination\" : \"10.0.2.0/24\", \"nexthop\" : \"10.0.0.12\" },"},{"line_number":8,"context_line":"         { \"destination\" : \"10.0.3.0/24\", \"nexthop\" : \"10.0.0.13\" },"},{"line_number":9,"context_line":"         { \"destination\" : \"10.0.4.0/24\", \"nexthop\" : \"10.0.0.14\", \"bfd_monitor_id\":  \"ef261fa5-b01a-425f-984f-e5f20e23a78c\"}"},{"line_number":10,"context_line":"      ]"},{"line_number":11,"context_line":"   }"},{"line_number":12,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"5e431b8d_bc32876f","line":9,"updated":"2021-08-17 14:54:41.000000000","message":"The line is too long now. It is better to wrap lines.","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a64a22e9f3e38386a86b32275795d5e104aa584e","unresolved":true,"context_lines":[{"line_number":6,"context_line":"         { \"destination\" : \"10.0.1.0/24\", \"nexthop\" : \"10.0.0.11\" },"},{"line_number":7,"context_line":"         { \"destination\" : \"10.0.2.0/24\", \"nexthop\" : \"10.0.0.12\" },"},{"line_number":8,"context_line":"         { \"destination\" : \"10.0.3.0/24\", \"nexthop\" : \"10.0.0.13\" },"},{"line_number":9,"context_line":"         { \"destination\" : \"10.0.4.0/24\", \"nexthop\" : \"10.0.0.14\", \"bfd_monitor_id\":  \"ef261fa5-b01a-425f-984f-e5f20e23a78c\"}"},{"line_number":10,"context_line":"      ]"},{"line_number":11,"context_line":"   }"},{"line_number":12,"context_line":"}"}],"source_content_type":"application/json","patch_set":14,"id":"0756afc3_23ab385e","line":9,"in_reply_to":"5e431b8d_bc32876f","updated":"2021-08-17 16:51:06.000000000","message":"thanks for noting it, it\u0027s much better","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"}],"neutron_lib/api/definitions/bfd_for_extraroutes.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"71e7c8aa4c8a04e6dff709c9ea6278dcf467c50f","unresolved":true,"context_lines":[{"line_number":25,"context_line":"UPDATED_TIMESTAMP \u003d \u00272021-02-17T00:00:00+00:00\u0027"},{"line_number":26,"context_line":"RESOURCE_NAME \u003d l3.ROUTER"},{"line_number":27,"context_line":"COLLECTION_NAME \u003d l3.ROUTERS"},{"line_number":28,"context_line":"ROUTES \u003d \u0027routes\u0027"},{"line_number":29,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":30,"context_line":"    COLLECTION_NAME: {"},{"line_number":31,"context_line":"        ROUTES: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa990a41_02da940e","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":2},"updated":"2021-05-07 16:32:18.000000000","message":"this should point definitions.extraroute.ROUTES","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6632e6dcd3c8cacfe8a7ab80e3bcc744474d5b0c","unresolved":true,"context_lines":[{"line_number":25,"context_line":"UPDATED_TIMESTAMP \u003d \u00272021-02-17T00:00:00+00:00\u0027"},{"line_number":26,"context_line":"RESOURCE_NAME \u003d l3.ROUTER"},{"line_number":27,"context_line":"COLLECTION_NAME \u003d l3.ROUTERS"},{"line_number":28,"context_line":"ROUTES \u003d \u0027routes\u0027"},{"line_number":29,"context_line":"RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":30,"context_line":"    COLLECTION_NAME: {"},{"line_number":31,"context_line":"        ROUTES: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ccacde9_50f22b5b","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":2},"in_reply_to":"fa990a41_02da940e","updated":"2021-05-11 08:21:02.000000000","message":"Thanks, Done","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"328ef5ae9a1339597275368c2cdb419cfe462cc4","unresolved":true,"context_lines":[{"line_number":38,"context_line":"}"},{"line_number":39,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d None"},{"line_number":40,"context_line":"ACTION_MAP \u003d {}"},{"line_number":41,"context_line":"REQUIRED_EXTENSIONS \u003d [l3.ALIAS, extraroute.ALIAS]"},{"line_number":42,"context_line":"OPTIONAL_EXTENSIONS \u003d []"},{"line_number":43,"context_line":"ACTION_STATUS \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"6744c6ca_84bb0395","line":41,"updated":"2021-07-15 15:46:04.000000000","message":"Is this extension compatible with \"extraroute-atomic\"?","commit_id":"1f2341a6bbed38c6ffd367213493219f17975e26"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"caf5454de21aced95f79f5cd4631475ec61132e3","unresolved":true,"context_lines":[{"line_number":38,"context_line":"}"},{"line_number":39,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d None"},{"line_number":40,"context_line":"ACTION_MAP \u003d {}"},{"line_number":41,"context_line":"REQUIRED_EXTENSIONS \u003d [l3.ALIAS, extraroute.ALIAS]"},{"line_number":42,"context_line":"OPTIONAL_EXTENSIONS \u003d []"},{"line_number":43,"context_line":"ACTION_STATUS \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"51303119_1c09c6f6","line":41,"in_reply_to":"6744c6ca_84bb0395","updated":"2021-07-27 09:53:41.000000000","message":"Yes, I pushed some pre-pre wip tempest tests, one is for extraroute-atomic, which I use locally:\nhttps://review.opendev.org/c/openstack/neutron-tempest-plugin/+/800949/2/neutron_tempest_plugin/api/test_bfd.py#111","commit_id":"1f2341a6bbed38c6ffd367213493219f17975e26"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d01ee743d3ce3264279ba18de16221b5482eb00e","unresolved":true,"context_lines":[{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d None"},{"line_number":30,"context_line":"ACTION_MAP \u003d {}"},{"line_number":31,"context_line":"REQUIRED_EXTENSIONS \u003d [l3.ALIAS, extraroute.ALIAS]"},{"line_number":32,"context_line":"OPTIONAL_EXTENSIONS \u003d []"},{"line_number":33,"context_line":"ACTION_STATUS \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"5b1a004f_baef4eef","line":31,"updated":"2021-08-17 11:22:56.000000000","message":"shouldn\u0027t it also require \u0027bfd-monitor\u0027 extension?","commit_id":"063b8e1d4adddd673ebf889c686d0877402a4844"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"801096f1bb024605b171cf994146d9ad330e3fdb","unresolved":true,"context_lines":[{"line_number":28,"context_line":"}"},{"line_number":29,"context_line":"SUB_RESOURCE_ATTRIBUTE_MAP \u003d None"},{"line_number":30,"context_line":"ACTION_MAP \u003d {}"},{"line_number":31,"context_line":"REQUIRED_EXTENSIONS \u003d [l3.ALIAS, extraroute.ALIAS]"},{"line_number":32,"context_line":"OPTIONAL_EXTENSIONS \u003d []"},{"line_number":33,"context_line":"ACTION_STATUS \u003d {}"}],"source_content_type":"text/x-python","patch_set":13,"id":"6b514a19_1c74cdb3","line":31,"in_reply_to":"5b1a004f_baef4eef","updated":"2021-08-17 11:50:55.000000000","message":"You are right, it requires bfd","commit_id":"063b8e1d4adddd673ebf889c686d0877402a4844"}],"neutron_lib/api/validators/__init__.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"71e7c8aa4c8a04e6dff709c9ea6278dcf467c50f","unresolved":true,"context_lines":[{"line_number":615,"context_line":"            LOG.debug(msg)"},{"line_number":616,"context_line":"            return msg"},{"line_number":617,"context_line":"        hostroutes.append(hostroute)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"def validate_ip_address_or_none(data, valid_values\u003dNone):"},{"line_number":621,"context_line":"    \"\"\"Validate data is an IP address or None."}],"source_content_type":"text/x-python","patch_set":3,"id":"575133f8_503c27a0","line":618,"updated":"2021-05-07 16:32:18.000000000","message":"Shouldn\u0027t you validate the BFD monitor ID? Same as in L549:\n  validate_uuid(bfd_monitor_id)","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6632e6dcd3c8cacfe8a7ab80e3bcc744474d5b0c","unresolved":true,"context_lines":[{"line_number":615,"context_line":"            LOG.debug(msg)"},{"line_number":616,"context_line":"            return msg"},{"line_number":617,"context_line":"        hostroutes.append(hostroute)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"def validate_ip_address_or_none(data, valid_values\u003dNone):"},{"line_number":621,"context_line":"    \"\"\"Validate data is an IP address or None."}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7ead1_311a2f7f","line":618,"in_reply_to":"575133f8_503c27a0","updated":"2021-05-11 08:21:02.000000000","message":"Thanks, that\u0027s really a good idea.\nIs this how you thought?","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9e32f1296c323f52466b984c0b3590a2f0c7ec78","unresolved":true,"context_lines":[{"line_number":617,"context_line":"        if \u0027bfd_monitor_id\u0027 in hostroute:"},{"line_number":618,"context_line":"            msg \u003d validate_uuid(hostroute[\u0027bfd_monitor_id\u0027])"},{"line_number":619,"context_line":"            if msg:"},{"line_number":620,"context_line":"                return msg"},{"line_number":621,"context_line":"        hostroutes.append(hostroute)"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"82879cf9_c284ad0f","line":620,"updated":"2021-05-21 13:20:34.000000000","message":"+1","commit_id":"7403fa9a5e80a8c95eed62fc1ff0ee996ebd9f35"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3046ded233a2e84a1b434ad25664f4dbaace79a6","unresolved":true,"context_lines":[{"line_number":599,"context_line":"    expected_keys \u003d [\u0027destination\u0027, \u0027nexthop\u0027]"},{"line_number":600,"context_line":"    hostroutes \u003d []"},{"line_number":601,"context_line":"    for hostroute in data:"},{"line_number":602,"context_line":"        copy_exp_keys \u003d copy.deepcopy(expected_keys)"},{"line_number":603,"context_line":"        if hostroute and \u0027bfd_monitor_id\u0027 in hostroute:"},{"line_number":604,"context_line":"            copy_exp_keys.append(\u0027bfd_monitor_id\u0027)"},{"line_number":605,"context_line":"        msg \u003d _verify_dict_keys(copy_exp_keys, hostroute)"}],"source_content_type":"text/x-python","patch_set":14,"id":"92a9c62f_33a5ddda","line":602,"updated":"2021-08-17 14:54:41.000000000","message":"why do you need to deepcopy the original \"expected_keys\"?\nAFAIC _verify_dict_keys() does not touch expected_keys, so I am confused.","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a64a22e9f3e38386a86b32275795d5e104aa584e","unresolved":true,"context_lines":[{"line_number":599,"context_line":"    expected_keys \u003d [\u0027destination\u0027, \u0027nexthop\u0027]"},{"line_number":600,"context_line":"    hostroutes \u003d []"},{"line_number":601,"context_line":"    for hostroute in data:"},{"line_number":602,"context_line":"        copy_exp_keys \u003d copy.deepcopy(expected_keys)"},{"line_number":603,"context_line":"        if hostroute and \u0027bfd_monitor_id\u0027 in hostroute:"},{"line_number":604,"context_line":"            copy_exp_keys.append(\u0027bfd_monitor_id\u0027)"},{"line_number":605,"context_line":"        msg \u003d _verify_dict_keys(copy_exp_keys, hostroute)"}],"source_content_type":"text/x-python","patch_set":14,"id":"32dcc879_a4c60226","line":602,"in_reply_to":"92a9c62f_33a5ddda","updated":"2021-08-17 16:51:06.000000000","message":"thanks, it was some leftover from a previous version","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"}],"neutron_lib/tests/unit/api/validators/test_validators.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"3046ded233a2e84a1b434ad25664f4dbaace79a6","unresolved":true,"context_lines":[{"line_number":564,"context_line":"        for host_routes in hostroute_pools:"},{"line_number":565,"context_line":"            msg \u003d validators.validate_hostroutes(host_routes, None)"},{"line_number":566,"context_line":"            self.assertIsNone(msg)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def test_validate_ip_address_or_none(self):"},{"line_number":569,"context_line":"        ip_addr \u003d None"},{"line_number":570,"context_line":"        msg \u003d validators.validate_ip_address_or_none(ip_addr)"}],"source_content_type":"text/x-python","patch_set":14,"id":"4a1c0169_7c0157ce","line":567,"updated":"2021-08-17 14:54:41.000000000","message":"Could you add negative tests for this change?\nThe code checks bfd_monitor_id is UUID-like. It is better to check non-UUID bdf_monitor_id.","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a64a22e9f3e38386a86b32275795d5e104aa584e","unresolved":false,"context_lines":[{"line_number":564,"context_line":"        for host_routes in hostroute_pools:"},{"line_number":565,"context_line":"            msg \u003d validators.validate_hostroutes(host_routes, None)"},{"line_number":566,"context_line":"            self.assertIsNone(msg)"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def test_validate_ip_address_or_none(self):"},{"line_number":569,"context_line":"        ip_addr \u003d None"},{"line_number":570,"context_line":"        msg \u003d validators.validate_ip_address_or_none(ip_addr)"}],"source_content_type":"text/x-python","patch_set":14,"id":"a29ece7d_a0f06bb5","line":567,"in_reply_to":"4a1c0169_7c0157ce","updated":"2021-08-17 16:51:06.000000000","message":"Done","commit_id":"30e5902cfd14d21f21b534604d8ff359ae251236"}],"releasenotes/notes/bfd_monitor_for_extraroutes-ea889414ec8de401.yaml":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"71e7c8aa4c8a04e6dff709c9ea6278dcf467c50f","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add possibility to define ``extraroutes`` with ``bfd_monitor``."},{"line_number":4,"context_line":"    The extension makes it possible to define an ``extraroute`` with"},{"line_number":5,"context_line":"    or without the extra field ``bfd_monitor_id``"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"36eb38a5_6b3ae4c3","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":14},"updated":"2021-05-07 16:32:18.000000000","message":"But seems to be mandatory in the API","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6632e6dcd3c8cacfe8a7ab80e3bcc744474d5b0c","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add possibility to define ``extraroutes`` with ``bfd_monitor``."},{"line_number":4,"context_line":"    The extension makes it possible to define an ``extraroute`` with"},{"line_number":5,"context_line":"    or without the extra field ``bfd_monitor_id``"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"75ecbf8c_136b4d23","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":14},"in_reply_to":"36eb38a5_6b3ae4c3","updated":"2021-05-11 08:21:02.000000000","message":"It\u0027s possible with this api-def to add route without monitor_id:\ncurl.... PUT \"http://localhost:9696/v2.0/routers/6b98b743-9b2e-45d2-8651-3bf9288fb021/add_extraroutes\" -d \u0027{\"router\": {\"routes\": [{\"destination\": \"192.168.27.0/24\", \"nexthop\": \"100.109.1.201\"}]}}\u0027\n\n{\n   \"router\" : {\n      ...............\n      \"id\" : \"6b98b743-9b2e-45d2-8651-3bf9288fb021\",\n      \"name\" : \"router1\",\n      \"routes\" : [\n         {\n            \"bfd_monitor_id\" : \"None\",\n            \"destination\" : \"192.168.27.0/24\",\n            \"nexthop\" : \"100.109.1.201\"\n         }\n      ],\n      .............\n   }\n}\n\nDo you think that I miss something here?","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9e32f1296c323f52466b984c0b3590a2f0c7ec78","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add possibility to define ``extraroutes`` with ``bfd_monitor``."},{"line_number":4,"context_line":"    The extension makes it possible to define an ``extraroute`` with"},{"line_number":5,"context_line":"    or without the extra field ``bfd_monitor_id``"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"d464c58d_aca1c289","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":14},"in_reply_to":"75ecbf8c_136b4d23","updated":"2021-05-21 13:20:34.000000000","message":"Right, we\u0027ll have it in the reply but is not mandatory in the request.","commit_id":"f7c145e578de92f5b5e86ffb730c261880a6b700"}]}
