File: apport-hook.py

package info (click to toggle)
libatasmart 0.19-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, sid, trixie
  • size: 2,040 kB
  • sloc: sh: 11,295; ansic: 5,645; makefile: 84; python: 25
file content (33 lines) | stat: -rw-r--r-- 943 bytes parent folder | download | duplicates (3)
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
'''apport package hook for libatasmart

(c) 2009 Canonical Ltd.
Author: Martin Pitt <martin.pitt@ubuntu.com>
'''

import os
import os.path
import apport.hookutils
import dbus

UD = 'org.freedesktop.UDisks'

def add_info(report):
    report['UdisksDump'] = apport.hookutils.command_output(['udisks', '--dump'])
    report['Udisks2Dump'] = apport.hookutils.command_output(['udisksctl', 'dump'])

    # grab SMART blobs
    dkd = dbus.Interface(dbus.SystemBus().get_object(UD,
        '/org/freedesktop/UDisks'), UD)
    for d in dkd.EnumerateDevices():
        dev_props = dbus.Interface(dbus.SystemBus().get_object(UD, d),
                dbus.PROPERTIES_IFACE)
        blob = dev_props.Get(UD, 'DriveAtaSmartBlob')
        if len(blob) > 0:
            report['AtaSmartBlob_' + os.path.basename(d)] = ''.join(map(chr, blob))

if __name__ == '__main__':
    r = {}
    add_info(r)
    for k, v in r.items():
        print('%s: "%s"' % (k, v))