Add arguments to select switch, ports and sys infos to be get and shown

This commit is contained in:
Dashie 2016-12-16 23:56:39 +01:00
parent d8d20c3c8b
commit 1bf9218a80
No known key found for this signature in database
GPG Key ID: C2D57B325840B755
1 changed files with 36 additions and 27 deletions

View File

@ -115,7 +115,7 @@ def get_switch_port_stats(headers, port):
print('Failed request: %s\n' % r.text)
def get_and_print_metrics(creds):
def get_and_print_metrics(creds, s_switch, s_ports, s_sys):
freebox_app_id = "fr.freebox.seximonitor"
# Fetch challenge
@ -204,6 +204,7 @@ def get_and_print_metrics(creds):
##
# General infos
if s_sys:
sysJsonRaw = get_system_config(headers)
myData['sys_fan_rpm'] = sysJsonRaw['result']['fan_rpm'] # rpm
myData['sys_temp_sw'] = sysJsonRaw['result']['temp_sw'] # Temp Switch, degree Celcius
@ -214,6 +215,7 @@ def get_and_print_metrics(creds):
##
# Switch status
if s_switch:
switchJsonRaw = get_switch_status(headers)
for i in switchJsonRaw['result']:
# 0 down, 1 up
@ -230,6 +232,9 @@ def get_and_print_metrics(creds):
else:
myData['switch_%s_mode' % i['id']] = 0 # auto
##
# Switch ports status
if s_ports:
for i in [1,2,3,4]:
switchPortStats = get_switch_port_stats(headers, i)
myData['switch_%s_rx_bytes_rate' % i] = switchPortStats['result']['rx_bytes_rate'] # bytes/s (?)
@ -315,6 +320,10 @@ if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-r', '--register', action='store_true', help="Register app with Freebox API")
parser.add_argument('-s', '--register-status', dest='status', action='store_true', help="Get register status")
parser.add_argument('-S', '--status-switch', dest='status_switch', action='store_true', help="Get and show switch status")
parser.add_argument('-P', '--status-ports', dest='status_ports', action='store_true', help="Get and show switch ports stats")
parser.add_argument('-H', '--status-sys', dest='status_sys', action='store_true', help="Get and show system status")
args = parser.parse_args()
auth = get_auth()
@ -324,4 +333,4 @@ if __name__ == '__main__':
elif args.status:
register_status(auth)
else:
get_and_print_metrics(auth)
get_and_print_metrics(auth, args.status_switch, args.status_ports, args.status_sys)