Skip to main content

blkinfo - Block Devices Information

PyPI version fury.io PyPI download day PyPI download month

Library

About

blkinfo is a python library to list information about all available or the specified block devices.

It bases on lsblk command line tool, provided by util-linux, in addition, it collects information about block devices, using /sys/block, /sys/devices, /proc directories.

The main goal is to provide Python's binding to lsblk. Old versions of lsblk, provided by util-linux-2.23.2 on Red Hat Enterprise Linux 7 and Centos 7 (and earlier versions) do not contain an option to output to JSON format.

Additional features to lsblk:

  • information about iSCSI target IP address and port number was added
  • block device usage statistics

Installation

Install python's package from PyPI repository using pip util (default is Python 3):

pip install blkinfo

pip2 install blkinfo

Install rpm package from Copr (experimental).

dnf copr enable galt/blkinfo

dnf install python2-blkinfo

dnf install python3-blkinfo

Usage example

Information about all available block devices:

import json
from blkinfo import BlkDiskInfo

myblkd = BlkDiskInfo()
all_my_disks = myblkd.get_disks()
json_output = json.dumps(all_my_disks)
print(json_output)

Passing filters as an argument to the get_disks() method:

import json
from blkinfo import BlkDiskInfo

myblkd = BlkDiskInfo()
filters = {
   'tran': 'iscsi'
}

my_filtered_disks = myblkd.get_disks(filters)
json_output = json.dumps(my_filtered_disks)
print(json_output)

Filters

  • name: device name
  • name_glob: globex for a device name
  • kname: internal kernel device name
  • size: size of the device
  • min_size: min size for a device
  • max_size: max size for a device
  • maj:min major and minor device numbers
  • ra: read-ahead device (e.g. type)
  • ro: read-only device
  • rm: removable device
  • hotplug: removable or hotplug device (usb, pcmcia, ...)
  • model: device identifier, including vendor name
  • serial: disk serial number
  • state: state of the device
  • hctl: string with 'Host:Channel:Target:Lun' string (for SCSI)
  • rota: rotational device
  • tran: device transport type
  • iscsi_target_ip: used together with 'tran': 'iscsi'
  • iscsi_target_port: used together with 'tran': 'iscsi'
  • is_mounted: does a disk have mounted partition

Roadmap

  1. Now blkinfo library is using lsblk command line tool directly. The good idea is to create lsblk core library in C and just add bindings in Python. https://github.com/karelzak/util-linux/issues/839

NOTE:

If you have got a question or suggestion, please, file an issue on GitHub or submit a PR. https://github.com/grinrag/blkinfo


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blkinfo-0.2.0.tar.gz (7.9 kB view details)

Uploaded Source

File details

Details for the file blkinfo-0.2.0.tar.gz.

File metadata

  • Download URL: blkinfo-0.2.0.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for blkinfo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 322a906595f78832d6725ac74a0b9fd2794df3388584d9f05c1a2f8e19324851
MD5 33c6a259efabf9b643974beaa78d4959
BLAKE2b-256 510492c0f6d2cae019384f01db784014408c98c01a9520a757cd1fd382ab95c4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 file

0.1.5

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

3 files

0.1.1

3 files

0.0.11

3 files

0.0.10

2 files

0.0.9

3 files

0.0.8

3 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page