diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-amxtelnet.spec | 213 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 215 insertions, 0 deletions
@@ -0,0 +1 @@ +/amxtelnet-1.3.3.tar.gz diff --git a/python-amxtelnet.spec b/python-amxtelnet.spec new file mode 100644 index 0000000..2b05fb2 --- /dev/null +++ b/python-amxtelnet.spec @@ -0,0 +1,213 @@ +%global _empty_manifest_terminate_build 0 +Name: python-amxtelnet +Version: 1.3.3 +Release: 1 +Summary: xlsx to amx dict list +License: MIT License +URL: https://github.com/logantv/amxtelnet +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e5/83/8445621185e84befe5aee4fa8b0eb4364f53f9b5fb5276f343dfe5017d55/amxtelnet-1.3.3.tar.gz +BuildArch: noarch + + +%description +# amxtelnet +### amx telnet functions + +## Telnet(): +#### Handles the actual telnet connection and communication with the AMX devices. This class is very universal, but if you run into issues using it on a non-AMX device, it may be caused by the modifications I had to make for AMX: +##### Using the default telnetlib.py with AMX was causing an infinite handshake loop. +##### _write() lines 269, 270 disabled IAC (telnet negotiation) doubling. +##### process_rawq() lines 373, 374 changed when raw chars go to buf when IAC. + + +## AMXConnect(): + +### returns: +#### commands are send to AMX masters. If desired, replies are written to file as .txt and/or logged. +### set_systems(): +#### list of dicts where each dict is an AMX system. +#### minimum key requirements: +##### 'full_name' (string) +##### 'master_ip' (string) +##### 'master_model' (string) (NX-1200, NI-700, etc.) + +### config(): +#### user_name: user name to login to AMX +#### password: password to login to AMX +#### alt_username: user name to use if user_name fails +#### alt_password: password to use with alt_user_name +#### write_results: True or False; write replies to individual .txt files per system. +#### output_path: file path to use if write_results is True. This path should also be used for the path in ParseAMXResponse(). +#### set_requests(): list of strings to send to the AMX master. $0D is automaticallyv appended. +#### run(): Begin connecting to systems in set_systems(), sending requests from set_requests(), using settings from config() + + +## ParseAMXResponse(): +#### Use this class to parse the information gathered from AMXConnect(). +#### This class is less universal in that it expects the .txt files to contain responses to the following commands in the following order: +##### 'show device','get ip','program info','list' +#### You can append additional commands as needed. The output of ParseAMXResponse().read_telnet_text() is a list of amx system dicts. Current uses of this list: + +##### export to excel using amxtoexcel.py to archive campus system status + +##### code creation using code_creator_django.py or code_creator_usm.py + +#### AMXConnect.path and ParseAMXResponse.path will normally refer to the same location. If you use the default locations in each class, they'll work together using systems/telnet responses/. + +#### If there's already .txt files in 'path' you can skip AMXConnect() and go straight to ParseAMXResponse() if using potentially outdated information is acceptable. + + + + +%package -n python3-amxtelnet +Summary: xlsx to amx dict list +Provides: python-amxtelnet +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-amxtelnet +# amxtelnet +### amx telnet functions + +## Telnet(): +#### Handles the actual telnet connection and communication with the AMX devices. This class is very universal, but if you run into issues using it on a non-AMX device, it may be caused by the modifications I had to make for AMX: +##### Using the default telnetlib.py with AMX was causing an infinite handshake loop. +##### _write() lines 269, 270 disabled IAC (telnet negotiation) doubling. +##### process_rawq() lines 373, 374 changed when raw chars go to buf when IAC. + + +## AMXConnect(): + +### returns: +#### commands are send to AMX masters. If desired, replies are written to file as .txt and/or logged. +### set_systems(): +#### list of dicts where each dict is an AMX system. +#### minimum key requirements: +##### 'full_name' (string) +##### 'master_ip' (string) +##### 'master_model' (string) (NX-1200, NI-700, etc.) + +### config(): +#### user_name: user name to login to AMX +#### password: password to login to AMX +#### alt_username: user name to use if user_name fails +#### alt_password: password to use with alt_user_name +#### write_results: True or False; write replies to individual .txt files per system. +#### output_path: file path to use if write_results is True. This path should also be used for the path in ParseAMXResponse(). +#### set_requests(): list of strings to send to the AMX master. $0D is automaticallyv appended. +#### run(): Begin connecting to systems in set_systems(), sending requests from set_requests(), using settings from config() + + +## ParseAMXResponse(): +#### Use this class to parse the information gathered from AMXConnect(). +#### This class is less universal in that it expects the .txt files to contain responses to the following commands in the following order: +##### 'show device','get ip','program info','list' +#### You can append additional commands as needed. The output of ParseAMXResponse().read_telnet_text() is a list of amx system dicts. Current uses of this list: + +##### export to excel using amxtoexcel.py to archive campus system status + +##### code creation using code_creator_django.py or code_creator_usm.py + +#### AMXConnect.path and ParseAMXResponse.path will normally refer to the same location. If you use the default locations in each class, they'll work together using systems/telnet responses/. + +#### If there's already .txt files in 'path' you can skip AMXConnect() and go straight to ParseAMXResponse() if using potentially outdated information is acceptable. + + + + +%package help +Summary: Development documents and examples for amxtelnet +Provides: python3-amxtelnet-doc +%description help +# amxtelnet +### amx telnet functions + +## Telnet(): +#### Handles the actual telnet connection and communication with the AMX devices. This class is very universal, but if you run into issues using it on a non-AMX device, it may be caused by the modifications I had to make for AMX: +##### Using the default telnetlib.py with AMX was causing an infinite handshake loop. +##### _write() lines 269, 270 disabled IAC (telnet negotiation) doubling. +##### process_rawq() lines 373, 374 changed when raw chars go to buf when IAC. + + +## AMXConnect(): + +### returns: +#### commands are send to AMX masters. If desired, replies are written to file as .txt and/or logged. +### set_systems(): +#### list of dicts where each dict is an AMX system. +#### minimum key requirements: +##### 'full_name' (string) +##### 'master_ip' (string) +##### 'master_model' (string) (NX-1200, NI-700, etc.) + +### config(): +#### user_name: user name to login to AMX +#### password: password to login to AMX +#### alt_username: user name to use if user_name fails +#### alt_password: password to use with alt_user_name +#### write_results: True or False; write replies to individual .txt files per system. +#### output_path: file path to use if write_results is True. This path should also be used for the path in ParseAMXResponse(). +#### set_requests(): list of strings to send to the AMX master. $0D is automaticallyv appended. +#### run(): Begin connecting to systems in set_systems(), sending requests from set_requests(), using settings from config() + + +## ParseAMXResponse(): +#### Use this class to parse the information gathered from AMXConnect(). +#### This class is less universal in that it expects the .txt files to contain responses to the following commands in the following order: +##### 'show device','get ip','program info','list' +#### You can append additional commands as needed. The output of ParseAMXResponse().read_telnet_text() is a list of amx system dicts. Current uses of this list: + +##### export to excel using amxtoexcel.py to archive campus system status + +##### code creation using code_creator_django.py or code_creator_usm.py + +#### AMXConnect.path and ParseAMXResponse.path will normally refer to the same location. If you use the default locations in each class, they'll work together using systems/telnet responses/. + +#### If there's already .txt files in 'path' you can skip AMXConnect() and go straight to ParseAMXResponse() if using potentially outdated information is acceptable. + + + + +%prep +%autosetup -n amxtelnet-1.3.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-amxtelnet -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.3-1 +- Package Spec generated @@ -0,0 +1 @@ +37b101b2677fe0d840a5644e785b544a amxtelnet-1.3.3.tar.gz |