Spaces:
Running
Running
Moibe
commited on
Commit
·
817b819
1
Parent(s):
bc4002b
All Quota Related Ok!
Browse files- avaimet.py +34 -1
- funciones.py +37 -2
- globales.py +1 -0
- main.py +25 -0
- nycklar/nodes.py +2 -1
avaimet.py
CHANGED
@@ -3,6 +3,7 @@ import tools
|
|
3 |
import paramiko
|
4 |
import nycklar.nodes as nodes
|
5 |
|
|
|
6 |
#AVAIMET CONTIENE LAS FUNCIONES QUE INTERACTUAN CON EL SERVIDOR REMOTO.
|
7 |
def conecta():
|
8 |
|
@@ -13,14 +14,16 @@ def conecta():
|
|
13 |
#Future: Para usar ésto el método connnect necesitaría aceptar la pk como var string.
|
14 |
#go = os.getenv("go")
|
15 |
|
|
|
|
|
16 |
|
17 |
#Ahora obtendremos nuestra secret key para poder entrar a ese servidor.
|
18 |
project_dir = os.getcwd()
|
19 |
-
print("Ésto es project dir: ", project_dir)
|
20 |
#Ruta de go.
|
21 |
key_filename = os.path.join(project_dir, "nycklar", "go")
|
22 |
|
23 |
ssh.connect(nodes.realm, username=nodes.master, key_filename=key_filename)
|
|
|
24 |
sftp = ssh.open_sftp()
|
25 |
|
26 |
return ssh, sftp
|
@@ -119,6 +122,36 @@ def restaToken(sftp, caja, tokens, work):
|
|
119 |
# Escribir el contenido final en el archivo
|
120 |
archivo.write(contenido_final)
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
contenido_final = int(contenido_final)
|
123 |
return contenido_final
|
124 |
|
|
|
3 |
import paramiko
|
4 |
import nycklar.nodes as nodes
|
5 |
|
6 |
+
|
7 |
#AVAIMET CONTIENE LAS FUNCIONES QUE INTERACTUAN CON EL SERVIDOR REMOTO.
|
8 |
def conecta():
|
9 |
|
|
|
14 |
#Future: Para usar ésto el método connnect necesitaría aceptar la pk como var string.
|
15 |
#go = os.getenv("go")
|
16 |
|
17 |
+
#llave = paramiko.RSAKey(data=base64.b64decode(nycklar.go.texto))
|
18 |
+
#clientPrivateKey = paramiko.RSAKey.from_private_key(nycklar.go.texto)
|
19 |
|
20 |
#Ahora obtendremos nuestra secret key para poder entrar a ese servidor.
|
21 |
project_dir = os.getcwd()
|
|
|
22 |
#Ruta de go.
|
23 |
key_filename = os.path.join(project_dir, "nycklar", "go")
|
24 |
|
25 |
ssh.connect(nodes.realm, username=nodes.master, key_filename=key_filename)
|
26 |
+
#ssh.connect(nodes.realm, username=nodes.master, pkey=llave)
|
27 |
sftp = ssh.open_sftp()
|
28 |
|
29 |
return ssh, sftp
|
|
|
122 |
# Escribir el contenido final en el archivo
|
123 |
archivo.write(contenido_final)
|
124 |
|
125 |
+
contenido_final = int(contenido_final)
|
126 |
+
return
|
127 |
+
|
128 |
+
def modificaQuota(sftp, dir_quota, quota, costo_proceso):
|
129 |
+
|
130 |
+
print("Éste es quota: ", quota)
|
131 |
+
print("Éste es costo_proceso: ", costo_proceso)
|
132 |
+
|
133 |
+
#Standard cost.
|
134 |
+
#cuantos = 30
|
135 |
+
|
136 |
+
#Aplica reglas de quotas dinámicas.
|
137 |
+
# if work == 'picswap':
|
138 |
+
# cuantos = 1
|
139 |
+
# print(f"Work: {work}, tokens cost: {cuantos}")
|
140 |
+
# else:
|
141 |
+
# print("The work specified doesn't exists.")
|
142 |
+
|
143 |
+
# Agregar el texto "- Revisado." al string
|
144 |
+
contenido_final = int(quota) - int(costo_proceso)
|
145 |
+
contenido_final = str(contenido_final)
|
146 |
+
|
147 |
+
# Imprimir el contenido
|
148 |
+
print(contenido_final)
|
149 |
+
|
150 |
+
#Actualiza el nuevo valor en el servidor en modo escritura.
|
151 |
+
with sftp.open(dir_quota, 'w') as archivo:
|
152 |
+
# Escribir el contenido final en el archivo
|
153 |
+
archivo.write(contenido_final)
|
154 |
+
|
155 |
contenido_final = int(contenido_final)
|
156 |
return contenido_final
|
157 |
|
funciones.py
CHANGED
@@ -75,13 +75,48 @@ def debitTokens(userfile, work, env):
|
|
75 |
|
76 |
return resultado_debitado
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
|
79 |
|
80 |
def getUserNovelty(userfile, aplicacion):
|
81 |
|
82 |
-
#print("Estoy en getUserNovelty")
|
83 |
usuario = tools.decompileUser(userfile)
|
84 |
-
#print("El usuario es...", usuario)
|
85 |
|
86 |
#Genera conexión inicial (general para cualquier función.)
|
87 |
sshListo, sftpListo = avaimet.conecta()
|
|
|
75 |
|
76 |
return resultado_debitado
|
77 |
|
78 |
+
def getQuota():
|
79 |
+
|
80 |
+
print(f"Estoy en getQuota...")
|
81 |
+
|
82 |
+
#Genera conexión inicial.
|
83 |
+
sshListo, sftpListo = avaimet.conecta()
|
84 |
+
dir_quota = nodes.quota + globales.quota
|
85 |
+
print("Ésto es dir quota: ", dir_quota)
|
86 |
+
|
87 |
+
#Obtiene el json con los datos.
|
88 |
+
data = avaimet.obtenContenidoArchivo(sftpListo, dir_quota)
|
89 |
+
print("Y ésto es data: ", data)
|
90 |
+
#Cierra la conexión.
|
91 |
+
avaimet.cierraConexion(sshListo, sftpListo)
|
92 |
+
|
93 |
+
return data
|
94 |
+
|
95 |
+
def updateQuota(costo_proceso):
|
96 |
+
|
97 |
+
print(f"Estoy en updateQuota...")
|
98 |
+
|
99 |
+
#Genera conexión inicial.
|
100 |
+
sshListo, sftpListo = avaimet.conecta()
|
101 |
+
dir_quota = nodes.quota + globales.quota
|
102 |
+
print("Ésto es dir quota: ", dir_quota)
|
103 |
+
|
104 |
+
#Obtiene el json con los datos.
|
105 |
+
quota_actual = avaimet.obtenContenidoArchivo(sftpListo, dir_quota)
|
106 |
+
print("Y ésto es data: ", quota_actual)
|
107 |
+
|
108 |
+
#Aplica las reglas de ésta app para debitar lo correspondiente.
|
109 |
+
quota_modificada = avaimet.modificaQuota(sftpListo, dir_quota, quota_actual, costo_proceso)
|
110 |
+
#Cierra la conexión.
|
111 |
+
avaimet.cierraConexion(sshListo, sftpListo)
|
112 |
+
|
113 |
+
return quota_modificada
|
114 |
+
|
115 |
|
116 |
|
117 |
def getUserNovelty(userfile, aplicacion):
|
118 |
|
|
|
119 |
usuario = tools.decompileUser(userfile)
|
|
|
120 |
|
121 |
#Genera conexión inicial (general para cualquier función.)
|
122 |
sshListo, sftpListo = avaimet.conecta()
|
globales.py
CHANGED
@@ -1,2 +1,3 @@
|
|
1 |
novelty = "/novelty.py"
|
2 |
data = "/data.py"
|
|
|
|
1 |
novelty = "/novelty.py"
|
2 |
data = "/data.py"
|
3 |
+
quota = "/quota.txt"
|
main.py
CHANGED
@@ -60,6 +60,31 @@ def debitTokens(userfile: str, work: str = "picswap", env: str = "dev"):
|
|
60 |
tokens = funciones.debitTokens(userfile,work, env)
|
61 |
return tokens
|
62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
## GET USER Novelty ##
|
64 |
#Vía Parámeters
|
65 |
@app.get("/getUserNovelty/{userfile}/{aplicacion}")
|
|
|
60 |
tokens = funciones.debitTokens(userfile,work, env)
|
61 |
return tokens
|
62 |
|
63 |
+
## CONTROL QUOTA ##
|
64 |
+
#Vía Parámeters
|
65 |
+
@app.get("/getQuota/")
|
66 |
+
def getQuota():
|
67 |
+
quota = funciones.getQuota()
|
68 |
+
return quota
|
69 |
+
|
70 |
+
#Vía Query
|
71 |
+
@app.get("/getQuota/")
|
72 |
+
def getQuota():
|
73 |
+
quota = funciones.getQuota()
|
74 |
+
return quota
|
75 |
+
|
76 |
+
#Vía Parámeters
|
77 |
+
@app.get("/updateQuota/{costo_proceso}")
|
78 |
+
def updateQuota(costo_proceso: int):
|
79 |
+
quota = funciones.updateQuota(costo_proceso)
|
80 |
+
return quota
|
81 |
+
|
82 |
+
#Vía Query
|
83 |
+
@app.get("/updateQuota/")
|
84 |
+
def updateQuota(costo_proceso: int):
|
85 |
+
quota = funciones.updateQuota(costo_proceso)
|
86 |
+
return quota
|
87 |
+
|
88 |
## GET USER Novelty ##
|
89 |
#Vía Parámeters
|
90 |
@app.get("/getUserNovelty/{userfile}/{aplicacion}")
|
nycklar/nodes.py
CHANGED
@@ -2,4 +2,5 @@ master = "root"
|
|
2 |
realm = "165.22.53.200"
|
3 |
key=b'kiSHsm7Y0hbyNdcFIav6OMT39gi29nIzT-rCrr0Tyc8=' #importante conn con server no es decompiler.
|
4 |
users_data = "chips/sulkusers-data/"
|
5 |
-
users_credits = "chips/sulkusers-credits/"
|
|
|
|
2 |
realm = "165.22.53.200"
|
3 |
key=b'kiSHsm7Y0hbyNdcFIav6OMT39gi29nIzT-rCrr0Tyc8=' #importante conn con server no es decompiler.
|
4 |
users_data = "chips/sulkusers-data/"
|
5 |
+
users_credits = "chips/sulkusers-credits/"
|
6 |
+
quota = "chips/sulku-quota"
|