-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollector.py
34 lines (33 loc) · 1.47 KB
/
collector.py
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
#!/usr/bin/python3.5
import subprocess
from mysql_conn import db_connect
from ssh_conn import ssh_connect
##reset function!!!!
def collect_hostnames():
ssh_client = ssh_connect()
cursor,db = db_connect()
cursor.execute("SELECT INET_NTOA(ip) FROM credit_minmax")
ip_list = [item[0] for item in cursor.fetchall()]
for ip in ip_list:
ssh_client.connect(hostname=ip,username='collector', key_filename='/home/collector/.ssh/id_rsa')
stdin,stdout,stderr=ssh_client.exec_command('hostname')
stdout.channel.recv_exit_status()
out=str(stdout.read().decode('utf-8').strip())
cursor.execute("UPDATE credit_minmax SET hostname=%s, credits=0, sum_W=0 WHERE ip=INET_ATON(%s)",(out.strip(),ip))
cursor.execute("UPDATE minmax SET hostname=%s,sum_W=0 WHERE ip=INET_ATON(%s)",(out.strip(),ip))
db.commit()
ssh_client.close()
def collect_demands():
ssh_client = ssh_connect()
cursor,db = db_connect()
cursor.execute("SELECT INET_NTOA(ip) FROM credit_minmax")
ip_list = [item[0] for item in cursor.fetchall()]
for ip in ip_list:
ssh_client.connect(hostname=ip,username='collector', key_filename='/home/collector/.ssh/id_rsa')
stdin,stdout,stderr=ssh_client.exec_command('python3 /home/collector/generate_W.py')
stdout.channel.recv_exit_status()
out=str(stdout.read().decode('utf-8').strip())
cursor.execute("UPDATE credit_minmax SET D=%s WHERE ip=INET_ATON(%s)",(out,ip))
cursor.execute("UPDATE minmax SET D=%s WHERE ip=INET_ATON(%s)",(out,ip))
db.commit()
ssh_client.close()