)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"16b0afc8e15a1b96af1b1f68da5793df0d4ab786","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c0e09414_39cb6a1c","updated":"2023-01-04 17:14:45.000000000","message":"I\u0027m super glad to see this! Having had to hack this in once myself, this is super painful. Anyhow! We really need to ensure requirements.txt is updated so the minimal versions are installed.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"}],"doc/source/configuration.rst":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"16b0afc8e15a1b96af1b1f68da5793df0d4ab786","unresolved":true,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"You may need to tune the SSH negotiation process for some devices, for example to"},{"line_number":300,"context_line":"use a faster key exchange algorithm or to disable buggy implementation of an"},{"line_number":301,"context_line":"algorithm."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"The ``ngs_ssh_disabled_algorithms`` configuration parameter allows to selectively"},{"line_number":304,"context_line":"disable algorithms of a given type (key exchange, cipher, MAC, etc). It is based"}],"source_content_type":"text/x-rst","patch_set":1,"id":"44eddb6c_2c553a60","line":301,"updated":"2023-01-04 17:14:45.000000000","message":"Third possibility, FIPS mode may be engaged on the switch *or* the host/container running networking-generic-switch and thus entire algorithms/methods/suites may not be available... and may thus cause the the service to generate an error.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":34936,"name":"Baptiste Jonglez","email":"baptiste.jonglez@inria.fr","username":"bjonglez"},"change_message_id":"f3c926f3e21067d9aae7a59d214e78b9c3ddec8c","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"You may need to tune the SSH negotiation process for some devices, for example to"},{"line_number":300,"context_line":"use a faster key exchange algorithm or to disable buggy implementation of an"},{"line_number":301,"context_line":"algorithm."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"The ``ngs_ssh_disabled_algorithms`` configuration parameter allows to selectively"},{"line_number":304,"context_line":"disable algorithms of a given type (key exchange, cipher, MAC, etc). It is based"}],"source_content_type":"text/x-rst","patch_set":1,"id":"69c4c5b1_a465be01","line":301,"in_reply_to":"44eddb6c_2c553a60","updated":"2023-01-13 13:30:55.000000000","message":"I have zero experience with FIPS, so I added a vague statement, let me know if this is enough.\n\nI\u0027m not 100% sure this setting can solve the kind of problems you mention: it only allows to *disable* algorithms, not to actually force a given algorithm. But if it applies to an algorithm that cannot be negotiated, then it might help.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6c71bc7448f1c46bd4e258e07cfe08d7cf4eab6d","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"You may need to tune the SSH negotiation process for some devices, for example to"},{"line_number":300,"context_line":"use a faster key exchange algorithm or to disable buggy implementation of an"},{"line_number":301,"context_line":"algorithm."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"The ``ngs_ssh_disabled_algorithms`` configuration parameter allows to selectively"},{"line_number":304,"context_line":"disable algorithms of a given type (key exchange, cipher, MAC, etc). It is based"}],"source_content_type":"text/x-rst","patch_set":1,"id":"58b05198_b01ea335","line":301,"in_reply_to":"69c4c5b1_a465be01","updated":"2023-01-26 21:39:50.000000000","message":"A pattern I\u0027ve typically seen is to explicitly disable in order to enforce what can be negotiated. Thanks!","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"16b0afc8e15a1b96af1b1f68da5793df0d4ab786","unresolved":true,"context_lines":[{"line_number":315,"context_line":"``kex``, ``gsskex``.  However, this might change depending on the version of Paramiko."},{"line_number":316,"context_line":"Check Paramiko source code or documentation to determine the accepted algorithm types."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Note: this configuration option requires netmiko \u003e\u003d 4.0.0 and paramiko \u003e\u003d 2.6.0."}],"source_content_type":"text/x-rst","patch_set":1,"id":"cc874646_8eb92f94","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":80},"updated":"2023-01-04 17:14:45.000000000","message":"lets go ahead and change requirements.txt as well.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6c71bc7448f1c46bd4e258e07cfe08d7cf4eab6d","unresolved":false,"context_lines":[{"line_number":315,"context_line":"``kex``, ``gsskex``.  However, this might change depending on the version of Paramiko."},{"line_number":316,"context_line":"Check Paramiko source code or documentation to determine the accepted algorithm types."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Note: this configuration option requires netmiko \u003e\u003d 4.0.0 and paramiko \u003e\u003d 2.6.0."}],"source_content_type":"text/x-rst","patch_set":1,"id":"e6fe7fdd_c8490981","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":80},"in_reply_to":"68ed6878_e1a2739d","updated":"2023-01-26 21:39:50.000000000","message":"ack, thanks!","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":34936,"name":"Baptiste Jonglez","email":"baptiste.jonglez@inria.fr","username":"bjonglez"},"change_message_id":"f3c926f3e21067d9aae7a59d214e78b9c3ddec8c","unresolved":false,"context_lines":[{"line_number":315,"context_line":"``kex``, ``gsskex``.  However, this might change depending on the version of Paramiko."},{"line_number":316,"context_line":"Check Paramiko source code or documentation to determine the accepted algorithm types."},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"Note: this configuration option requires netmiko \u003e\u003d 4.0.0 and paramiko \u003e\u003d 2.6.0."}],"source_content_type":"text/x-rst","patch_set":1,"id":"68ed6878_e1a2739d","line":318,"range":{"start_line":318,"start_character":0,"end_line":318,"end_character":80},"in_reply_to":"cc874646_8eb92f94","updated":"2023-01-13 13:30:55.000000000","message":"We already require netmiko\u003e\u003d4.1.1, which itself depends on a recent enough paramiko.\n\nI still like to spell out this kind of requirements clearly for people that might backport this. But thinking about it some more, it doesn\u0027t need to be present in the config documentation, just in the commit message.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"}],"networking_generic_switch/devices/__init__.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"838e577a3cb5db5f102f9587b351bc217b98862d","unresolved":true,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        The dict is in a suitable format for feeding to Netmiko/Paramiko."},{"line_number":143,"context_line":"        \"\"\""},{"line_number":144,"context_line":"        algorithms \u003d self.ngs_config.get(\u0027ngs_ssh_disabled_algorithms\u0027)"},{"line_number":145,"context_line":"        if not algorithms:"},{"line_number":146,"context_line":"            return {}"},{"line_number":147,"context_line":"        # Build a dict: keys are types, values are list of algorithms"},{"line_number":148,"context_line":"        result \u003d defaultdict(list)"},{"line_number":149,"context_line":"        for algo_type, algo in [s.split(\u0027:\u0027) for s in algorithms.split(\u0027,\u0027)]:"},{"line_number":150,"context_line":"            result[algo_type.strip()].append(algo.strip())"},{"line_number":151,"context_line":"        return dict(result)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def _do_vlan_management(self):"},{"line_number":154,"context_line":"        \"\"\"Check if drivers should add and remove VLANs from switches.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"56ef6e1f_4d3f4df9","line":151,"range":{"start_line":144,"start_character":0,"end_line":151,"end_character":27},"updated":"2023-01-04 09:57:02.000000000","message":"I think you can use this:\n\n neutron_lib.utils.helpers.parse_mappings(mapping_list, unique_values\u003dFalse, unique_keys\u003dFalse)","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":34936,"name":"Baptiste Jonglez","email":"baptiste.jonglez@inria.fr","username":"bjonglez"},"change_message_id":"f3c926f3e21067d9aae7a59d214e78b9c3ddec8c","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        The dict is in a suitable format for feeding to Netmiko/Paramiko."},{"line_number":143,"context_line":"        \"\"\""},{"line_number":144,"context_line":"        algorithms \u003d self.ngs_config.get(\u0027ngs_ssh_disabled_algorithms\u0027)"},{"line_number":145,"context_line":"        if not algorithms:"},{"line_number":146,"context_line":"            return {}"},{"line_number":147,"context_line":"        # Build a dict: keys are types, values are list of algorithms"},{"line_number":148,"context_line":"        result \u003d defaultdict(list)"},{"line_number":149,"context_line":"        for algo_type, algo in [s.split(\u0027:\u0027) for s in algorithms.split(\u0027,\u0027)]:"},{"line_number":150,"context_line":"            result[algo_type.strip()].append(algo.strip())"},{"line_number":151,"context_line":"        return dict(result)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def _do_vlan_management(self):"},{"line_number":154,"context_line":"        \"\"\"Check if drivers should add and remove VLANs from switches.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"cddcab6e_e6d0a1ae","line":151,"range":{"start_line":144,"start_character":0,"end_line":151,"end_character":27},"in_reply_to":"56ef6e1f_4d3f4df9","updated":"2023-01-13 13:30:55.000000000","message":"Good idea, it exactly matches the right format, I have updated the code.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"}],"releasenotes/notes/add-ngs_ssh_disabled_algorithms-dfe3e805f480ce90.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"16b0afc8e15a1b96af1b1f68da5793df0d4ab786","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Add new device setting ``ngs_ssh_disabled_algorithms``.  This allows to"},{"line_number":5,"context_line":"    selectively disable SSH algorithms of various types, which may help to"},{"line_number":6,"context_line":"    speed up SSH connection (faster key exchange algorithm) or to workaround"},{"line_number":7,"context_line":"    buggy SSH implementations found on some devices."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"33c124e4_41c6d825","line":7,"updated":"2023-01-04 17:14:45.000000000","message":"Please add an upgrade note covering the required version changes in addition to the change to requirements.txt","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"},{"author":{"_account_id":34936,"name":"Baptiste Jonglez","email":"baptiste.jonglez@inria.fr","username":"bjonglez"},"change_message_id":"f3c926f3e21067d9aae7a59d214e78b9c3ddec8c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add new device setting ``ngs_ssh_disabled_algorithms``.  This allows to"},{"line_number":5,"context_line":"    selectively disable SSH algorithms of various types, which may help to"},{"line_number":6,"context_line":"    speed up SSH connection (faster key exchange algorithm) or to workaround"},{"line_number":7,"context_line":"    buggy SSH implementations found on some devices."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"29cee216_479e3d4b","line":7,"in_reply_to":"33c124e4_41c6d825","updated":"2023-01-13 13:30:55.000000000","message":"See above.","commit_id":"39987efee0d14b39f6a4fc64cc80f60a824f16cc"}]}
