From b5d689486595e1466e22d885c4c276358008d543 Mon Sep 17 00:00:00 2001 From: fluzzi Date: Fri, 1 Apr 2022 17:53:51 -0300 Subject: [PATCH] change setup and versions --- conn/__init__.py | 4 +- conn/core.py | 114 ++++++++++++++++++++++------------------------- setup.cfg | 30 +++++++++++++ setup.py | 38 +--------------- 4 files changed, 89 insertions(+), 97 deletions(-) create mode 100644 setup.cfg diff --git a/conn/__init__.py b/conn/__init__.py index 21c45d2..00450cb 100644 --- a/conn/__init__.py +++ b/conn/__init__.py @@ -3,6 +3,8 @@ from .core import node,nodes from .configfile import configfile from .connapp import connapp +from pkg_resources import get_distribution -__version__ = "2.0" __all__ = ["node", "nodes", "configfile", "connapp"] +__version__ = "2.0.9" +__author__ = "Federico Luzzi" diff --git a/conn/core.py b/conn/core.py index 6a54826..010bd25 100755 --- a/conn/core.py +++ b/conn/core.py @@ -130,25 +130,22 @@ class node: for c in commands: result = self.child.expect(expects) self.child.sendline(c) - match result: - case 0: - output = output + self.child.before.decode() + self.child.after.decode() - case 1: - output = output + self.child.before.decode() + if result == 0: + output = output + self.child.before.decode() + self.child.after.decode() + if result == 1: + output = output + self.child.before.decode() else: result = self.child.expect(expects) self.child.sendline(commands) - match result: - case 0: - output = output + self.child.before.decode() + self.child.after.decode() - case 1: - output = output + self.child.before.decode() - result = self.child.expect(expects) - match result: - case 0: + if result == 0: output = output + self.child.before.decode() + self.child.after.decode() - case 1: + if result == 1: output = output + self.child.before.decode() + result = self.child.expect(expects) + if result == 0: + output = output + self.child.before.decode() + self.child.after.decode() + if result == 1: + output = output + self.child.before.decode() self.child.close() output = output.lstrip() if stdout == True: @@ -173,35 +170,33 @@ class node: for c in commands: result = self.child.expect(expects) self.child.sendline(c) - match result: - case 0: - output = output + self.child.before.decode() + self.child.after.decode() - case 1: - output = output + self.child.before.decode() + if result == 0: + output = output + self.child.before.decode() + self.child.after.decode() + if result == 1: + output = output + self.child.before.decode() else: self.child.expect(expects) self.child.sendline(commands) output = output + self.child.before.decode() + self.child.after.decode() expects = [expected, prompt, pexpect.EOF] results = self.child.expect(expects) - match results: - case 0: - self.child.close() - self.result = True + if results == 0: + self.child.close() + self.result = True + output = output + self.child.before.decode() + self.child.after.decode() + output = output.lstrip() + self.output = output + return True + if results in [1, 2]: + self.child.close() + self.result = False + if results == 1: output = output + self.child.before.decode() + self.child.after.decode() - output = output.lstrip() - self.output = output - return True - case 1 | 2: - self.child.close() - self.result = False - if results == 1: - output = output + self.child.before.decode() + self.child.after.decode() - elif results == 2: - output = output + self.child.before.decode() - output = output.lstrip() - self.output = output - return False + elif results == 2: + output = output + self.child.before.decode() + output = output.lstrip() + self.output = output + return False else: self.result = None self.output = connect @@ -253,32 +248,31 @@ class node: for i in range(0, loops): while True: results = child.expect(expects) - match results: - case 0: - if self.protocol == "ssh": - child.sendline('yes') - elif self.protocol == "telnet": - if self.user != '': - child.sendline(self.user) - else: - self.missingtext = True - break - case 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13: - child.close() - return "Connection failed code:" + str(results) - case 8: - if len(passwords) > 0: - child.sendline(passwords[i]) + if results == 0: + if self.protocol == "ssh": + child.sendline('yes') + elif self.protocol == "telnet": + if self.user != '': + child.sendline(self.user) else: self.missingtext = True - break - case 9 | 11: - endloop = True - child.sendline() - break - case 10: - child.sendline("\r") - sleep(2) + break + if results in [1, 2, 3, 4, 5, 6, 7, 12, 13]: + child.close() + return "Connection failed code:" + str(results) + if results == 8: + if len(passwords) > 0: + child.sendline(passwords[i]) + else: + self.missingtext = True + break + if results in [9, 11]: + endloop = True + child.sendline() + break + if results == 10: + child.sendline("\r") + sleep(2) if endloop: break child.readline(0) diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..727527f --- /dev/null +++ b/setup.cfg @@ -0,0 +1,30 @@ +[metadata] +name = conn +version = attr: conn.__version__ +description = Conn is a SSH/Telnet connection manager and automation module +long_description = file: README.md +keywords = networking, automation, ssh, telnet, connection manager +author = Federico Luzzi +author_mail = fluzzi@gmail.com +url = https://github.com/fluzzi/connpy +license = MIT License +license_files = LICENSE +classifiers = + Development Status :: 4 - Beta + Topic :: System :: Networking + Intended Audience :: Telecommunications Industry + Programming Language :: Python :: 3 + Natural Language :: English + Operating System :: MacOS + Operating System :: Unix + +[options] +packages = find: +install_requires = + inquirer + pexpect + pycryptodome + +[options.entry_points] +console_scripts = + conn = conn.app:main diff --git a/setup.py b/setup.py index 1d46322..cf9920e 100644 --- a/setup.py +++ b/setup.py @@ -1,38 +1,4 @@ -from setuptools import setup, find_packages -import pathlib - -VERSION = '2.0.8' -DESCRIPTION = 'Conn is a SSH/Telnet connection manager and automation module' - -here = pathlib.Path(__file__).parent.resolve() -LONG_DESCRIPTION = (here / "README.md").read_text(encoding="utf-8") +from setuptools import setup # Setting up -setup( - name="conn", - version=VERSION, - author="Federico Luzzi", - author_email="", - description=DESCRIPTION, - long_description=LONG_DESCRIPTION, - long_description_content_type="text/markdown", - url="https://github.com/fluzzi/connpy", - packages=find_packages(), - install_requires=["inquirer","pexpect","pycryptodome"], # add any additional packages that - keywords=['networking', 'automation', 'ssh', 'telnet', 'connection manager'], - classifiers= [ - "Development Status :: 4 - Beta", - "Topic :: System :: Networking", - "Intended Audience :: Telecommunications Industry", - "Programming Language :: Python :: 3", - "Natural Language :: English", - # "Operating System :: MacOS :: MacOS X", - # "Operating System :: Microsoft :: Windows", - "Operating System :: Unix" - ], - entry_points={ - 'console_scripts': [ - 'conn=conn.app:main', - ] - } -) +setup()