-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprocessing
executable file
·144 lines (120 loc) · 3.63 KB
/
processing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/usr/bin/env python
# *- coding: utf-8 -*
# @author: Positive Compliance / Dante Bazaldua
# @brief: Shell for Cloud-processing application
import click
import os
import subprocess
import hashlib
CONFIG = {
"DAEMON": False,
"ENV": 'dev',
"METHOD": 'radv1'
}
@click.group()
@click.option('--daemon', '-d', is_flag=True, default=True, help='Bandera para iniciarlo en \
modo daemon dentro del S.O.')
@click.option('--env', '-e', type=(unicode), default='dev', help='Env: prod/dev \
[default: dev]')
@click.option('--method', '-m', type=(unicode), default='radv1', help='radv1 \
(actualmente soportado)/ radv7 (multithread)')
def cli(daemon, env, method):
"""
Utilidad para manejo de procesamiento y conexión con Nemesysco con
distintas variables como son el ambiente (producción o desarrollo)
para especificar cuando solo se probarán algunas funcionalidades y
cuando se pondrá como servicio.
"""
err = checkDefaults(daemon, env, method)
for element in err:
if element == 0:
# Configuración para daemon
CONFIG['DAEMON'] = True
if element == 1:
# Significa que hay que hacer llamadas a Nemesysco (normalmente)
CONFIG['DAEMON'] = 'prod'
if element == 2:
# Cambiar de estandar de procesamiento
print "No cuento con tal estándar de procesamiento."
exit()
def checkDefaults(*params):
# Daemon, enviorment,
defaults = [True, 'dev', 'radv1']
err = []
for i in range(len(params)):
if params[i] != defaults[i]:
err.append(i)
return err
@cli.command()
def start():
"""
Inicia el procesamiento.
"""
cliPresent()
# os.system("pscloud")
subprocess.Popen("./pscloud --mode=prod", shell=True)
@cli.command()
def restart():
"""
Inicia el procesamiento.
"""
os.system("kill -9 $(pgrep python)")
os.system("./pscloud --mode=prod")
@cli.command()
def latest():
"""
Muestra lo último que hace el cloud.
"""
os.system("tail -f ./log/$(ls ./log | sort -V | tail -n 1)")
@cli.command()
def watch():
"""
Muestra lo último que hace el cloud.
"""
os.system("cloud=$(echo $(pwd))")
os.system("less ./log/$(ls ./log | sort -V | tail -n 1)")
@cli.command()
def discover():
"""
Muestra los PUID de cloud processing.
"""
os.system("pgrep python")
@cli.command()
@click.option('--force', '-f', is_flag=True, default=False, help='Force kill')
def kill(force):
"""
Destruye los procesos de cloud.
"""
if force is False:
click.confirm('¿En verdad quieres detenerlo?', abort=True)
os.system("kill -9 $(pgrep python)")
@cli.command()
@click.option('--key', '-k', type=(unicode), help='Buscar \
archivo de procesamiento en carpeta tran y mostrarlo.', required=True)
def find(key):
"""
Encuentra el archivo de procesamiento de una key dada (Transfer).
"""
try:
m = hashlib.md5()
m.update(key)
hashed = m.hexdigest()
if os.path.isfile('./tran/' + hashed + '.txt'):
print "%s" % (hashed)
# print "¡Eureka!"
# print "File: %s.txt" % (hashed)
# print "----------------------------------------------------"
with open('./tran/' + hashed + '.txt', 'r') as f:
pass
# print f.read()
else:
print "Lo siento, no existe."
except Exception as e:
print str(e)
def cliPresent():
click.secho('Positive Processing v1.0', bold=True)
click.echo('Localidades importantes: \n\
System log = /log\n\
Individual Results = /trans\n')
if __name__ == '__main__':
cli()