)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3236ce1ce6eaf1e14ccbd4e98fe7e1460e4ed346","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"69b42a1c_bfac702f","updated":"2021-10-11 12:47:44.000000000","message":"Hey, the requested changes are in the latest patch set.","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"69fc3a939587560c9bdac1d133a7d59da0cad7db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"75d88840_107afc60","updated":"2021-10-15 07:17:14.000000000","message":"The unit tests can be updated, see comments inline. And consider to add unit test in tests/unit/extensions/test_vpnaas.py\nYou can add a release note for this feature.","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2aa3172b2a5d5fa579a2d01008dfff8f350ad6de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f7ca9a96_4ac984c2","updated":"2021-10-14 15:25:30.000000000","message":"recheck","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3b404da7d2132f27127f32641f0b75206b6fdd88","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6245397d_e4c85b74","in_reply_to":"75d88840_107afc60","updated":"2021-10-25 09:57:05.000000000","message":"Releae notes are added in the newest patchset","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3b404da7d2132f27127f32641f0b75206b6fdd88","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4ad46bf4_9d95ac11","updated":"2021-10-25 09:57:05.000000000","message":"The requested changes are added to the newest patchset. ","commit_id":"a51b213eac3c1f996076cc1e9b0f7a3299e88cee"},{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"be0e658cb930a70c8501618e28673a106e67d033","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"bed25d61_83c97453","updated":"2021-11-04 08:12:43.000000000","message":"lgtm otherwise","commit_id":"a51b213eac3c1f996076cc1e9b0f7a3299e88cee"}],"neutron_vpnaas/db/vpn/vpn_models.py":[{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"0e774d1ba075cfaadfe0f6c40a0eb329c7112fe9","unresolved":true,"context_lines":[{"line_number":58,"context_line":"                                       name\u003d\"vpn_lifetime_units\"),"},{"line_number":59,"context_line":"                               nullable\u003dFalse)"},{"line_number":60,"context_line":"    lifetime_value \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":61,"context_line":"    pfs \u003d sa.Column(sa.Enum(\"group2\", \"group5\", \"group14\", \u0027group15\u0027,"},{"line_number":62,"context_line":"        \u0027group16\u0027, \u0027group17\u0027, \u0027group18\u0027, \u0027group19\u0027, \u0027group20\u0027, \u0027group21\u0027,"},{"line_number":63,"context_line":"        \u0027group22\u0027, \u0027group23\u0027, \u0027group24\u0027, \u0027group25\u0027, \u0027group26\u0027, \u0027group27\u0027,"},{"line_number":64,"context_line":"        \u0027group28\u0027, \u0027group29\u0027, \u0027group30\u0027, \u0027group31\u0027, name\u003d\"vpn_pfs\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f889fd0_3bb28fa9","line":61,"updated":"2021-08-01 12:08:57.000000000","message":"If you wants to change database column, you should add db migrations. In Neutron, we use Alembic Migrations, please refer: https://docs.openstack.org/neutron/latest/contributor/alembic_migrations.html.","commit_id":"a4db33aff0edd8589c714feb766437625608c0df"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3236ce1ce6eaf1e14ccbd4e98fe7e1460e4ed346","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                                       name\u003d\"vpn_lifetime_units\"),"},{"line_number":59,"context_line":"                               nullable\u003dFalse)"},{"line_number":60,"context_line":"    lifetime_value \u003d sa.Column(sa.Integer, nullable\u003dFalse)"},{"line_number":61,"context_line":"    pfs \u003d sa.Column(sa.Enum(\"group2\", \"group5\", \"group14\", \u0027group15\u0027,"},{"line_number":62,"context_line":"        \u0027group16\u0027, \u0027group17\u0027, \u0027group18\u0027, \u0027group19\u0027, \u0027group20\u0027, \u0027group21\u0027,"},{"line_number":63,"context_line":"        \u0027group22\u0027, \u0027group23\u0027, \u0027group24\u0027, \u0027group25\u0027, \u0027group26\u0027, \u0027group27\u0027,"},{"line_number":64,"context_line":"        \u0027group28\u0027, \u0027group29\u0027, \u0027group30\u0027, \u0027group31\u0027, name\u003d\"vpn_pfs\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"976297d8_7de2d787","line":61,"in_reply_to":"3f889fd0_3bb28fa9","updated":"2021-10-11 12:47:44.000000000","message":"Done","commit_id":"a4db33aff0edd8589c714feb766437625608c0df"}],"neutron_vpnaas/services/vpn/device_drivers/ipsec.py":[{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"69fc3a939587560c9bdac1d133a7d59da0cad7db","unresolved":true,"context_lines":[{"line_number":170,"context_line":"        \"group5\": \"modp1536\","},{"line_number":171,"context_line":"        \"group14\": \"modp2048\","},{"line_number":172,"context_line":"        \"group15\": \"modp3072\","},{"line_number":173,"context_line":"        \"group16\": \"modp4096\","},{"line_number":174,"context_line":"        \"group17\": \"modp6144\","},{"line_number":175,"context_line":"        \"group18\": \"modp8192\","},{"line_number":176,"context_line":"        \"group19\": \"ecp256\","},{"line_number":177,"context_line":"        \"group20\": \"ecp384\","},{"line_number":178,"context_line":"        \"group21\": \"ecp521\","},{"line_number":179,"context_line":"        \"group22\": \"modp1024s160\","},{"line_number":180,"context_line":"        \"group23\": \"modp2048s224\","},{"line_number":181,"context_line":"        \"group24\": \"modp2048s256\","},{"line_number":182,"context_line":"        \"group25\": \"ecp192\","},{"line_number":183,"context_line":"        \"group26\": \"ecp224\","},{"line_number":184,"context_line":"        \"group27\": \"ecp224bp\","},{"line_number":185,"context_line":"        \"group28\": \"ecp256bp\","},{"line_number":186,"context_line":"        \"group29\": \"ecp384bp\","},{"line_number":187,"context_line":"        \"group30\": \"ecp512bp\","},{"line_number":188,"context_line":"        \"group31\": \"curve25519\","},{"line_number":189,"context_line":"        \"bi-directional\": \"start\","},{"line_number":190,"context_line":"        \"response-only\": \"add\","},{"line_number":191,"context_line":"        \"v2\": \"insist\","}],"source_content_type":"text/x-python","patch_set":5,"id":"837f9b18_a6f40034","line":188,"range":{"start_line":173,"start_character":8,"end_line":188,"end_character":32},"updated":"2021-10-15 07:17:14.000000000","message":"Could you help to confirm that libreswan support these PFS?","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3b404da7d2132f27127f32641f0b75206b6fdd88","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        \"group5\": \"modp1536\","},{"line_number":171,"context_line":"        \"group14\": \"modp2048\","},{"line_number":172,"context_line":"        \"group15\": \"modp3072\","},{"line_number":173,"context_line":"        \"group16\": \"modp4096\","},{"line_number":174,"context_line":"        \"group17\": \"modp6144\","},{"line_number":175,"context_line":"        \"group18\": \"modp8192\","},{"line_number":176,"context_line":"        \"group19\": \"ecp256\","},{"line_number":177,"context_line":"        \"group20\": \"ecp384\","},{"line_number":178,"context_line":"        \"group21\": \"ecp521\","},{"line_number":179,"context_line":"        \"group22\": \"modp1024s160\","},{"line_number":180,"context_line":"        \"group23\": \"modp2048s224\","},{"line_number":181,"context_line":"        \"group24\": \"modp2048s256\","},{"line_number":182,"context_line":"        \"group25\": \"ecp192\","},{"line_number":183,"context_line":"        \"group26\": \"ecp224\","},{"line_number":184,"context_line":"        \"group27\": \"ecp224bp\","},{"line_number":185,"context_line":"        \"group28\": \"ecp256bp\","},{"line_number":186,"context_line":"        \"group29\": \"ecp384bp\","},{"line_number":187,"context_line":"        \"group30\": \"ecp512bp\","},{"line_number":188,"context_line":"        \"group31\": \"curve25519\","},{"line_number":189,"context_line":"        \"bi-directional\": \"start\","},{"line_number":190,"context_line":"        \"response-only\": \"add\","},{"line_number":191,"context_line":"        \"v2\": \"insist\","}],"source_content_type":"text/x-python","patch_set":5,"id":"b75944ca_2c84d0e7","line":188,"range":{"start_line":173,"start_character":8,"end_line":188,"end_character":32},"in_reply_to":"837f9b18_a6f40034","updated":"2021-10-25 09:57:05.000000000","message":"Supported groups/algorithms for: \nikev1 - https://wiki.strongswan.org/projects/strongswan/wiki/IKEv1CipherSuites\nikev2 - https://wiki.strongswan.org/projects/strongswan/wiki/IKEv2CipherSuites","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"30a612553991cb0e89c0abf7095fea670b7bcb2a","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        \"group5\": \"modp1536\","},{"line_number":171,"context_line":"        \"group14\": \"modp2048\","},{"line_number":172,"context_line":"        \"group15\": \"modp3072\","},{"line_number":173,"context_line":"        \"group16\": \"modp4096\","},{"line_number":174,"context_line":"        \"group17\": \"modp6144\","},{"line_number":175,"context_line":"        \"group18\": \"modp8192\","},{"line_number":176,"context_line":"        \"group19\": \"ecp256\","},{"line_number":177,"context_line":"        \"group20\": \"ecp384\","},{"line_number":178,"context_line":"        \"group21\": \"ecp521\","},{"line_number":179,"context_line":"        \"group22\": \"modp1024s160\","},{"line_number":180,"context_line":"        \"group23\": \"modp2048s224\","},{"line_number":181,"context_line":"        \"group24\": \"modp2048s256\","},{"line_number":182,"context_line":"        \"group25\": \"ecp192\","},{"line_number":183,"context_line":"        \"group26\": \"ecp224\","},{"line_number":184,"context_line":"        \"group27\": \"ecp224bp\","},{"line_number":185,"context_line":"        \"group28\": \"ecp256bp\","},{"line_number":186,"context_line":"        \"group29\": \"ecp384bp\","},{"line_number":187,"context_line":"        \"group30\": \"ecp512bp\","},{"line_number":188,"context_line":"        \"group31\": \"curve25519\","},{"line_number":189,"context_line":"        \"bi-directional\": \"start\","},{"line_number":190,"context_line":"        \"response-only\": \"add\","},{"line_number":191,"context_line":"        \"v2\": \"insist\","}],"source_content_type":"text/x-python","patch_set":5,"id":"40a973a8_1d8d16e8","line":188,"range":{"start_line":173,"start_character":8,"end_line":188,"end_character":32},"in_reply_to":"b75944ca_2c84d0e7","updated":"2021-11-11 02:31:15.000000000","message":"Sorry for my late reply, I am not mean strongswan. I mean another driver libreswan. From the libreswan code, not all DH groups you added in the code supported.[1]\n\nneutron_vpnaas/services/vpn/device_drivers/ipsec.py is the common place for both libreswan and strongswan drivers. If some feature not supported in both drivers, we need consider added in specific side.\n\n\n[1] https://github.com/libreswan/libreswan/blob/v3.25/lib/libswan/ike_alg_dh.c\n[2] https://github.com/openstack/neutron-vpnaas/blob/master/neutron_vpnaas/services/vpn/device_drivers/ipsec.py","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"}],"neutron_vpnaas/tests/unit/db/vpn/test_vpn_db.py":[{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"69fc3a939587560c9bdac1d133a7d59da0cad7db","unresolved":true,"context_lines":[{"line_number":513,"context_line":"        with self.ikepolicy(name\u003dname, description\u003ddescription) as ikepolicy:"},{"line_number":514,"context_line":"            self._check_policy(ikepolicy[\u0027ikepolicy\u0027], keys, lifetime)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def test_create_ikepolicy_with_every_pfs(self):"},{"line_number":517,"context_line":"        \"\"\"Test case to create ikepolicies with different pfs.\"\"\""},{"line_number":518,"context_line":"        pfs_list \u003d [\u0027group2\u0027, \u0027group5\u0027, \u0027group14\u0027, \u0027group15\u0027, \u0027group16\u0027,"},{"line_number":519,"context_line":"                    \u0027group17\u0027, \u0027group18\u0027, \u0027group19\u0027, \u0027group20\u0027, \u0027group21\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"c2e0216b_1a8ea4a4","line":516,"updated":"2021-10-15 07:17:14.000000000","message":"This is test for ikepolicy, please also add a test for ipsecpolicy.","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3b404da7d2132f27127f32641f0b75206b6fdd88","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        with self.ikepolicy(name\u003dname, description\u003ddescription) as ikepolicy:"},{"line_number":514,"context_line":"            self._check_policy(ikepolicy[\u0027ikepolicy\u0027], keys, lifetime)"},{"line_number":515,"context_line":""},{"line_number":516,"context_line":"    def test_create_ikepolicy_with_every_pfs(self):"},{"line_number":517,"context_line":"        \"\"\"Test case to create ikepolicies with different pfs.\"\"\""},{"line_number":518,"context_line":"        pfs_list \u003d [\u0027group2\u0027, \u0027group5\u0027, \u0027group14\u0027, \u0027group15\u0027, \u0027group16\u0027,"},{"line_number":519,"context_line":"                    \u0027group17\u0027, \u0027group18\u0027, \u0027group19\u0027, \u0027group20\u0027, \u0027group21\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"362d50cf_7335ecbe","line":516,"in_reply_to":"c2e0216b_1a8ea4a4","updated":"2021-10-25 09:57:05.000000000","message":"Test for ipsecpolicy is added in newest patchset.","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":12860,"name":"Dongcan Ye","email":"yedongcan@yeah.net","username":"yedongcan"},"change_message_id":"69fc3a939587560c9bdac1d133a7d59da0cad7db","unresolved":true,"context_lines":[{"line_number":521,"context_line":"                    \u0027group27\u0027, \u0027group28\u0027, \u0027group29\u0027, \u0027group30\u0027, \u0027group31\u0027]"},{"line_number":522,"context_line":"        name \u003d \"ikepolicy1\""},{"line_number":523,"context_line":"        for group in pfs_list:"},{"line_number":524,"context_line":"            self._create_ikepolicy(name\u003dname,"},{"line_number":525,"context_line":"                                   fmt\u003dself.fmt,"},{"line_number":526,"context_line":"                                   pfs\u003dgroup,"},{"line_number":527,"context_line":"                                   expected_res_status\u003d201)"}],"source_content_type":"text/x-python","patch_set":5,"id":"a138c5b8_378a065b","line":524,"range":{"start_line":524,"start_character":12,"end_line":524,"end_character":34},"updated":"2021-10-15 07:17:14.000000000","message":"I think you can use self.ikepolicy, it had already called _create_ikepolicy. Please refer L498~L514.","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"3b404da7d2132f27127f32641f0b75206b6fdd88","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                    \u0027group27\u0027, \u0027group28\u0027, \u0027group29\u0027, \u0027group30\u0027, \u0027group31\u0027]"},{"line_number":522,"context_line":"        name \u003d \"ikepolicy1\""},{"line_number":523,"context_line":"        for group in pfs_list:"},{"line_number":524,"context_line":"            self._create_ikepolicy(name\u003dname,"},{"line_number":525,"context_line":"                                   fmt\u003dself.fmt,"},{"line_number":526,"context_line":"                                   pfs\u003dgroup,"},{"line_number":527,"context_line":"                                   expected_res_status\u003d201)"}],"source_content_type":"text/x-python","patch_set":5,"id":"a337e501_5c3db94a","line":524,"range":{"start_line":524,"start_character":12,"end_line":524,"end_character":34},"in_reply_to":"a138c5b8_378a065b","updated":"2021-10-25 09:57:05.000000000","message":"I used self.ikepolicy and self.ipsecpolicy in the new tests.","commit_id":"87e04f5d97b12123b483243e21a8482a84825fad"}],"releasenotes/notes/add-diffie-hellman-groups-b0d23250ecfbf524.yaml":[{"author":{"_account_id":29074,"name":"Felix Huettner","email":"felix.huettner@digits.schwarz","username":"felix.huettner"},"change_message_id":"be0e658cb930a70c8501618e28673a106e67d033","unresolved":true,"context_lines":[{"line_number":4,"context_line":"features:"},{"line_number":5,"context_line":"  - |"},{"line_number":6,"context_line":"    Adding more diffie-hellman groups that are supported by strongswan. Now one"},{"line_number":7,"context_line":"    can use more diffie-hellman groups for the ike or ipsec policies. "}],"source_content_type":"text/x-yaml","patch_set":7,"id":"63d30d2f_d7b14bc1","line":7,"updated":"2021-11-04 08:12:43.000000000","message":"nit: space at end of line","commit_id":"a51b213eac3c1f996076cc1e9b0f7a3299e88cee"}]}
