)]}'
{"neutron_vpnaas/services/vpn/device_drivers/strongswan_ipsec.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf890c946d0b36140335f2b533219aade7601ccd","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        deprecated_for_replacement\u003d\u0027swanctl_default\u0027,"},{"line_number":65,"context_line":"        deprecated_since\u003dversionutils.deprecated.GAZPACHO,"},{"line_number":66,"context_line":"        deprecated_reason\u003d_(\u0027The use_swanctl option is deprecated and will be \u0027"},{"line_number":67,"context_line":"                            \u0027removed in the 2027.2 release. swanctl mode is now \u0027"},{"line_number":68,"context_line":"                            \u0027the default behavior.\u0027),"},{"line_number":69,"context_line":"        help\u003d_(\u0027Use swanctl (VICI protocol) instead of legacy stroke \u0027"},{"line_number":70,"context_line":"               \u0027interface. When True, configuration files are generated in \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"d781b471_90565347","line":67,"updated":"2026-09-03 15:16:02.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"33db7452a1adca08ee9006f738312f6549d0dc07","unresolved":true,"context_lines":[{"line_number":64,"context_line":"        deprecated_for_replacement\u003d\u0027swanctl_default\u0027,"},{"line_number":65,"context_line":"        deprecated_since\u003dversionutils.deprecated.GAZPACHO,"},{"line_number":66,"context_line":"        deprecated_reason\u003d_(\u0027The use_swanctl option is deprecated and will be \u0027"},{"line_number":67,"context_line":"                            \u0027removed in the 2027.2 release. swanctl mode is now \u0027"},{"line_number":68,"context_line":"                            \u0027the default behavior.\u0027),"},{"line_number":69,"context_line":"        help\u003d_(\u0027Use swanctl (VICI protocol) instead of legacy stroke \u0027"},{"line_number":70,"context_line":"               \u0027interface. When True, configuration files are generated in \u0027"},{"line_number":71,"context_line":"               \u0027/etc/swanctl/ and charon is managed via systemd. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ab98441_8331974e","line":68,"range":{"start_line":67,"start_character":60,"end_line":68,"end_character":50},"updated":"2026-09-03 14:49:54.000000000","message":"No, it is not. I will be in 2027.1, but not now.","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b852be315450f76c8283b5f15011ea48ae0d6bf5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        deprecated_for_replacement\u003d\u0027swanctl_default\u0027,"},{"line_number":65,"context_line":"        deprecated_since\u003dversionutils.deprecated.GAZPACHO,"},{"line_number":66,"context_line":"        deprecated_reason\u003d_(\u0027The use_swanctl option is deprecated and will be \u0027"},{"line_number":67,"context_line":"                            \u0027removed in the 2027.2 release. swanctl mode is now \u0027"},{"line_number":68,"context_line":"                            \u0027the default behavior.\u0027),"},{"line_number":69,"context_line":"        help\u003d_(\u0027Use swanctl (VICI protocol) instead of legacy stroke \u0027"},{"line_number":70,"context_line":"               \u0027interface. When True, configuration files are generated in \u0027"},{"line_number":71,"context_line":"               \u0027/etc/swanctl/ and charon is managed via systemd. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ec80d53_7d214149","line":68,"range":{"start_line":67,"start_character":60,"end_line":68,"end_character":50},"in_reply_to":"9ab98441_8331974e","updated":"2026-09-07 14:03:02.000000000","message":"Done","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf890c946d0b36140335f2b533219aade7601ccd","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    \"\"\"swanctl-based strongSwan process using VICI protocol."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    This class manages strongSwan via the swanctl CLI frontend which uses"},{"line_number":290,"context_line":"    the modern VICI protocol instead of the deprecated stroke/starter interface."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    .. versionadded:: 25.1.0"},{"line_number":293,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"f62c6366_035faff0","line":290,"updated":"2026-09-03 15:16:02.000000000","message":"pep8: E501 line too long (80 \u003e 79 characters)","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf890c946d0b36140335f2b533219aade7601ccd","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \u0027REKEYING\u0027: constants.ACTIVE,"},{"line_number":300,"context_line":"        \u0027DELETING\u0027: constants.DOWN,"},{"line_number":301,"context_line":"    }"},{"line_number":302,"context_line":"    # Match lines like: \"child_sa:  VPN_abc123_child_1\" followed by state on next line"},{"line_number":303,"context_line":"    STATUS_RE \u003d r\u0027(INSTALLED|CONNECTING|REKEYING|DELETING)\u0027"},{"line_number":304,"context_line":"    STATUS_NOT_RUNNING_RE \u003d ("},{"line_number":305,"context_line":"        r\u0027No active Security Associations found\\.?$\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f194357_585b2ab2","line":302,"updated":"2026-09-03 15:16:02.000000000","message":"pep8: E501 line too long (86 \u003e 79 characters)","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf890c946d0b36140335f2b533219aade7601ccd","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                return"},{"line_number":394,"context_line":"            except RuntimeError:"},{"line_number":395,"context_line":"                time.sleep(0.5)"},{"line_number":396,"context_line":"        raise RuntimeError("},{"line_number":397,"context_line":"            \u0027charon did not become ready within %ds\u0027 % timeout)"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"    # ------------------------------------------------------------------ #"}],"source_content_type":"text/x-python","patch_set":2,"id":"e281b0d5_531b5bb4","line":396,"updated":"2026-09-03 15:16:02.000000000","message":"pep8: N534: Untranslated exception message.","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf890c946d0b36140335f2b533219aade7601ccd","unresolved":false,"context_lines":[{"line_number":498,"context_line":"                    if state_match:"},{"line_number":499,"context_line":"                        state \u003d state_match.group(1)"},{"line_number":500,"context_line":"                        status \u003d self.STATUS_MAP.get(state, constants.DOWN)"},{"line_number":501,"context_line":"                        # Use child_sa name as connection_id for finer granularity"},{"line_number":502,"context_line":"                        self._record_connection_status(child_id, status)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"    def get_status(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"4902f0fe_b79c9abd","line":501,"updated":"2026-09-03 15:16:02.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ce40512f27d9119922cddbfe02508f8f3a8bf4c2","unresolved":false,"context_lines":[{"line_number":515,"context_line":"                    if state_match:"},{"line_number":516,"context_line":"                        state \u003d state_match.group(1)"},{"line_number":517,"context_line":"                        status \u003d self.STATUS_MAP.get(state, constants.DOWN)"},{"line_number":518,"context_line":"                        # Use child_sa name as connection_id for finer granularity"},{"line_number":519,"context_line":"                        self._record_connection_status(child_id, status)"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"    def get_status(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"e56c93f0_da531a64","line":518,"updated":"2026-09-04 10:56:49.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"1fd0dac7c8790c4c2b30ef0f3cfb41a2202d0ae2"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"0031ac59ee1b8fa7ba30f6d6e299ffa8f3a352c0","unresolved":false,"context_lines":[{"line_number":407,"context_line":"        :param timeout: Maximum seconds to wait."},{"line_number":408,"context_line":"        :raises RuntimeError: If charon does not become ready within timeout."},{"line_number":409,"context_line":"        \"\"\""},{"line_number":410,"context_line":"        import time"},{"line_number":411,"context_line":"        start \u003d time.time()"},{"line_number":412,"context_line":"        while time.time() - start \u003c timeout:"},{"line_number":413,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"f52ce701_61901202","line":410,"updated":"2026-09-07 13:12:51.000000000","message":"pep8: C0415: Import outside toplevel (time) (import-outside-toplevel)","commit_id":"058936e9636b4899cf8310479de469c2cfd07066"}],"neutron_vpnaas/tests/unit/services/vpn/device_drivers/test_swanctl_ipsec.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bf890c946d0b36140335f2b533219aade7601ccd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import tempfile"},{"line_number":19,"context_line":"import warnings"},{"line_number":20,"context_line":"from unittest import mock"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from neutron_lib import constants"},{"line_number":23,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":2,"id":"d4bd99f1_e0472160","line":20,"updated":"2026-09-03 15:16:02.000000000","message":"pep8: H306: imports not in alphabetical order (warnings, unittest.mock)","commit_id":"619966c34278af76dcce4195e3dcd21102768edc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"ce40512f27d9119922cddbfe02508f8f3a8bf4c2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        self.assertIsNone(conn_id)"},{"line_number":90,"context_line":"        self.assertEqual(constants.ACTIVE, status)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @mock.patch.object(strongswan_ipsec.SwanctlProcess, \u0027_wait_for_charon_ready\u0027)"},{"line_number":93,"context_line":"    @mock.patch.object(strongswan_ipsec.SwanctlProcess, \u0027_execute\u0027)"},{"line_number":94,"context_line":"    def test_start(self, mock_execute, _mock_wait):"},{"line_number":95,"context_line":"        self.process.start()"}],"source_content_type":"text/x-python","patch_set":3,"id":"686b76d0_0267ce0b","line":92,"updated":"2026-09-04 10:56:49.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"1fd0dac7c8790c4c2b30ef0f3cfb41a2202d0ae2"}]}
