Új hozzászólás Aktív témák

  • velizare

    nagyúr

    válasz cousin333 #1672 üzenetére

    pontosan ott, hogy van egy ilyen kód

    ssh_tunnel.py
    # -*- coding: utf-8 -*-

    import getpass
    import sshtunnel

    class jumpserver():
    """
    this class realizes the jumpserver relay to get next to the db.

    methods:
    run(): starts the ssh tunnel.
    disc(): closes the ssh tunnel.
    """
    def __init__(self):
    #read jumpserver and db connection path from file
    #list
    with open('ssh_tunnel.cfg') as ssh_tunnel_list:
    ssh_tunnel_list = [x.strip('\n') for x in ssh_tunnel_list.readlines()]

    #mapping connection data to string
    self.ssh_tunnel_user = ssh_tunnel_list[1].replace('jumpserver user = ', '', 1)
    self.ssh_tunnel_pw = ssh_tunnel_list[2].replace('jumpserver password = ', '', 1)
    self.ssh_tunnel_ip = ssh_tunnel_list[3].replace('jumpserver ip = ', '', 1)
    self.db_ip = ssh_tunnel_list[4].replace('db ip = ', '', 1)
    while True:
    if not self.ssh_tunnel_user:
    self.ssh_tunnel_user = input("Input ssh tunner user:")
    if self.ssh_tunnel_user:
    break
    else:
    break
    while True:
    if not self.ssh_tunnel_pw:
    self.ssh_tunnel_pw = getpass.getpass("Input ssh tunner password:")
    if self.ssh_tunnel_pw:
    break
    else:
    break

    def run(self):
    """
    starts the ssh tunnel.
    """
    #starting tunnel
    self.tunnel = sshtunnel.SSHTunnelForwarder((self.ssh_tunnel_ip, 22), ssh_username=self.ssh_tunnel_user, ssh_password=self.ssh_tunnel_pw, remote_bind_address=(self.db_ip, 1521), local_bind_address=('127.0.0.1', 1521))

    try:
    self.tunnel.start()
    except:
    print("connection to jumpserver", self.ssh_tunnel_ip, "as", self.ssh_tunnel_user, "failed.")
    else:
    #print("connection successful")
    pass
    return self.tunnel

    def disc(self):
    """
    closes the ssh tunnel.
    """
    self.tunnel.stop()

    és van egy main.py, amelyik meghívja ebből az osztályból instalcol, és hívogatja a metódusait.

    main.py
    # -*- coding: utf-8 -*-
    import ssh_tunnel

    js = ssh_tunnel.jumpserver()

    with js.run():
    if js.run():
    print("connection successful")
    loop = True
    while loop: ## While loop which will keep going until loop = False
    if stuff_2_do:
    do_stuff()
    continue
    elif:
    os.system('cls||clear')
    print("bye")
    js.disc()
    break # This will make the while loop to end as not value of loop is set to False

    és itt van az, hogy erre a main.py-re indítva egy debuggert, a js már nem jelenik meg, mint változó/object a debuggerben.

Új hozzászólás Aktív témák