device: renew dhcp leases on awake for software devices
[NetworkManager.git] / tools / debug-helper.py
1 #!/usr/bin/python
2 # Copyright (C) 2011 Mathieu Trudel-Lapierre <mathieu.tl@gmail.com>
3
4 import dbus
5 import argparse
6
7 bus = dbus.SystemBus()
8
9 parser = argparse.ArgumentParser(description='Interface to easily control logging levels for NetworkManager, ModemManager, and wpasupplicant.')
10
11 # NM options
12 parser.add_argument('--nm', dest='do_set_nm_logging', action='store',
13                    help='modify log level for NetworkManager (debug, info, etc.)')
14 parser.add_argument('--domains', dest='log_domains', action='store',
15                    default=[], nargs='+',
16                    help='log "domains" to use with NetworkManager (HW, CORE, etc.)')
17
18 # MM options
19 parser.add_argument('--mm', dest='do_set_mm_logging', action='store',
20                    help='modify log level for ModemManager (debug, info, etc.)')
21
22 # wpasupplicant options
23 parser.add_argument('--wpa', dest='do_set_wpa_logging', action='store',
24                    help='modify log level for wpasupplicant (debug, msgdump, info, etc.)')
25
26 args = parser.parse_args()
27
28 if args.do_set_nm_logging:
29     #print args.log_domains
30     dom_msg = ""
31     if args.log_domains:
32             dom_msg = " for domains: " + ','.join(args.log_domains)
33     print "Setting NetworkManager log level to '" + args.do_set_nm_logging + "'" + dom_msg
34
35     nm_bus = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
36     nm = dbus.Interface(nm_bus, dbus_interface='org.freedesktop.NetworkManager')
37     nm.SetLogging(args.do_set_nm_logging, ','.join(args.log_domains))
38
39 if args.do_set_mm_logging:
40     print "Setting ModemManager log level to '" + args.do_set_mm_logging + "'"
41
42     mm_bus = bus.get_object('org.freedesktop.ModemManager', '/org/freedesktop/ModemManager')
43     mm = dbus.Interface(mm_bus, dbus_interface='org.freedesktop.ModemManager')
44     mm.SetLogging(args.do_set_mm_logging)
45
46 if args.do_set_wpa_logging:
47     print "Setting wpa_supplicant log level to '" + args.do_set_wpa_logging + "'"
48
49     if 'debug' in args.do_set_wpa_logging or 'msgdump' in args.do_set_wpa_logging:
50         print "Enabling timestamps for wpasupplicant debugging logs"
51         use_timestamps = dbus.Boolean(True, variant_level=1)
52     else:
53         print "Disabling timestamps for wpasupplicant debugging logs"
54         use_timestamps = dbus.Boolean(False, variant_level=1)
55
56     wpa_bus = bus.get_object('fi.w1.wpa_supplicant1', '/fi/w1/wpa_supplicant1')
57     wpa_properties = dbus.Interface(wpa_bus, dbus_interface='org.freedesktop.DBus.Properties')
58     wpa_properties.Set('fi.w1.wpa_supplicant1', 'DebugTimestamp', use_timestamps)
59     wpa_properties.Set('fi.w1.wpa_supplicant1', 'DebugLevel',
60                            dbus.String(args.do_set_wpa_logging, variant_level=1))
61