Esempio n. 1
0
def detect_disks(hw_lst):
    'Detect disks.'
    names = diskinfo.disknames()
    sizes = diskinfo.disksizes(names)
    for name in [name for name, size in sizes.items() if size > 0]:
        hw_lst.append(('disk', name, 'size', str(sizes[name])))
        item_list = ['vendor', 'model', 'rev']
        for my_item in item_list:
            try:
                with open('/sys/block/%s/device/%s' % (name, my_item),
                          'r') as dev:
                    hw_lst.append(('disk', name, my_item,
                                   dev.readline().rstrip('\n').strip()))
            except Exception, excpt:
                sys.stderr.write('Failed at getting disk information '
                                 'at /sys/block/%s/device/%s: %s\n' %
                                 (name, my_item, str(excpt)))

        item_list = ['WCE', 'RCD']
        item_def = {'WCE': 'Write Cache Enable', 'RCD': 'Read Cache Disable'}
        for my_item in item_list:
            sdparm_cmd = subprocess.Popen("sdparm -q --get=%s /dev/%s | "
                                          "awk '{print $2}'" % (my_item, name),
                                          shell=True,
                                          stdout=subprocess.PIPE)
            for line in sdparm_cmd.stdout:
                hw_lst.append(('disk', name, item_def.get(my_item),
                               line.rstrip('\n').strip()))
Esempio n. 2
0
def detect_disks(hw_lst):
    'Detect disks.'
    names = diskinfo.disknames()
    sizes = diskinfo.disksizes(names)
    for name in [name for name, size in sizes.items() if size > 0]:
        hw_lst.append(('disk', name, 'size', str(sizes[name])))
        item_list = ['vendor', 'model', 'rev']
        for my_item in item_list:
            try:
                with open('/sys/block/%s/device/%s' % (name,
                                                       my_item),
                          'r') as dev:
                    hw_lst.append(('disk', name, my_item,
                                   dev.readline().rstrip('\n').strip()))
            except Exception, excpt:
                sys.stderr.write(
                    'Failed at getting disk information '
                    'at /sys/block/%s/device/%s: %s\n' % (name,
                                                          my_item,
                                                          str(excpt)))

        item_list = ['WCE', 'RCD']
        item_def = {'WCE': 'Write Cache Enable', 'RCD': 'Read Cache Disable'}
        for my_item in item_list:
            sdparm_cmd = subprocess.Popen("sdparm -q --get=%s /dev/%s | "
                                          "awk '{print $2}'" % (my_item, name),
                                          shell=True,
                                          stdout=subprocess.PIPE)
            for line in sdparm_cmd.stdout:
                hw_lst.append(('disk', name, item_def.get(my_item),
                               line.rstrip('\n').strip()))
Esempio n. 3
0
def detect_disks(hw_lst):
    'Detect disks.'
    names = diskinfo.disknames()
    sizes = diskinfo.disksizes(names)
    disks = [name for name, size in sizes.items() if size > 0]
    hw_lst.append(('disk', 'logical', 'count', str(len(disks))))
    for name in disks:
        hw_lst.append(('disk', name, 'size', str(sizes[name])))
        item_list = [
            'device/vendor', 'device/model', 'device/rev',
            'queue/optimal_io_size', 'queue/physical_block_size',
            'queue/rotational'
        ]
        for my_item in item_list:
            try:
                with open('/sys/block/%s/%s' % (name, my_item), 'r') as dev:
                    hw_lst.append(('disk', name, my_item.split('/')[1],
                                   dev.readline().rstrip('\n').strip()))
            except Exception, excpt:
                sys.stderr.write('Failed at getting disk information '
                                 'at /sys/block/%s/device/%s: %s\n' %
                                 (name, my_item, str(excpt)))

        item_list = ['WCE', 'RCD']
        item_def = {'WCE': 'Write Cache Enable', 'RCD': 'Read Cache Disable'}
        for my_item in item_list:
            sdparm_cmd = Popen("sdparm -q --get=%s /dev/%s | "
                               "awk '{print $2}'" % (my_item, name),
                               shell=True,
                               stdout=PIPE)
            for line in sdparm_cmd.stdout:
                hw_lst.append(('disk', name, item_def.get(my_item),
                               line.rstrip('\n').strip()))

        # In some VMs, the disk-by id doesn't exists
        if os.path.exists('/dev/disk/by-id/'):
            for entry in os.listdir('/dev/disk/by-id/'):
                if os.path.realpath('/dev/disk/by-id/' + entry).split('/')[-1] == \
                   name:
                    id_name = "id"
                    if entry.startswith('wwn'):
                        id_name = "wwn-id"
                    elif entry.startswith('scsi'):
                        id_name = "scsi-id"
                    hw_lst.append(('disk', name, id_name, entry))

        detect_utils.read_SMART(hw_lst, "/dev/%s" % name)
