-
Notifications
You must be signed in to change notification settings - Fork 263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Summary: Refactored ..utils.asyncio.telnet_server.py to use telnetlib3… #2342
Conversation
…3 library, enhanced command handling and error management.. Extended description: - Migrated to telnetlib3 for improved handling of Telnet commands and options. - Upgraded TelnetConnection with error handling in send and close methods. - Refined AsyncioTelnetServer by inheriting from telnetlib3.TelnetServer, featuring streamlined command processing and enhanced logging. - Removed unnecessary dependencies and imports, simplifying the codebase. - Retained the core execution flow, adapting it to the new class structures. Observation for Future Improvement: - Some NVT commands are still marked as unhandled in debug logs despite having the necessary handling statments. This behaviour may be related to certain user-reported bugs. - Further comprehensive testing and diagnostics are needed to understand and resolve these issues. Next Steps: - A detailed code review focusing on prerequisites and requirements is suggested. This will determine which functions can be effectively delegated to telnetlib3 without negatively impacting other GNS3 modules. - The goal is to ensure optimal integration of telnetlib3, maximizing efficiency while preserving the integrity and functionality of the broader GNS3 ecosystem.
@grossmj - would you be able to re-trigger the PR tests?, Now the requirements file is updated I believe tests should pass. |
@grossmj - it would seem telnetlib3 is not compatible with python 3.6, it may have originally but I believe they dropped 3.6 support in favour of focusing on 3.9> That being said, 3.7 should be compatible. What do we want to do regarding telnetlib3 integration? |
I remember the main reason we keep Python 3.6 support (at least for GNS3 2.2.x) is because of Ubuntu 18.04 Bionic LTS which come with Python 3.6 by default and it comes end-of-life in April 2028 (https://wiki.ubuntu.com/Releases). That being said, it's becoming a PITA to maintain compatibility with Python 3.6 because so many of our dependencies have already dropped support, I don't think many of our users run GNS3 on Ubuntu 18.04 and we could just say it is "End of Standard Support" (June 2023) already.
I think we have 2 choices here, drop Python 3.6 support or add the telnetlib3 integration to GNS3 v3 only which has support for Python 3.8 to 3.12. |
I have decided to drop support for Python 3.6 in v2.2.x. |
That makes sense, so what needs to happen on this PR now? |
I want to run some more tests and also look into that 3 special characters issue that had been reported, see if I can replicate it. I will merge once everything is okay. Thanks again 👍 |
Related to Issue: #2289 - Re-write Telnet server using telnetlib3 link
Summary: Refactored ..utils.asyncio.telnet_server.py to use telnetlib3 library, enhanced command handling and error management.
Extended description:
Observation for Future Improvement:
Next Steps: