|
import os
|
|
import time
|
|
import paramiko
|
|
import compiler
|
|
import nycklar.nodes as nodes
|
|
|
|
def conecta():
|
|
|
|
|
|
ssh = paramiko.SSHClient()
|
|
ssh.load_host_keys("nycklar/itrst")
|
|
|
|
|
|
project_dir = os.getcwd()
|
|
key_filename = os.path.join(project_dir, "nycklar", "go")
|
|
|
|
ssh.connect(nodes.realm, username=nodes.master, key_filename=key_filename)
|
|
sftp = ssh.open_sftp()
|
|
|
|
return ssh, sftp
|
|
|
|
def obtenCaja(userfile):
|
|
|
|
|
|
ruta_remota = nodes.avaimentekijä
|
|
print("Encoding...")
|
|
userfile_codificado = userfile.encode("utf-8")
|
|
print(f"El userfile sin la b, se decodifica y queda: {userfile_codificado} y es del tipo {type(userfile_codificado)} ...")
|
|
time.sleep(3)
|
|
|
|
print("Estoy afuera, enviando al compiler.")
|
|
username = compiler.do(userfile_codificado)
|
|
print("Username es: ", username)
|
|
caja = ruta_remota + username + ".txt"
|
|
print("Éste es el archivo remoto: ", caja)
|
|
|
|
return caja
|
|
|
|
def obtenTokens(sftp, caja):
|
|
|
|
with sftp.open(caja, 'rb') as archivo:
|
|
|
|
contenido_bytes = archivo.read()
|
|
|
|
tokens = contenido_bytes.decode('utf-8')
|
|
|
|
return tokens
|
|
|
|
def aplicaReglas(sftp, caja, tokens):
|
|
|
|
|
|
|
|
|
|
contenido_final = int(tokens) - 1
|
|
contenido_final = str(contenido_final)
|
|
|
|
|
|
print(contenido_final)
|
|
|
|
|
|
with sftp.open(caja, 'w') as archivo:
|
|
|
|
archivo.write(contenido_final)
|
|
|
|
return contenido_final
|
|
|
|
def cierraConexion(ssh, sftp ):
|
|
|
|
sftp.close()
|
|
ssh.close()
|
|
|