Esempio n. 4
0
def detect_disks(hw_lst):
    'Detect disks.'
    names = diskinfo.disknames()
    sizes = diskinfo.disksizes(names)
    disks = [name for name, size in sizes.items() if size > 0]
    hw_lst.append(('disk', 'logical', 'count', str(len(disks))))
    for name in disks:
        hw_lst.append(('disk', name, 'size', str(sizes[name])))
        item_list = ['device/vendor', 'device/model', 'device/rev',
                     'queue/optimal_io_size', 'queue/physical_block_size', 'queue/rotational']
        for my_item in item_list:
            try:
                with open('/sys/block/%s/%s' % (name, my_item), 'r') as dev:
                    hw_lst.append(('disk', name, my_item.split('/')[1],
                                   dev.readline().rstrip('\n').strip()))
            except Exception, excpt:
                sys.stderr.write(
                    'Failed at getting disk information '
                    'at /sys/block/%s/device/%s: %s\n' % (name,
                                                          my_item,
                                                          str(excpt)))

        item_list = ['WCE', 'RCD']
        item_def = {'WCE': 'Write Cache Enable', 'RCD': 'Read Cache Disable'}
        for my_item in item_list:
            sdparm_cmd = Popen("sdparm -q --get=%s /dev/%s | "
                               "awk '{print $2}'" % (my_item, name),
                               shell=True,
                               stdout=PIPE)
            for line in sdparm_cmd.stdout:
                hw_lst.append(('disk', name, item_def.get(my_item),
                               line.rstrip('\n').strip()))

        # In some VMs, the disk-by id doesn't exists
        if os.path.exists('/dev/disk/by-id/'):
            for entry in os.listdir('/dev/disk/by-id/'):
                if os.path.realpath('/dev/disk/by-id/' + entry).split('/')[-1] == \
                   name:
                    id_name = "id"
                    if entry.startswith('wwn'):
                        id_name = "wwn-id"
                    elif entry.startswith('scsi'):
                        id_name = "scsi-id"
                    hw_lst.append(('disk', name, id_name, entry))

        detect_utils.read_SMART(hw_lst, "/dev/%s" % name)
Esempio n. 5
0
def detect_disks(hw_lst):
    'Detect disks.'
    names = diskinfo.disknames()
    sizes = diskinfo.disksizes(names)
    disks = [name for name, size in sizes.items() if size > 0]
    hw_lst.append(('disk', 'logical', 'count', str(len(disks))))
    for name in disks:
        hw_lst.append(('disk', name, 'size', str(sizes[name])))
        item_list = ['vendor', 'model', 'rev']
        for my_item in item_list:
            try:
                with open('/sys/block/%s/device/%s' % (name,
                                                       my_item),
                          'r') as dev:
                    hw_lst.append(('disk', name, my_item,
                                   dev.readline().rstrip('\n').strip()))
            except Exception, excpt:
                sys.stderr.write(
                    'Failed at getting disk information '
                    'at /sys/block/%s/device/%s: %s\n' % (name,
                                                          my_item,
                                                          str(excpt)))

        item_list = ['WCE', 'RCD']
        item_def = {'WCE': 'Write Cache Enable', 'RCD': 'Read Cache Disable'}
        for my_item in item_list:
            sdparm_cmd = Popen("sdparm -q --get=%s /dev/%s | "
                               "awk '{print $2}'" % (my_item, name),
                               shell=True,
                               stdout=PIPE)
            for line in sdparm_cmd.stdout:
                hw_lst.append(('disk', name, item_def.get(my_item),
                               line.rstrip('\n').strip()))

        id_label = Popen("cd /dev/disk/by-id; for device in *;"
                         " do readlink $device | grep -qw %s && echo $device;"
                         " done;" % name,
                         shell=True,
                         stdout=PIPE)
        for line in id_label.stdout:
            hw_lst.append(('disk', name, 'id', line.rstrip('\n').strip()))
Esempio n. 6
0
def detect_disks(hw_lst):
    'Detect disks.'
    names = diskinfo.disknames()
    sizes = diskinfo.disksizes(names)
    disks = [name for name, size in sizes.items() if size > 0]
    hw_lst.append(('disk', 'logical', 'count', str(len(disks))))
    for name in disks:
        hw_lst.append(('disk', name, 'size', str(sizes[name])))
        item_list = ['vendor', 'model', 'rev']
        for my_item in item_list:
            try:
                with open('/sys/block/%s/device/%s' % (name, my_item),
                          'r') as dev:
                    hw_lst.append(('disk', name, my_item,
                                   dev.readline().rstrip('\n').strip()))
            except Exception, excpt:
                sys.stderr.write('Failed at getting disk information '
                                 'at /sys/block/%s/device/%s: %s\n' %
                                 (name, my_item, str(excpt)))

        item_list = ['WCE', 'RCD']
        item_def = {'WCE': 'Write Cache Enable', 'RCD': 'Read Cache Disable'}
        for my_item in item_list:
            sdparm_cmd = Popen("sdparm -q --get=%s /dev/%s | "
                               "awk '{print $2}'" % (my_item, name),
                               shell=True,
                               stdout=PIPE)
            for line in sdparm_cmd.stdout:
                hw_lst.append(('disk', name, item_def.get(my_item),
                               line.rstrip('\n').strip()))

        id_label = Popen("cd /dev/disk/by-id; for device in *;"
                         " do readlink $device | grep -qw %s && echo $device;"
                         " done;" % name,
                         shell=True,
                         stdout=PIPE)
        for line in id_label.stdout:
            hw_lst.append(('disk', name, 'id', line.rstrip('\n').strip()))