Blame tools/debug-helper.py

Packit Service b23acc
#!/usr/bin/python
Packit Service b23acc
# Copyright (C) 2011 Mathieu Trudel-Lapierre <mathieu.tl@gmail.com>
Packit Service b23acc
Packit Service b23acc
import dbus
Packit Service b23acc
import argparse
Packit Service b23acc
Packit Service b23acc
bus = dbus.SystemBus()
Packit Service b23acc
Packit Service b23acc
parser = argparse.ArgumentParser(
Packit Service b23acc
    description="Interface to easily control logging levels for NetworkManager, ModemManager, and wpasupplicant."
Packit Service b23acc
)
Packit Service b23acc
Packit Service b23acc
# NM options
Packit Service b23acc
parser.add_argument(
Packit Service b23acc
    "--nm",
Packit Service b23acc
    dest="do_set_nm_logging",
Packit Service b23acc
    action="store",
Packit Service b23acc
    help="modify log level for NetworkManager (debug, info, etc.)",
Packit Service b23acc
)
Packit Service b23acc
parser.add_argument(
Packit Service b23acc
    "--domains",
Packit Service b23acc
    dest="log_domains",
Packit Service b23acc
    action="store",
Packit Service b23acc
    default=[],
Packit Service b23acc
    nargs="+",
Packit Service b23acc
    help='log "domains" to use with NetworkManager (HW, CORE, etc.)',
Packit Service b23acc
)
Packit Service b23acc
Packit Service b23acc
# MM options
Packit Service b23acc
parser.add_argument(
Packit Service b23acc
    "--mm",
Packit Service b23acc
    dest="do_set_mm_logging",
Packit Service b23acc
    action="store",
Packit Service b23acc
    help="modify log level for ModemManager (debug, info, etc.)",
Packit Service b23acc
)
Packit Service b23acc
Packit Service b23acc
# wpasupplicant options
Packit Service b23acc
parser.add_argument(
Packit Service b23acc
    "--wpa",
Packit Service b23acc
    dest="do_set_wpa_logging",
Packit Service b23acc
    action="store",
Packit Service b23acc
    help="modify log level for wpasupplicant (debug, msgdump, info, etc.)",
Packit Service b23acc
)
Packit Service b23acc
Packit Service b23acc
args = parser.parse_args()
Packit Service b23acc
Packit Service b23acc
if args.do_set_nm_logging:
Packit Service b23acc
    # print args.log_domains
Packit Service b23acc
    dom_msg = ""
Packit Service b23acc
    if args.log_domains:
Packit Service b23acc
        dom_msg = " for domains: " + ",".join(args.log_domains)
Packit Service b23acc
    print(
Packit Service b23acc
        "Setting NetworkManager log level to '" + args.do_set_nm_logging + "'" + dom_msg
Packit Service b23acc
    )
Packit Service b23acc
Packit Service b23acc
    nm_bus = bus.get_object(
Packit Service b23acc
        "org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager"
Packit Service b23acc
    )
Packit Service b23acc
    nm = dbus.Interface(nm_bus, dbus_interface="org.freedesktop.NetworkManager")
Packit Service b23acc
    nm.SetLogging(args.do_set_nm_logging, ",".join(args.log_domains))
Packit Service b23acc
Packit Service b23acc
if args.do_set_mm_logging:
Packit Service b23acc
    print("Setting ModemManager log level to '" + args.do_set_mm_logging + "'")
Packit Service b23acc
Packit Service b23acc
    mm_bus = bus.get_object(
Packit Service b23acc
        "org.freedesktop.ModemManager", "/org/freedesktop/ModemManager"
Packit Service b23acc
    )
Packit Service b23acc
    mm = dbus.Interface(mm_bus, dbus_interface="org.freedesktop.ModemManager")
Packit Service b23acc
    mm.SetLogging(args.do_set_mm_logging)
Packit Service b23acc
Packit Service b23acc
if args.do_set_wpa_logging:
Packit Service b23acc
    print("Setting wpa_supplicant log level to '" + args.do_set_wpa_logging + "'")
Packit Service b23acc
Packit Service b23acc
    if "debug" in args.do_set_wpa_logging or "msgdump" in args.do_set_wpa_logging:
Packit Service b23acc
        print("Enabling timestamps for wpasupplicant debugging logs")
Packit Service b23acc
        use_timestamps = dbus.Boolean(True, variant_level=1)
Packit Service b23acc
    else:
Packit Service b23acc
        print("Disabling timestamps for wpasupplicant debugging logs")
Packit Service b23acc
        use_timestamps = dbus.Boolean(False, variant_level=1)
Packit Service b23acc
Packit Service b23acc
    wpa_bus = bus.get_object("fi.w1.wpa_supplicant1", "/fi/w1/wpa_supplicant1")
Packit Service b23acc
    wpa_properties = dbus.Interface(
Packit Service b23acc
        wpa_bus, dbus_interface="org.freedesktop.DBus.Properties"
Packit Service b23acc
    )
Packit Service b23acc
    wpa_properties.Set("fi.w1.wpa_supplicant1", "DebugTimestamp", use_timestamps)
Packit Service b23acc
    wpa_properties.Set(
Packit Service b23acc
        "fi.w1.wpa_supplicant1",
Packit Service b23acc
        "DebugLevel",
Packit Service b23acc
        dbus.String(args.do_set_wpa_logging, variant_level=1),
Packit Service b23acc
    )