aboutsummaryrefslogtreecommitdiffstats
path: root/benchmarks/playbooks/info_script/info_collect.py
blob: 3fc35d5a40e9700e531f69ba0fa810769cde5e55 (plain)
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
import os
import pickle
import json
import sys

os.system('inxi -b -c0 -n > $PWD/est_2')
est_ob = open("est_2", "r+")
est_ob2 = open("est_1", "w+")
in_string = est_ob.read().replace('\n', ' ')
cpu_idle = float(os.popen("""top -bn1 | grep "Cpu(s)" | awk '{print $8}'""").read().rstrip())
cpu_usage = 100 - cpu_idle
est_ob2.write(in_string)
est_ob.close()
est_ob2.close()

inxi_host = os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Host:).*(?=Kernel)' """).read().lstrip().rstrip()
inxi_mem = os.popen("""cat $PWD/est_1 | grep -o -P '(?<=Memory:).*(?=MB)' """).read().lstrip().rstrip() + "MB"
inxi_cpu = os.popen("""cat $PWD/est_1 | grep -o -P '(?<=CPU).*(?=speed)' | cut -f2 -d':'""").read().lstrip().rstrip()
inxi_distro = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Distro:).*(?=Machine:)' """).read().rstrip().lstrip()
inxi_kernel = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Kernel:).*(?=Console:)' """).read().rstrip().lstrip()
inxi_HD = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=HDD Total Size:).*(?=Info:)' """).read().rstrip().lstrip()
inxi_product = os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=product:).*(?=Mobo:)' """).read().rstrip().lstrip()

info_dict = {'hostname': inxi_host,
             'product': inxi_product,
             'os': inxi_distro,
             'kernel': inxi_kernel,
             'cpu': inxi_cpu,
             'cpu_usage': '{0}%'.format(str(round(cpu_usage, 3))),
             'memory_usage': inxi_mem,
             'disk_usage': inxi_HD}
network_flag = str(sys.argv[1]).rstrip()

if (network_flag == 'n'):

    info_dict['network_interfaces'] = {}
    tem_2 = """ cat $PWD/est_1 | grep -o -P '(?<=Network:).*(?=Info:)'"""
    print os.system(tem_2 + ' > Hello')
    i = int(os.popen(tem_2 + " | grep -o 'Card' | wc -l ").read())
    print i

    for x in range(1, i + 1):
            tem = """ cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(x) + """:).*(?=Card-""" + str(x + 1) + """)'"""
            if i == 1:
                tem = """ cat $PWD/est_1 | grep -o -P '(?<=Network:).*(?=Info:)'"""
                inxi_card_1 = ((os.popen(tem + " | grep -o -P '(?<=Card:).*(?=Drives:)'|sed 's/ *driver:.*//'").read().rstrip().lstrip()))
                print inxi_card_1
                info_dict['network_interfaces']['interface_' + str(x)] = {}
                info_dict['network_interfaces']['interface_' + str(x)]['network_card'] = inxi_card_1
                inxi_card_2 = ((os.popen(tem + "| grep -o -P '(?<=Card:).*(?=Drives:)'|sed -e 's/^.*IF: //'").read())).rstrip().lstrip()
                info_dict['network_interfaces']['interface_' + str(x)]['interface_info'] = inxi_card_2
            elif x < (i):
                print "two"
                inxi_card_1 = ((os.popen(tem + "| sed 's/ *driver:.*//'").read().rstrip().lstrip()))
                info_dict['network_interfaces']['interface_' + str(x)] = {}
                info_dict['network_interfaces']['interface_' + str(x)]['network_Card'] = inxi_card_1
                inxi_card_2 = ((os.popen(tem + "|sed -e 's/^.*IF: //'").read())).rstrip().lstrip()
                info_dict['network_interfaces']['interface_' + str(x)]['interface_info'] = inxi_card_2
            elif x == i:
                print "Three"
                info_dict['network_interfaces']['interface_' + str(x)] = {}
                inxi_card_1 = ((os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(x) + """:).*(?=Drives:)'| sed 's/ *driver:.*//' """).read().rstrip().lstrip()))
                info_dict['network_interfaces']['interface_' + str(x)]['network_Card'] = inxi_card_1
                inxi_card_2 = ((os.popen(""" cat $PWD/est_1 | grep -o -P '(?<=Card-""" + str(x) + """:).*(?=Drives:)'| sed -e 's/^.*IF: //' """).read().rstrip().lstrip()))
                info_dict['network_interfaces']['interface_' + str(x)]['interface_info'] = inxi_card_2
            else:
                print "No network cards"
    os.system("bwm-ng -o plain -c 1 | grep -v '=' | grep -v 'iface' | grep -v '-'   > bwm_dump")
    n_interface = int(os.popen(" cat bwm_dump | grep -v 'total' |  wc -l ").read().rstrip())
    interface = {}
    for x in range(1, n_interface):
        interface_name = os.popen(" cat bwm_dump | awk 'NR==" + str(x) + "' | awk '{print $1}' ").read().rstrip().replace(':', '')
        interface[str(interface_name)] = {}
        interface[str(interface_name)]['Rx (KB/s)'] = os.popen(" cat bwm_dump | awk 'NR==" + str(x) + "' | awk '{print $2}' ").read().rstrip()
        interface[str(interface_name)]['Tx (KB/s)'] = os.popen(" cat bwm_dump | awk 'NR==" + str(x) + "' | awk '{print $4}' ").read().rstrip()
        interface[str(interface_name)]['Total (KB/s)'] = os.popen(" cat bwm_dump | awk 'NR== " + str(x) + "' | awk '{print $6}' ").read().rstrip()

    info_dict['interface_io'] = interface

print info_dict

with open('./sys_info_temp', 'w+')as out_info:
    pickle.dump(info_dict, out_info)

with open('temp', 'w+') as result_json:
    json.dump(info_dict, result_json, indent=4, sort_keys=True)