)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"fab4216a73de6e8a26217288755319821b4b6a77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7f98621f_f49bcdfc","updated":"2022-06-30 11:51:57.000000000","message":"For this to be green we need a release of OSC with https://review.opendev.org/c/openstack/openstacksdk/+/749036","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"072d2ad9ba2473b84ac2a9136e6a20ef898b582f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fd2acbf5_1c6b0819","updated":"2022-08-19 08:26:04.000000000","message":"Thanks","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bc8af7cdd1e39e037e892d9d31b66d962a3db50c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bf5c69c8_98a0778f","updated":"2022-08-20 19:37:17.000000000","message":"We should be consistent with the capitalization of \"ndp proxy\" in the documentation. I\u0027d prefer \"NDP proxy\" everywhere, currently it is pretty inconsistent.","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"5f0ea77c5f1dc2dcae1729bdc08d2391f00ada4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e6f287da_57cd2d9f","updated":"2022-08-19 00:57:04.000000000","message":"recheck","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"e7bf5c3449d99e6c32e4630e604f7e1133fcea76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4997de80_957cf9c0","in_reply_to":"7f98621f_f49bcdfc","updated":"2022-08-19 02:09:25.000000000","message":"The latest openstacksdk already release","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"bdbe5e9f_c52f71a2","updated":"2022-08-23 11:51:34.000000000","message":"Thanks for the quick response, went through the code again and found some further things.\n\nI also didn\u0027t look at the tests yet, maybe get the functionality done first. I really like the feature and would like to get this patch into the Zed release to match what Neutron will be releasing.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"075fab87_6a5946e2","updated":"2022-08-24 11:38:34.000000000","message":"I have a lot of comments inline but I hope they\u0027re not too complicated. Let\u0027s try to get this merged in the next few days","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1e057c93dea2ac674c6e8416fb4f4b7380170410","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"676fefb2_e3e4ae7b","updated":"2022-08-26 06:46:31.000000000","message":"Thanks for your updates, I think this should be fine now.","commit_id":"b36cd0f4c0416182ce69d71a4e99d89507d53e7f"}],"doc/source/cli/command-objects/ndp-proxy.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bc8af7cdd1e39e037e892d9d31b66d962a3db50c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c3bcaa1b_c7b26043","updated":"2022-08-20 19:37:17.000000000","message":"The file name need to be network-ndp-proxy.rst in order to be consistent with the other network commands and to have the correct ordering in the command list.","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7353e63bff138f416666349f1ca2a0a41339fd7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"607cdadf_f6e91aa5","in_reply_to":"c3bcaa1b_c7b26043","updated":"2022-08-23 03:37:54.000000000","message":"Done","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bc8af7cdd1e39e037e892d9d31b66d962a3db50c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"network NDP proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Network v2"}],"source_content_type":"text/x-rst","patch_set":9,"id":"6c3cf697_4ac3f623","line":2,"updated":"2022-08-20 19:37:17.000000000","message":"This is the command prefix, so it should be \"ndp\" instead of \"NDP\".","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7353e63bff138f416666349f1ca2a0a41339fd7e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"network NDP proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Network v2"}],"source_content_type":"text/x-rst","patch_set":9,"id":"37d70609_2a774c36","line":2,"in_reply_to":"6c3cf697_4ac3f623","updated":"2022-08-23 03:37:54.000000000","message":"Done","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bc8af7cdd1e39e037e892d9d31b66d962a3db50c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"network NDP proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Network v2"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":".. autoprogram-cliff:: openstack.network.v2"}],"source_content_type":"text/x-rst","patch_set":9,"id":"881cd8a9_a32a153c","line":4,"updated":"2022-08-20 19:37:17.000000000","message":"Maybe add a short description of what an NDP proxy is here.","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7353e63bff138f416666349f1ca2a0a41339fd7e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"network NDP proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Network v2"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":".. autoprogram-cliff:: openstack.network.v2"}],"source_content_type":"text/x-rst","patch_set":9,"id":"f0f85f58_5720cf04","line":4,"in_reply_to":"881cd8a9_a32a153c","updated":"2022-08-23 03:37:54.000000000","message":"Done","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"}],"doc/source/cli/command-objects/network-ndp-proxy.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"network NDP proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"2c5081d8_1045c242","line":2,"range":{"start_line":2,"start_character":8,"end_line":2,"end_character":11},"updated":"2022-08-23 11:51:34.000000000","message":"I think this still needs to be lowercase since the whole line is listed as command prefix in the index","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"network NDP proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"cac627e9_033705c9","line":2,"range":{"start_line":2,"start_character":8,"end_line":2,"end_character":11},"in_reply_to":"2c5081d8_1045c242","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":2,"context_line":"network ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"132ddadb_5e82d62e","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":1},"updated":"2022-08-24 11:38:34.000000000","message":"An","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":2,"context_line":"network ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"8af96250_054d603a","line":5,"range":{"start_line":5,"start_character":65,"end_line":5,"end_character":68},"updated":"2022-08-24 11:38:34.000000000","message":"network. With","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":2,"context_line":"network ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"f5511125_077676f3","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":23},"updated":"2022-08-24 11:38:34.000000000","message":"publishes","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":2,"context_line":"network ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"0a8edcbb_ebb423b3","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":1},"in_reply_to":"132ddadb_5e82d62e","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":2,"context_line":"network ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"9d88b1df_c41004ef","line":5,"range":{"start_line":5,"start_character":65,"end_line":5,"end_character":68},"in_reply_to":"8af96250_054d603a","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":2,"context_line":"network ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"A **NDP proxy** publish a internal IPv6 address to public network, with the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"d366ff32_e3b936c3","line":5,"range":{"start_line":5,"start_character":16,"end_line":5,"end_character":23},"in_reply_to":"f5511125_077676f3","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}],"doc/source/cli/command-objects/router-ndp-proxy.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5371b4acaa1f031876a309d0c192900d02d0b2f7","unresolved":true,"context_lines":[{"line_number":2,"context_line":"router ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"An **NDP proxy** publishs a internal IPv6 address to public network. With the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"9163baf6_5df06f21","line":5,"range":{"start_line":5,"start_character":17,"end_line":5,"end_character":25},"updated":"2022-08-25 12:49:56.000000000","message":"I think there\u0027s a typo here. Shouldn\u0027t be \"publishes\" ?","commit_id":"986efb198c843bd7409ecb47c1c033aec8374160"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6880c8ad079786552c060fe29976297c387610d4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"router ndp proxy"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"An **NDP proxy** publishs a internal IPv6 address to public network. With the"},{"line_number":6,"context_line":"**NDP proxy**, the IPv6 address can be accessed from external. It is similar"},{"line_number":7,"context_line":"to **Floating IP** of IPv4 in functionality."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"1053453d_f935cea8","line":5,"range":{"start_line":5,"start_character":17,"end_line":5,"end_character":25},"in_reply_to":"9163baf6_5df06f21","updated":"2022-08-26 00:16:49.000000000","message":"Done","commit_id":"986efb198c843bd7409ecb47c1c033aec8374160"}],"openstackclient/network/v2/ndp_proxy.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"160dba17e5da338e1fc3281584446a5e0051c766","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        parser.add_argument("},{"line_number":44,"context_line":"            \u0027name\u0027,"},{"line_number":45,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":46,"context_line":"            help\u003d_(\"New router name\")"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--router\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"d5fd5128_f167ceba","line":46,"range":{"start_line":46,"start_character":20,"end_line":46,"end_character":35},"updated":"2022-04-06 07:05:15.000000000","message":"router name, is that correct?","commit_id":"e70881326d7d23c12c4bbbe282ed4fbcf55af569"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"a1670f0cb925233486fd3ddea26b6400be0062c6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        parser.add_argument("},{"line_number":44,"context_line":"            \u0027name\u0027,"},{"line_number":45,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":46,"context_line":"            help\u003d_(\"New router name\")"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--router\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"06be47e9_b829b1f9","line":46,"range":{"start_line":46,"start_character":20,"end_line":46,"end_character":35},"in_reply_to":"813a3224_5a4d9c29","updated":"2022-05-14 08:14:37.000000000","message":"Done","commit_id":"e70881326d7d23c12c4bbbe282ed4fbcf55af569"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8576ba0b4f64c3aa0bf4600401bfc1f8e0da2afa","unresolved":true,"context_lines":[{"line_number":43,"context_line":"        parser.add_argument("},{"line_number":44,"context_line":"            \u0027name\u0027,"},{"line_number":45,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"},{"line_number":46,"context_line":"            help\u003d_(\"New router name\")"},{"line_number":47,"context_line":"        )"},{"line_number":48,"context_line":"        parser.add_argument("},{"line_number":49,"context_line":"            \u0027--router\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"813a3224_5a4d9c29","line":46,"range":{"start_line":46,"start_character":20,"end_line":46,"end_character":35},"in_reply_to":"d5fd5128_f167ceba","updated":"2022-04-07 09:40:34.000000000","message":"This should be \"New NDP proxy name\"","commit_id":"e70881326d7d23c12c4bbbe282ed4fbcf55af569"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bc8af7cdd1e39e037e892d9d31b66d962a3db50c","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def _get_columns(item):"},{"line_number":30,"context_line":"    column_map \u003d {"},{"line_number":31,"context_line":"        \u0027tenant_id\u0027: \u0027project_id\u0027,"},{"line_number":32,"context_line":"    }"},{"line_number":33,"context_line":"    hidden_columns \u003d [\u0027location\u0027]"},{"line_number":34,"context_line":"    return utils.get_osc_show_columns_for_sdk_resource("}],"source_content_type":"text/x-python","patch_set":9,"id":"8f23fca9_73808702","line":31,"updated":"2022-08-20 19:37:17.000000000","message":"IIUC we dropped this everywhere else, so can be dropped here, too.","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7353e63bff138f416666349f1ca2a0a41339fd7e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def _get_columns(item):"},{"line_number":30,"context_line":"    column_map \u003d {"},{"line_number":31,"context_line":"        \u0027tenant_id\u0027: \u0027project_id\u0027,"},{"line_number":32,"context_line":"    }"},{"line_number":33,"context_line":"    hidden_columns \u003d [\u0027location\u0027]"},{"line_number":34,"context_line":"    return utils.get_osc_show_columns_for_sdk_resource("}],"source_content_type":"text/x-python","patch_set":9,"id":"1b43e123_eb2d3da0","line":31,"in_reply_to":"8f23fca9_73808702","updated":"2022-08-23 03:37:54.000000000","message":"Done","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bc8af7cdd1e39e037e892d9d31b66d962a3db50c","unresolved":true,"context_lines":[{"line_number":59,"context_line":"        parser.add_argument("},{"line_number":60,"context_line":"            \u0027--address\u0027,"},{"line_number":61,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":62,"context_line":"            help\u003d_(\"The ipv6 address of the port associated to the router \""},{"line_number":63,"context_line":"                   \"ndp proxy which NDP will be proxy\"))"},{"line_number":64,"context_line":"        parser.add_argument("},{"line_number":65,"context_line":"            \u0027--description\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"f08956c4_9a788454","line":62,"range":{"start_line":62,"start_character":24,"end_line":62,"end_character":28},"updated":"2022-08-20 19:37:17.000000000","message":"IPv6","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7353e63bff138f416666349f1ca2a0a41339fd7e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        parser.add_argument("},{"line_number":60,"context_line":"            \u0027--address\u0027,"},{"line_number":61,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":62,"context_line":"            help\u003d_(\"The ipv6 address of the port associated to the router \""},{"line_number":63,"context_line":"                   \"ndp proxy which NDP will be proxy\"))"},{"line_number":64,"context_line":"        parser.add_argument("},{"line_number":65,"context_line":"            \u0027--description\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"2c721f0c_94b1568b","line":62,"range":{"start_line":62,"start_character":24,"end_line":62,"end_character":28},"in_reply_to":"f08956c4_9a788454","updated":"2022-08-23 03:37:54.000000000","message":"Done","commit_id":"ea38a1bb3663c261d995516e1c7de3b4d53af882"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def _get_columns(item):"},{"line_number":30,"context_line":"    column_map \u003d {}"},{"line_number":31,"context_line":"    hidden_columns \u003d [\u0027location\u0027, \u0027tenant_id\u0027]"},{"line_number":32,"context_line":"    return utils.get_osc_show_columns_for_sdk_resource("},{"line_number":33,"context_line":"        item, column_map, hidden_columns)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"8badde09_edd1c191","line":31,"updated":"2022-08-23 11:51:34.000000000","message":"I don\u0027t think tenant_id should need to appear here, either.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def _get_columns(item):"},{"line_number":30,"context_line":"    column_map \u003d {}"},{"line_number":31,"context_line":"    hidden_columns \u003d [\u0027location\u0027, \u0027tenant_id\u0027]"},{"line_number":32,"context_line":"    return utils.get_osc_show_columns_for_sdk_resource("},{"line_number":33,"context_line":"        item, column_map, hidden_columns)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"a3c975c4_bcc2b15a","line":31,"in_reply_to":"8badde09_edd1c191","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        parser.add_argument("},{"line_number":47,"context_line":"            \u0027--router\u0027,"},{"line_number":48,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":49,"context_line":"            required\u003dTrue,"},{"line_number":50,"context_line":"            help\u003d_(\"The name or ID of a router\"))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--port\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"cf6b964f_a1c29547","line":49,"updated":"2022-08-23 11:51:34.000000000","message":"I\u0027m not sure about this, maybe a question to other OSC cores: Wouldn\u0027t it be better to make all required arguments positional?","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"01e1b77094c0fb6dff58a732dc113df06b2ba1f6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        parser.add_argument("},{"line_number":47,"context_line":"            \u0027--router\u0027,"},{"line_number":48,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":49,"context_line":"            required\u003dTrue,"},{"line_number":50,"context_line":"            help\u003d_(\"The name or ID of a router\"))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--port\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"e2c4459c_480c0e35","line":49,"in_reply_to":"5268dae4_7398202d","updated":"2022-08-24 09:37:46.000000000","message":"I was thinking about this idea quite long already. There are many cases where too many required params are required. Converting them all to positional will very quickly become a mess, therefore mostly as positionals we try to keep ID (of parent) and max name. There surely are further deviation from that statement, but that is my dicrection.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        parser.add_argument("},{"line_number":47,"context_line":"            \u0027--router\u0027,"},{"line_number":48,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":49,"context_line":"            required\u003dTrue,"},{"line_number":50,"context_line":"            help\u003d_(\"The name or ID of a router\"))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--port\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5268dae4_7398202d","line":49,"in_reply_to":"cf6b964f_a1c29547","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":54,"context_line":"            required\u003dTrue,"},{"line_number":55,"context_line":"            help\u003d_(\"The name or ID of the network port associated \""},{"line_number":56,"context_line":"                   \"to the router NDP proxy\"))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fff6530e_e92c3290","line":56,"updated":"2022-08-23 11:51:34.000000000","message":"can we drop \"router\" here? that sounds confusing to me.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":54,"context_line":"            required\u003dTrue,"},{"line_number":55,"context_line":"            help\u003d_(\"The name or ID of the network port associated \""},{"line_number":56,"context_line":"                   \"to the router NDP proxy\"))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"cb9d6073_880c08ad","line":56,"in_reply_to":"fff6530e_e92c3290","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":55,"context_line":"            help\u003d_(\"The name or ID of the network port associated \""},{"line_number":56,"context_line":"                   \"to the router NDP proxy\"))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":60,"context_line":"            help\u003d_(\"The IPv6 address of the port associated to the router \""},{"line_number":61,"context_line":"                   \"NDP proxy which NDP will be proxy\"))"}],"source_content_type":"text/x-python","patch_set":12,"id":"e829636c_d3599876","line":58,"updated":"2022-08-23 11:51:34.000000000","message":"Looking at this again, I think this option should be named \"--ip-address\" in order to be more in line with other commands and with the parameter name in the API.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            help\u003d_(\"The name or ID of the network port associated \""},{"line_number":56,"context_line":"                   \"to the router NDP proxy\"))"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":60,"context_line":"            help\u003d_(\"The IPv6 address of the port associated to the router \""},{"line_number":61,"context_line":"                   \"NDP proxy which NDP will be proxy\"))"}],"source_content_type":"text/x-python","patch_set":12,"id":"0c1599ae_ce7f9e62","line":58,"in_reply_to":"e829636c_d3599876","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":60,"context_line":"            help\u003d_(\"The IPv6 address of the port associated to the router \""},{"line_number":61,"context_line":"                   \"NDP proxy which NDP will be proxy\"))"},{"line_number":62,"context_line":"        parser.add_argument("},{"line_number":63,"context_line":"            \u0027--description\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"3311ee85_ec01fd70","line":61,"updated":"2022-08-23 11:51:34.000000000","message":"I had to check in the implementation to understand what this option actually does. Maybe change the wording to make it more explicit, like:\n\nThe IPv6 address that is to be proxied. In case the port has multiple addresses assigned, use this option to select which address is to be used.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":60,"context_line":"            help\u003d_(\"The IPv6 address of the port associated to the router \""},{"line_number":61,"context_line":"                   \"NDP proxy which NDP will be proxy\"))"},{"line_number":62,"context_line":"        parser.add_argument("},{"line_number":63,"context_line":"            \u0027--description\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"35c88849_158ddb52","line":61,"in_reply_to":"3311ee85_ec01fd70","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"01e1b77094c0fb6dff58a732dc113df06b2ba1f6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            \u0027--address\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003caddress\u003e\u0027,"},{"line_number":60,"context_line":"            help\u003d_(\"The IPv6 address of the port associated to the router \""},{"line_number":61,"context_line":"                   \"NDP proxy which NDP will be proxy\"))"},{"line_number":62,"context_line":"        parser.add_argument("},{"line_number":63,"context_line":"            \u0027--description\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"c7ad3e72_14c9483c","line":61,"in_reply_to":"35c88849_158ddb52","updated":"2022-08-24 09:37:46.000000000","message":"API describes it this way: \"The IPv6 address which the ndp proxy annunciate to external network.\" While it apparently has syntactical issue, this look like a short and relatively clear description.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":63,"context_line":"            \u0027--description\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":65,"context_line":"            help\u003d_(\"A text to describe/contextualize the use of the \""},{"line_number":66,"context_line":"                   \"port forwarding configuration\")"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        return parser"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"958b116c_d4cdafbc","line":66,"range":{"start_line":66,"start_character":20,"end_line":66,"end_character":35},"updated":"2022-08-23 11:51:34.000000000","message":"\"NDP proxy configuration\"","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \u0027--description\u0027,"},{"line_number":64,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":65,"context_line":"            help\u003d_(\"A text to describe/contextualize the use of the \""},{"line_number":66,"context_line":"                   \"port forwarding configuration\")"},{"line_number":67,"context_line":"        )"},{"line_number":68,"context_line":"        return parser"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"0d7a6f54_66b038e8","line":66,"range":{"start_line":66,"start_character":20,"end_line":66,"end_character":35},"in_reply_to":"958b116c_d4cdafbc","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":101,"context_line":"            \u0027ndp_proxy\u0027,"},{"line_number":102,"context_line":"            nargs\u003d\"+\","},{"line_number":103,"context_line":"            metavar\u003d\"\u003cndp-proxy\u003e\","},{"line_number":104,"context_line":"            help\u003d_(\"The ID or name of the NDP proxies to delete\")"},{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":"        return parser"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"da4af62d_d60f7697","line":104,"updated":"2022-08-23 11:51:34.000000000","message":"Maybe prefer the wording that e.g. \"network delete\" uses:\n\nNDP proxy(s) to delete (name or ID)\n\nOr maybe even \"NDP proxy/proxies\". Would need a native speaker to judge which looks better to them.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            \u0027ndp_proxy\u0027,"},{"line_number":102,"context_line":"            nargs\u003d\"+\","},{"line_number":103,"context_line":"            metavar\u003d\"\u003cndp-proxy\u003e\","},{"line_number":104,"context_line":"            help\u003d_(\"The ID or name of the NDP proxies to delete\")"},{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":"        return parser"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"90269b8b_3aff34cb","line":104,"in_reply_to":"da4af62d_d60f7697","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class ListNDPProxy(command.Lister):"},{"line_number":129,"context_line":"    _description \u003d _(\"List NDP proxy\")"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def get_parser(self, prog_name):"},{"line_number":132,"context_line":"        parser \u003d super(ListNDPProxy, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"b8dd8802_ac71d746","line":129,"range":{"start_line":129,"start_character":31,"end_line":129,"end_character":36},"updated":"2022-08-23 11:51:34.000000000","message":"proxies","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class ListNDPProxy(command.Lister):"},{"line_number":129,"context_line":"    _description \u003d _(\"List NDP proxy\")"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def get_parser(self, prog_name):"},{"line_number":132,"context_line":"        parser \u003d super(ListNDPProxy, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"d8d5b531_5566fd13","line":129,"range":{"start_line":129,"start_character":31,"end_line":129,"end_character":36},"in_reply_to":"b8dd8802_ac71d746","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            \u0027--router\u0027,"},{"line_number":135,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":136,"context_line":"            help\u003d_(\"Router that the NDP proxy belongs to \""},{"line_number":137,"context_line":"                   \"(Router name or ID)\")"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":"        parser.add_argument("},{"line_number":140,"context_line":"            \u0027--port\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"65eb2ebf_358e1d48","line":137,"updated":"2022-08-23 11:51:34.000000000","message":"I would suggest to copy the wording from e.g. \"port list\" here, too:\n\nList only NDP proxies associated to this router (name or ID)","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            \u0027--router\u0027,"},{"line_number":135,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":136,"context_line":"            help\u003d_(\"Router that the NDP proxy belongs to \""},{"line_number":137,"context_line":"                   \"(Router name or ID)\")"},{"line_number":138,"context_line":"        )"},{"line_number":139,"context_line":"        parser.add_argument("},{"line_number":140,"context_line":"            \u0027--port\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"f79a67ee_98891d40","line":137,"in_reply_to":"65eb2ebf_358e1d48","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":140,"context_line":"            \u0027--port\u0027,"},{"line_number":141,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":142,"context_line":"            help\u003d_(\"Filter the list result by the ID or name of \""},{"line_number":143,"context_line":"                   \"the internal network port\")"},{"line_number":144,"context_line":"        )"},{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--address\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"1b823533_8c8c5744","line":143,"updated":"2022-08-23 11:51:34.000000000","message":"dito","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            \u0027--port\u0027,"},{"line_number":141,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"},{"line_number":142,"context_line":"            help\u003d_(\"Filter the list result by the ID or name of \""},{"line_number":143,"context_line":"                   \"the internal network port\")"},{"line_number":144,"context_line":"        )"},{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--address\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"6b794679_247f1d5a","line":143,"in_reply_to":"1b823533_8c8c5744","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":143,"context_line":"                   \"the internal network port\")"},{"line_number":144,"context_line":"        )"},{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--address\u0027,"},{"line_number":147,"context_line":"            metavar\u003d\u0027address\u0027,"},{"line_number":148,"context_line":"            help\u003d_(\"Filter the list result by the port\u0027s IPv6 address\")"},{"line_number":149,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":12,"id":"e50ac922_be3799c1","line":146,"updated":"2022-08-23 11:51:34.000000000","message":"This should also be \"--ip-address\" like for create.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                   \"the internal network port\")"},{"line_number":144,"context_line":"        )"},{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--address\u0027,"},{"line_number":147,"context_line":"            metavar\u003d\u0027address\u0027,"},{"line_number":148,"context_line":"            help\u003d_(\"Filter the list result by the port\u0027s IPv6 address\")"},{"line_number":149,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":12,"id":"c5b3c0a0_98b6ce27","line":146,"in_reply_to":"e50ac922_be3799c1","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--address\u0027,"},{"line_number":147,"context_line":"            metavar\u003d\u0027address\u0027,"},{"line_number":148,"context_line":"            help\u003d_(\"Filter the list result by the port\u0027s IPv6 address\")"},{"line_number":149,"context_line":"        )"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":12,"id":"e840f10b_e39e633f","line":148,"updated":"2022-08-23 11:51:34.000000000","message":"same comment about the wording as for the other options. As the port can have multiple addresses, the text should rather refer to the proxies IP address, too.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        parser.add_argument("},{"line_number":146,"context_line":"            \u0027--address\u0027,"},{"line_number":147,"context_line":"            metavar\u003d\u0027address\u0027,"},{"line_number":148,"context_line":"            help\u003d_(\"Filter the list result by the port\u0027s IPv6 address\")"},{"line_number":149,"context_line":"        )"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":12,"id":"0a2995b9_bcef48b7","line":148,"in_reply_to":"e840f10b_e39e633f","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":147,"context_line":"            metavar\u003d\u0027address\u0027,"},{"line_number":148,"context_line":"            help\u003d_(\"Filter the list result by the port\u0027s IPv6 address\")"},{"line_number":149,"context_line":"        )"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return parser"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":12,"id":"585e7fa7_d50f5027","line":150,"updated":"2022-08-23 11:51:34.000000000","message":"Comparing with \"port list\" I think it should also be possible to list proxies by name and filtered by project.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            metavar\u003d\u0027address\u0027,"},{"line_number":148,"context_line":"            help\u003d_(\"Filter the list result by the port\u0027s IPv6 address\")"},{"line_number":149,"context_line":"        )"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return parser"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":12,"id":"f0cc5561_5d9e5d1e","line":150,"in_reply_to":"585e7fa7_d50f5027","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"class SetNDPProxy(command.Command):"},{"line_number":195,"context_line":"    _description \u003d _(\"Set NDP proxy Properties\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def get_parser(self, prog_name):"},{"line_number":198,"context_line":"        parser \u003d super(SetNDPProxy, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"91143192_f0dc5408","line":195,"range":{"start_line":195,"start_character":36,"end_line":195,"end_character":46},"updated":"2022-08-23 11:51:34.000000000","message":"nit: properties","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"class SetNDPProxy(command.Command):"},{"line_number":195,"context_line":"    _description \u003d _(\"Set NDP proxy Properties\")"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def get_parser(self, prog_name):"},{"line_number":198,"context_line":"        parser \u003d super(SetNDPProxy, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"05e17d6c_934b94d4","line":195,"range":{"start_line":195,"start_character":36,"end_line":195,"end_character":46},"in_reply_to":"91143192_f0dc5408","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":206,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":207,"context_line":"            help\u003d_(\"A text to describe/contextualize the use of \""},{"line_number":208,"context_line":"                   \"the NDP proxy configuration\")"},{"line_number":209,"context_line":"        )"},{"line_number":210,"context_line":"        return parser"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":12,"id":"f7a3ad11_98c7fba7","line":209,"updated":"2022-08-23 11:51:34.000000000","message":"Is it possible to update the name of a proxy, too? If yes, that option should be added here.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":false,"context_lines":[{"line_number":206,"context_line":"            metavar\u003d\u0027\u003cdescription\u003e\u0027,"},{"line_number":207,"context_line":"            help\u003d_(\"A text to describe/contextualize the use of \""},{"line_number":208,"context_line":"                   \"the NDP proxy configuration\")"},{"line_number":209,"context_line":"        )"},{"line_number":210,"context_line":"        return parser"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":12,"id":"1da03feb_5eac46c7","line":209,"in_reply_to":"f7a3ad11_98c7fba7","updated":"2022-08-24 06:40:38.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    _description \u003d _(\"Create NDP proxy\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_parser(self, prog_name):"},{"line_number":41,"context_line":"        parser \u003d super(CreateNDPProxy, self).get_parser(prog_name)"},{"line_number":42,"context_line":"        parser.add_argument("},{"line_number":43,"context_line":"            \u0027name\u0027,"},{"line_number":44,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"682a7d82_13a9e0d7","line":41,"range":{"start_line":41,"start_character":23,"end_line":41,"end_character":43},"updated":"2022-08-24 11:38:34.000000000","message":"nit: you don\u0027t need this since we only support Python 3\n\n  super().setUp()\n\nwould be sufficient. Here and elsewhere","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    _description \u003d _(\"Create NDP proxy\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def get_parser(self, prog_name):"},{"line_number":41,"context_line":"        parser \u003d super(CreateNDPProxy, self).get_parser(prog_name)"},{"line_number":42,"context_line":"        parser.add_argument("},{"line_number":43,"context_line":"            \u0027name\u0027,"},{"line_number":44,"context_line":"            metavar\u003d\u0027\u003cname\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"57274ef3_6204e2e0","line":41,"range":{"start_line":41,"start_character":23,"end_line":41,"end_character":43},"in_reply_to":"682a7d82_13a9e0d7","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        parser.add_argument("},{"line_number":48,"context_line":"            \u0027router\u0027,"},{"line_number":49,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\"The name or ID of a router\"))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--port\u0027,"},{"line_number":53,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"9a584be6_532af0a1","line":50,"updated":"2022-08-24 11:38:34.000000000","message":"I have a feeling these should be the other way around? The NDP proxy is a subresource of a router resource, yes? If so, the parent should go first:\n\n  openstack router ndp proxy create $ROUTER $NAME\n\nAlternatively, is \u0027name\u0027 required? If not, perhaps this should be an optional argument?\n\n  openstack router ndp proxy create --name $NAME ... $ROUTER","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        parser.add_argument("},{"line_number":48,"context_line":"            \u0027router\u0027,"},{"line_number":49,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\"The name or ID of a router\"))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--port\u0027,"},{"line_number":53,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"4e314404_ea339c55","line":50,"in_reply_to":"3e3924f6_af1c59ef","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5847b083d44ec236a97b0822321a35ffd56d7778","unresolved":true,"context_lines":[{"line_number":47,"context_line":"        parser.add_argument("},{"line_number":48,"context_line":"            \u0027router\u0027,"},{"line_number":49,"context_line":"            metavar\u003d\u0027\u003crouter\u003e\u0027,"},{"line_number":50,"context_line":"            help\u003d_(\"The name or ID of a router\"))"},{"line_number":51,"context_line":"        parser.add_argument("},{"line_number":52,"context_line":"            \u0027--port\u0027,"},{"line_number":53,"context_line":"            metavar\u003d\u0027\u003cport\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"3e3924f6_af1c59ef","line":50,"in_reply_to":"9a584be6_532af0a1","updated":"2022-08-24 12:02:54.000000000","message":"According to the API ref the name is indeed optional, so it shouldn\u0027t be required here.\n\nIn hindsight, it possibly should have been made an actual subresource of a router, but I even in the current version, it certainly is attached to the router more than to the port, since the implementation is happening in the l3-agent.\n\nSo all in all, I think the latter variant is what I would support.","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if parsed_args.description is not None:"},{"line_number":89,"context_line":"            attrs[\u0027description\u0027] \u003d parsed_args.description"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        obj \u003d client.create_ndp_proxy(**attrs)"},{"line_number":92,"context_line":"        display_columns, columns \u003d _get_columns(obj)"},{"line_number":93,"context_line":"        data \u003d utils.get_item_properties(obj, columns)"},{"line_number":94,"context_line":"        return (display_columns, data)"}],"source_content_type":"text/x-python","patch_set":15,"id":"4ed67699_a2df349e","line":91,"updated":"2022-08-24 11:38:34.000000000","message":"So this is using the SDK. This is important later in the test...","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}],"openstackclient/network/v2/router.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":406,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":407,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":408,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":409,"context_line":"                     \"to specify SNAT or fixed-ip values\"))"},{"line_number":410,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        display_columns, columns \u003d _get_columns(obj)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f20f4fe_6e227cac","line":409,"updated":"2022-08-23 11:51:34.000000000","message":"Need to copy this check, too?","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":true,"context_lines":[{"line_number":406,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":407,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":408,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":409,"context_line":"                     \"to specify SNAT or fixed-ip values\"))"},{"line_number":410,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        display_columns, columns \u003d _get_columns(obj)"}],"source_content_type":"text/x-python","patch_set":12,"id":"f605d50d_988c7df1","line":409,"in_reply_to":"3f20f4fe_6e227cac","updated":"2022-08-24 06:40:38.000000000","message":"Nope, \"enable/disable_ndp_proxy\" needn\u0027t check gateway, because they belong to router directly.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":406,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":407,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":408,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":409,"context_line":"                     \"to specify SNAT or fixed-ip values\"))"},{"line_number":410,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        display_columns, columns \u003d _get_columns(obj)"}],"source_content_type":"text/x-python","patch_set":12,"id":"24eb6408_ee4b158d","line":409,"in_reply_to":"e14dc341_a8515515","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5847b083d44ec236a97b0822321a35ffd56d7778","unresolved":true,"context_lines":[{"line_number":406,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":407,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":408,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":409,"context_line":"                     \"to specify SNAT or fixed-ip values\"))"},{"line_number":410,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        display_columns, columns \u003d _get_columns(obj)"}],"source_content_type":"text/x-python","patch_set":12,"id":"e14dc341_a8515515","line":409,"in_reply_to":"f605d50d_988c7df1","updated":"2022-08-24 12:02:54.000000000","message":"But you cannot enable ndp_proxy on a router that has no external gateway, see my other comment on this.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":801,"context_line":"                attrs[\u0027routes\u0027] +\u003d obj.routes"},{"line_number":802,"context_line":"        elif parsed_args.no_route:"},{"line_number":803,"context_line":"            attrs[\u0027routes\u0027] \u003d []"},{"line_number":804,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":805,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":806,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":807,"context_line":"                     \"to update the SNAT or fixed-ip or NDP Proxy values\"))"}],"source_content_type":"text/x-python","patch_set":12,"id":"d18473a0_a0329cee","line":804,"updated":"2022-08-23 11:51:34.000000000","message":"Also add parsed_args.enable/disable_ndp_proxy to this \"or\" set. Maybe use an intermediate variable to avoid making this statement unparseable (for humans).","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"e369683b5890980bcbb8f6c2fe8330a1a62c46aa","unresolved":false,"context_lines":[{"line_number":801,"context_line":"                attrs[\u0027routes\u0027] +\u003d obj.routes"},{"line_number":802,"context_line":"        elif parsed_args.no_route:"},{"line_number":803,"context_line":"            attrs[\u0027routes\u0027] \u003d []"},{"line_number":804,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":805,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":806,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":807,"context_line":"                     \"to update the SNAT or fixed-ip or NDP Proxy values\"))"}],"source_content_type":"text/x-python","patch_set":12,"id":"544332f0_77428e6a","line":804,"in_reply_to":"d18473a0_a0329cee","updated":"2022-08-25 11:22:37.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"3aba00b25c85fa2e6e52db4542e9b99cf4641a0c","unresolved":true,"context_lines":[{"line_number":804,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":805,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":806,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":807,"context_line":"                     \"to update the SNAT or fixed-ip or NDP Proxy values\"))"},{"line_number":808,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        if ((parsed_args.qos_policy or parsed_args.no_qos_policy) and"}],"source_content_type":"text/x-python","patch_set":12,"id":"c3b0c3fa_290dde36","line":807,"range":{"start_line":807,"start_character":60,"end_line":807,"end_character":65},"updated":"2022-08-23 11:51:34.000000000","message":"proxy\n\nActually it should be \"... fixed-ip values or NDP proxy settings.\" but maybe that is overdoing it. Or make a new \"if\" block specifically for NDP proxy? I think I\u0027d prefer the latter. There is a dedicated block for qos_policy already.\n\nAlso like for qos, you need to check whether the router already has an external gateway set. If that is the case, you can still update the NDP proxy setting without the \"--external-gateway\" option being present in the update command.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":804,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":805,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":806,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":807,"context_line":"                     \"to update the SNAT or fixed-ip or NDP Proxy values\"))"},{"line_number":808,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        if ((parsed_args.qos_policy or parsed_args.no_qos_policy) and"}],"source_content_type":"text/x-python","patch_set":12,"id":"93587903_626217c7","line":807,"range":{"start_line":807,"start_character":60,"end_line":807,"end_character":65},"in_reply_to":"6995e515_97a106f7","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5847b083d44ec236a97b0822321a35ffd56d7778","unresolved":true,"context_lines":[{"line_number":804,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":805,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":806,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":807,"context_line":"                     \"to update the SNAT or fixed-ip or NDP Proxy values\"))"},{"line_number":808,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        if ((parsed_args.qos_policy or parsed_args.no_qos_policy) and"}],"source_content_type":"text/x-python","patch_set":12,"id":"6995e515_97a106f7","line":807,"range":{"start_line":807,"start_character":60,"end_line":807,"end_character":65},"in_reply_to":"984b6b4c_497d1477","updated":"2022-08-24 12:02:54.000000000","message":"But doing \"router create router --enable-ndp-proxy\" without an external gateway will fail:\n\nConflictException: 409: Client Error for url: https://192.168.34.20:9696/networking/v2.0/routers, Can not enable ndp proxy on router cc50f91f-4c5b-4d82-924e-bd3705abbd03, The request body not contain external gateway information.\n\nThe idea is to check that condition already in the client and not send the failing request to the API.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0836d5030ec9a99aee18369ecafaed4ed4673e3d","unresolved":true,"context_lines":[{"line_number":804,"context_line":"        if (parsed_args.disable_snat or parsed_args.enable_snat or"},{"line_number":805,"context_line":"                parsed_args.fixed_ip) and not parsed_args.external_gateway:"},{"line_number":806,"context_line":"            msg \u003d (_(\"You must specify \u0027--external-gateway\u0027 in order \""},{"line_number":807,"context_line":"                     \"to update the SNAT or fixed-ip or NDP Proxy values\"))"},{"line_number":808,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":809,"context_line":""},{"line_number":810,"context_line":"        if ((parsed_args.qos_policy or parsed_args.no_qos_policy) and"}],"source_content_type":"text/x-python","patch_set":12,"id":"984b6b4c_497d1477","line":807,"range":{"start_line":807,"start_character":60,"end_line":807,"end_character":65},"in_reply_to":"c3b0c3fa_290dde36","updated":"2022-08-24 06:40:38.000000000","message":"Thanks, very carefulness!!! This is timeworn code\u0027s remains. At fist, the \"enable_ndp_proxy\" locate in router\u0027s \"external_gateway\". But now, it locate in router directly. So, we just need delete \"or NDP proxy\", don\u0027t need extra if block.","commit_id":"a934adb1ba5103d1909e70c6452ab1b7f69f20cb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":373,"context_line":"        ndp_proxy_group.add_argument("},{"line_number":374,"context_line":"            \u0027--enable-ndp-proxy\u0027,"},{"line_number":375,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":376,"context_line":"            help\u003d_(\"Enable IPv6 NDP proxy on external gateway\")"},{"line_number":377,"context_line":"        )"},{"line_number":378,"context_line":"        ndp_proxy_group.add_argument("},{"line_number":379,"context_line":"            \u0027--disable-ndp-proxy\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"31ace974_fa2d1e53","line":376,"updated":"2022-08-24 11:38:34.000000000","message":"Instead of doing things this way, you can use a common variable and store that. For example:\n\n  ndp_proxy_group.add_argument(\n      \u0027--enable-ndp-proxy\u0027,\n      dest\u003d\u0027enable_ndp_proxy\u0027,\n      default\u003dNone,\n      action\u003d\u0027store_true\u0027,\n      help\u003d_(\"Enable IPv6 NDP proxy on external gateway\"),\n  )\n  ndp_proxy_group.add_argument(\n      \u0027--disable-ndp-proxy\u0027,\n      dest\u003d\u0027enable_ndp_proxy\u0027,\n      default\u003dNone,\n      action\u003d\u0027store_false\u0027,\n      help\u003d_(\"Disable IPv6 NDP proxy on external gateway\"),\n  )","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":373,"context_line":"        ndp_proxy_group.add_argument("},{"line_number":374,"context_line":"            \u0027--enable-ndp-proxy\u0027,"},{"line_number":375,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":376,"context_line":"            help\u003d_(\"Enable IPv6 NDP proxy on external gateway\")"},{"line_number":377,"context_line":"        )"},{"line_number":378,"context_line":"        ndp_proxy_group.add_argument("},{"line_number":379,"context_line":"            \u0027--disable-ndp-proxy\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"40b1771d_a6ffaa9e","line":376,"in_reply_to":"31ace974_fa2d1e53","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":397,"context_line":"        if parsed_args.disable_ndp_proxy:"},{"line_number":398,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d False"},{"line_number":399,"context_line":"        if parsed_args.enable_ndp_proxy:"},{"line_number":400,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d True"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        obj \u003d client.create_router(**attrs)"},{"line_number":403,"context_line":"        # tags cannot be set when created, so tags need to be set later."}],"source_content_type":"text/x-python","patch_set":15,"id":"b7d52a8d_1abdab6c","line":400,"updated":"2022-08-24 11:38:34.000000000","message":"...and then here you can simply do:\n\n  if parsed_args.enable_ndp_proxy is not None:\n      attrs[\u0027enable_ndp_proxy\u0027] \u003d parsed_args.enable_ndp_proxy","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"50891e380a25b8f014a044fb16e7521ef60d9205","unresolved":true,"context_lines":[{"line_number":397,"context_line":"        if parsed_args.disable_ndp_proxy:"},{"line_number":398,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d False"},{"line_number":399,"context_line":"        if parsed_args.enable_ndp_proxy:"},{"line_number":400,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d True"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        obj \u003d client.create_router(**attrs)"},{"line_number":403,"context_line":"        # tags cannot be set when created, so tags need to be set later."}],"source_content_type":"text/x-python","patch_set":15,"id":"dc7849ce_825f197f","line":400,"in_reply_to":"2c2e29ea_a29f7d36","updated":"2022-08-24 15:56:51.000000000","message":"Yeah, we use it pretty extensively in the nova commands. Search for \u0027dest\u003d\u0027. You\u0027ll have a few false positives but eventually find examples like this one [1]\n\n[1] https://github.com/openstack/python-openstackclient/blob/27b2496e03ceb95b56b3b1b68a57058fe90251b5/openstackclient/compute/v2/server.py#L1156-L1168","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5847b083d44ec236a97b0822321a35ffd56d7778","unresolved":true,"context_lines":[{"line_number":397,"context_line":"        if parsed_args.disable_ndp_proxy:"},{"line_number":398,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d False"},{"line_number":399,"context_line":"        if parsed_args.enable_ndp_proxy:"},{"line_number":400,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d True"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        obj \u003d client.create_router(**attrs)"},{"line_number":403,"context_line":"        # tags cannot be set when created, so tags need to be set later."}],"source_content_type":"text/x-python","patch_set":15,"id":"2c2e29ea_a29f7d36","line":400,"in_reply_to":"b7d52a8d_1abdab6c","updated":"2022-08-24 12:02:54.000000000","message":"Hmm, I like that idea, do we use that variant somewhere? I have seen the current more explicit variant in a couple of other places before.","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        if parsed_args.disable_ndp_proxy:"},{"line_number":398,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d False"},{"line_number":399,"context_line":"        if parsed_args.enable_ndp_proxy:"},{"line_number":400,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d True"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"        obj \u003d client.create_router(**attrs)"},{"line_number":403,"context_line":"        # tags cannot be set when created, so tags need to be set later."}],"source_content_type":"text/x-python","patch_set":15,"id":"8181146d_98623c69","line":400,"in_reply_to":"dc7849ce_825f197f","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":763,"context_line":"            \u0027--disable-ndp-proxy\u0027,"},{"line_number":764,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":765,"context_line":"            help\u003d_(\"Disable IPv6 NDP proxy on external gateway\")"},{"line_number":766,"context_line":"        )"},{"line_number":767,"context_line":"        qos_policy_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":768,"context_line":"        qos_policy_group.add_argument("},{"line_number":769,"context_line":"            \u0027--qos-policy\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a7404d1_93252dbf","line":766,"updated":"2022-08-24 11:38:34.000000000","message":"ditto","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"e369683b5890980bcbb8f6c2fe8330a1a62c46aa","unresolved":false,"context_lines":[{"line_number":763,"context_line":"            \u0027--disable-ndp-proxy\u0027,"},{"line_number":764,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":765,"context_line":"            help\u003d_(\"Disable IPv6 NDP proxy on external gateway\")"},{"line_number":766,"context_line":"        )"},{"line_number":767,"context_line":"        qos_policy_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":768,"context_line":"        qos_policy_group.add_argument("},{"line_number":769,"context_line":"            \u0027--qos-policy\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"ffa2f0a5_e046bac8","line":766,"in_reply_to":"1a7404d1_93252dbf","updated":"2022-08-25 11:22:37.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":834,"context_line":"        if parsed_args.disable_ndp_proxy:"},{"line_number":835,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d False"},{"line_number":836,"context_line":"        if parsed_args.enable_ndp_proxy:"},{"line_number":837,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d True"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"        if attrs:"},{"line_number":840,"context_line":"            client.update_router(obj, **attrs)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9597036a_c4ad70e2","line":837,"updated":"2022-08-24 11:38:34.000000000","message":"ditto","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":834,"context_line":"        if parsed_args.disable_ndp_proxy:"},{"line_number":835,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d False"},{"line_number":836,"context_line":"        if parsed_args.enable_ndp_proxy:"},{"line_number":837,"context_line":"            attrs[\u0027enable_ndp_proxy\u0027] \u003d True"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"        if attrs:"},{"line_number":840,"context_line":"            client.update_router(obj, **attrs)"}],"source_content_type":"text/x-python","patch_set":15,"id":"341bcdfe_50002554","line":837,"in_reply_to":"9597036a_c4ad70e2","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}],"openstackclient/tests/functional/network/v2/test_network_ndp_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":19,"context_line":"class L3NDPProxyTests(common.NetworkTests):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(L3NDPProxyTests, self).setUp()"},{"line_number":23,"context_line":"        # Nothing in this class works with Nova Network"},{"line_number":24,"context_line":"        if not self.haz_network:"},{"line_number":25,"context_line":"            self.skipTest(\"No Network service present\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"13ebb3d0_5c9486ff","line":22,"range":{"start_line":22,"start_character":14,"end_line":22,"end_character":35},"updated":"2022-08-24 11:38:34.000000000","message":"nit: you don\u0027t need this since we only support Python 3\n\n  super().setUp()\n\nwould be sufficient. Here and elsewhere","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class L3NDPProxyTests(common.NetworkTests):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(L3NDPProxyTests, self).setUp()"},{"line_number":23,"context_line":"        # Nothing in this class works with Nova Network"},{"line_number":24,"context_line":"        if not self.haz_network:"},{"line_number":25,"context_line":"            self.skipTest(\"No Network service present\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"a0e05415_673cc794","line":22,"range":{"start_line":22,"start_character":14,"end_line":22,"end_character":35},"in_reply_to":"13ebb3d0_5c9486ff","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}],"openstackclient/tests/unit/network/v2/fakes.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":2085,"context_line":"    \"\"\"\"Fake one or more NDP proxy\"\"\""},{"line_number":2086,"context_line":""},{"line_number":2087,"context_line":"    @staticmethod"},{"line_number":2088,"context_line":"    def create_one_ndp_proxy(attrs\u003dNone):"},{"line_number":2089,"context_line":"        \"\"\"Create a fake NDP proxy."},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"        :param Dictionary attrs:"}],"source_content_type":"text/x-python","patch_set":15,"id":"c6bd75a7_d77bae3e","line":2088,"updated":"2022-08-24 11:38:34.000000000","message":"Rather than embedding this in a class, can you just create functions? So this would like:\n\n  def create_one_ndp_proxy(attrs\u003dNone):\n      \"\"\"Create a fake NDP proxy\n      \n      :param Dictionary attrs:\n          A dictionary with all attributes\n      :return:\n          A FakeResource object with router_id, port_id, etc.\n      \"\"\"\n      ...\n\nSee https://review.opendev.org/c/openstack/python-openstackclient/+/839936 for an example","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":2085,"context_line":"    \"\"\"\"Fake one or more NDP proxy\"\"\""},{"line_number":2086,"context_line":""},{"line_number":2087,"context_line":"    @staticmethod"},{"line_number":2088,"context_line":"    def create_one_ndp_proxy(attrs\u003dNone):"},{"line_number":2089,"context_line":"        \"\"\"Create a fake NDP proxy."},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"        :param Dictionary attrs:"}],"source_content_type":"text/x-python","patch_set":15,"id":"dc4cfccd_1ffd79d3","line":2088,"in_reply_to":"c6bd75a7_d77bae3e","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":2115,"context_line":"        # Overwrite default attributes."},{"line_number":2116,"context_line":"        np_attrs.update(attrs)"},{"line_number":2117,"context_line":""},{"line_number":2118,"context_line":"        np \u003d fakes.FakeResource("},{"line_number":2119,"context_line":"            info\u003dcopy.deepcopy(np_attrs),"},{"line_number":2120,"context_line":"            loaded\u003dTrue"},{"line_number":2121,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":15,"id":"376e91ab_dd18ce97","line":2118,"updated":"2022-08-24 11:38:34.000000000","message":"You shouldn\u0027t be creating FakeResource objects since we\u0027re using openstacksdk here, not neutronclient. Create instances of \u0027openstack.network.v2.ndp_proxy.NDPProxy\u0027 instead.","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":2115,"context_line":"        # Overwrite default attributes."},{"line_number":2116,"context_line":"        np_attrs.update(attrs)"},{"line_number":2117,"context_line":""},{"line_number":2118,"context_line":"        np \u003d fakes.FakeResource("},{"line_number":2119,"context_line":"            info\u003dcopy.deepcopy(np_attrs),"},{"line_number":2120,"context_line":"            loaded\u003dTrue"},{"line_number":2121,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":15,"id":"e089911d_1d9549f2","line":2118,"in_reply_to":"376e91ab_dd18ce97","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}],"openstackclient/tests/unit/network/v2/test_ndp_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":25,"context_line":"class TestNDPProxy(network_fakes.TestNetworkV2):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super(TestNDPProxy, self).setUp()"},{"line_number":29,"context_line":"        # Get a shortcut to the ProjectManager Mock"},{"line_number":30,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":31,"context_line":"        # Get a shortcut to the DomainManager Mock"}],"source_content_type":"text/x-python","patch_set":15,"id":"51d4a5d2_875d300d","line":28,"range":{"start_line":28,"start_character":14,"end_line":28,"end_character":32},"updated":"2022-08-24 11:38:34.000000000","message":"nit: you don\u0027t need this since we only support Python 3\n\n  super().setUp()\n\nwould be sufficient. Here and elsewhere","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class TestNDPProxy(network_fakes.TestNetworkV2):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def setUp(self):"},{"line_number":28,"context_line":"        super(TestNDPProxy, self).setUp()"},{"line_number":29,"context_line":"        # Get a shortcut to the ProjectManager Mock"},{"line_number":30,"context_line":"        self.projects_mock \u003d self.app.client_manager.identity.projects"},{"line_number":31,"context_line":"        # Get a shortcut to the DomainManager Mock"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f372847_5e8b9894","line":28,"range":{"start_line":28,"start_character":14,"end_line":28,"end_character":32},"in_reply_to":"51d4a5d2_875d300d","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}],"releasenotes/notes/network-ndp-proxy-cli-19afc530fc7061e2.yaml":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8576ba0b4f64c3aa0bf4600401bfc1f8e0da2afa","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add new commands ``network ndp proxy create``, ``network ndp proxy set``,"},{"line_number":5,"context_line":"    ``network ndp proxy show``, ``network ndp proxy set`` and"},{"line_number":6,"context_line":"    ``network ndp proxy delete`` to support Neutron NDP proxy CRUD operations."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"15776762_d751b23f","line":5,"range":{"start_line":5,"start_character":34,"end_line":5,"end_character":55},"updated":"2022-04-07 09:40:34.000000000","message":"duplication\nPerhaps mention that router ha new param from create and set : --enable-ndp-proxy and --disable-ndp-proxy","commit_id":"e70881326d7d23c12c4bbbe282ed4fbcf55af569"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"a1670f0cb925233486fd3ddea26b6400be0062c6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add new commands ``network ndp proxy create``, ``network ndp proxy set``,"},{"line_number":5,"context_line":"    ``network ndp proxy show``, ``network ndp proxy set`` and"},{"line_number":6,"context_line":"    ``network ndp proxy delete`` to support Neutron NDP proxy CRUD operations."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9f4ca26a_6b0b010e","line":5,"range":{"start_line":5,"start_character":34,"end_line":5,"end_character":55},"in_reply_to":"15776762_d751b23f","updated":"2022-05-14 08:14:37.000000000","message":"Done","commit_id":"e70881326d7d23c12c4bbbe282ed4fbcf55af569"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5371b4acaa1f031876a309d0c192900d02d0b2f7","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add new commands ``router ndp proxy create``, ``router ndp proxy set``,"},{"line_number":5,"context_line":"    ``router ndp proxy show``, ``router ndp proxy set`` and"},{"line_number":6,"context_line":"    ``router ndp proxy delete`` to support Neutron NDP proxy CRUD operations."},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Add new options ``--enable-ndp-proxy`` and ``--disable-ndp-proxy`` to"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"04be82fb_9c7cb30b","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":53},"updated":"2022-08-25 12:49:56.000000000","message":"this one is listed twice","commit_id":"986efb198c843bd7409ecb47c1c033aec8374160"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6880c8ad079786552c060fe29976297c387610d4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add new commands ``router ndp proxy create``, ``router ndp proxy set``,"},{"line_number":5,"context_line":"    ``router ndp proxy show``, ``router ndp proxy set`` and"},{"line_number":6,"context_line":"    ``router ndp proxy delete`` to support Neutron NDP proxy CRUD operations."},{"line_number":7,"context_line":"  - |"},{"line_number":8,"context_line":"    Add new options ``--enable-ndp-proxy`` and ``--disable-ndp-proxy`` to"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"7db7ec44_5b7fa400","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":53},"in_reply_to":"04be82fb_9c7cb30b","updated":"2022-08-26 00:16:49.000000000","message":"Done","commit_id":"986efb198c843bd7409ecb47c1c033aec8374160"}],"setup.cfg":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8e15c0daa036eaaf25f500ae8e8903e1d5aac81","unresolved":true,"context_lines":[{"line_number":529,"context_line":"    router_show \u003d openstackclient.network.v2.router:ShowRouter"},{"line_number":530,"context_line":"    router_unset \u003d openstackclient.network.v2.router:UnsetRouter"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    network_ndp_proxy_create \u003d openstackclient.network.v2.ndp_proxy:CreateNDPProxy"},{"line_number":533,"context_line":"    network_ndp_proxy_delete \u003d openstackclient.network.v2.ndp_proxy:DeleteNDPProxy"},{"line_number":534,"context_line":"    network_ndp_proxy_list \u003d openstackclient.network.v2.ndp_proxy:ListNDPProxy"},{"line_number":535,"context_line":"    network_ndp_proxy_set \u003d openstackclient.network.v2.ndp_proxy:SetNDPProxy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"88b996e5_76bfacab","line":532,"range":{"start_line":532,"start_character":4,"end_line":532,"end_character":29},"updated":"2022-08-24 11:38:34.000000000","message":"Why are these called\n\n  network ndp proxy\n\nand not simply\n\n  ndp proxy\n\nor even\n\n  router ndp proxy\n\nThey\u0027re not attributes of a network, right?","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d87c79fb1543a5c46cdc96427b44b831c7f070e5","unresolved":true,"context_lines":[{"line_number":529,"context_line":"    router_show \u003d openstackclient.network.v2.router:ShowRouter"},{"line_number":530,"context_line":"    router_unset \u003d openstackclient.network.v2.router:UnsetRouter"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    network_ndp_proxy_create \u003d openstackclient.network.v2.ndp_proxy:CreateNDPProxy"},{"line_number":533,"context_line":"    network_ndp_proxy_delete \u003d openstackclient.network.v2.ndp_proxy:DeleteNDPProxy"},{"line_number":534,"context_line":"    network_ndp_proxy_list \u003d openstackclient.network.v2.ndp_proxy:ListNDPProxy"},{"line_number":535,"context_line":"    network_ndp_proxy_set \u003d openstackclient.network.v2.ndp_proxy:SetNDPProxy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"b98fe389_720c3e6f","line":532,"range":{"start_line":532,"start_character":4,"end_line":532,"end_character":29},"in_reply_to":"88b996e5_76bfacab","updated":"2022-08-24 11:40:57.000000000","message":"Looking back, I see you originally called this \u0027router ndp proxy\u0027 in PS1, changed this to \u0027ndp proxy\u0027 in PS2, and settled on this in PS3. If there was a good reason for this then it would be helpful to include that information in the commit message.","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1ae19a72a58664fcebbf08e09fae9195a874070","unresolved":false,"context_lines":[{"line_number":529,"context_line":"    router_show \u003d openstackclient.network.v2.router:ShowRouter"},{"line_number":530,"context_line":"    router_unset \u003d openstackclient.network.v2.router:UnsetRouter"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    network_ndp_proxy_create \u003d openstackclient.network.v2.ndp_proxy:CreateNDPProxy"},{"line_number":533,"context_line":"    network_ndp_proxy_delete \u003d openstackclient.network.v2.ndp_proxy:DeleteNDPProxy"},{"line_number":534,"context_line":"    network_ndp_proxy_list \u003d openstackclient.network.v2.ndp_proxy:ListNDPProxy"},{"line_number":535,"context_line":"    network_ndp_proxy_set \u003d openstackclient.network.v2.ndp_proxy:SetNDPProxy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"ebf345c5_85abe5e4","line":532,"range":{"start_line":532,"start_character":4,"end_line":532,"end_character":29},"in_reply_to":"a045268d_9962fdd0","updated":"2022-08-25 11:19:33.000000000","message":"Done","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"5847b083d44ec236a97b0822321a35ffd56d7778","unresolved":true,"context_lines":[{"line_number":529,"context_line":"    router_show \u003d openstackclient.network.v2.router:ShowRouter"},{"line_number":530,"context_line":"    router_unset \u003d openstackclient.network.v2.router:UnsetRouter"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    network_ndp_proxy_create \u003d openstackclient.network.v2.ndp_proxy:CreateNDPProxy"},{"line_number":533,"context_line":"    network_ndp_proxy_delete \u003d openstackclient.network.v2.ndp_proxy:DeleteNDPProxy"},{"line_number":534,"context_line":"    network_ndp_proxy_list \u003d openstackclient.network.v2.ndp_proxy:ListNDPProxy"},{"line_number":535,"context_line":"    network_ndp_proxy_set \u003d openstackclient.network.v2.ndp_proxy:SetNDPProxy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"3384c4cc_c6a8cf0e","line":532,"range":{"start_line":532,"start_character":4,"end_line":532,"end_character":29},"in_reply_to":"b98fe389_720c3e6f","updated":"2022-08-24 12:02:54.000000000","message":"It seems that this matches what was done for other recent Neutron additions, like \"network qos\" or \"network rbac\". However, since in the API ref the feature is listed as \"Router NDP proxy\" https://docs.openstack.org/api-ref/network/v2/index.html?expanded\u003dcreate-ndp-proxy-detail#router-ndp-proxy-ndp-proxies , I actually agree that \"router ndp proxy\" would seem to fit best.\n\nIf there is a reason to go with \"network ndp *\" instead, this block would need to be moved upwards to keep alphabetic ordering.","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"58f4520453202950a6e00ea87905c1ffce5044e4","unresolved":true,"context_lines":[{"line_number":529,"context_line":"    router_show \u003d openstackclient.network.v2.router:ShowRouter"},{"line_number":530,"context_line":"    router_unset \u003d openstackclient.network.v2.router:UnsetRouter"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    network_ndp_proxy_create \u003d openstackclient.network.v2.ndp_proxy:CreateNDPProxy"},{"line_number":533,"context_line":"    network_ndp_proxy_delete \u003d openstackclient.network.v2.ndp_proxy:DeleteNDPProxy"},{"line_number":534,"context_line":"    network_ndp_proxy_list \u003d openstackclient.network.v2.ndp_proxy:ListNDPProxy"},{"line_number":535,"context_line":"    network_ndp_proxy_set \u003d openstackclient.network.v2.ndp_proxy:SetNDPProxy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"ebdf4423_c9533555","line":532,"range":{"start_line":532,"start_character":4,"end_line":532,"end_character":29},"in_reply_to":"b98fe389_720c3e6f","updated":"2022-08-24 12:17:39.000000000","message":"The \u0027ndp proxy\u0027 is a network feature. I am inspired by \"network agent xx\", \" network flavor xx\", you can find similar command by execute \"openstack --help|grep network\". Myabe it can be designed as \"network l3 ndp proxy xxx\", just like \" network l3 conntrack helper xxx\"","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"50891e380a25b8f014a044fb16e7521ef60d9205","unresolved":true,"context_lines":[{"line_number":529,"context_line":"    router_show \u003d openstackclient.network.v2.router:ShowRouter"},{"line_number":530,"context_line":"    router_unset \u003d openstackclient.network.v2.router:UnsetRouter"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"    network_ndp_proxy_create \u003d openstackclient.network.v2.ndp_proxy:CreateNDPProxy"},{"line_number":533,"context_line":"    network_ndp_proxy_delete \u003d openstackclient.network.v2.ndp_proxy:DeleteNDPProxy"},{"line_number":534,"context_line":"    network_ndp_proxy_list \u003d openstackclient.network.v2.ndp_proxy:ListNDPProxy"},{"line_number":535,"context_line":"    network_ndp_proxy_set \u003d openstackclient.network.v2.ndp_proxy:SetNDPProxy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":15,"id":"a045268d_9962fdd0","line":532,"range":{"start_line":532,"start_character":4,"end_line":532,"end_character":29},"in_reply_to":"ebdf4423_c9533555","updated":"2022-08-24 15:56:51.000000000","message":"Unfortunately network can refer to two things here, the network service (i.e. neutron) and the network resource (i.e. an instance of a neutron network). In the two examples you gave, both refer to the network service and they are necessary to distinguish from e.g. compute agents and compute flavors. However, I don\u0027t think that\u0027s necessary here since NDP proxies don\u0027t make sense in any other context. It\u0027s also not a network subresource so we don\u0027t want to do that.\n\n\u0027router ndp proxy\u0027 is probably the best option here, I think?","commit_id":"c21d963ada97f901d39cb86e7fb6a55476da67a6"}]}
