[sisyphus] I: netlink python lib (rtnetlink, taskstats, ipq...)
Peter V. Saveliev
peet на altlinux.ru
Чт Июл 7 13:59:10 UTC 2011
...
Только что отправил в Сизиф python-module-cxnet 0.7.1-alt4, скоро доползёт.
Основной упор на данный момент делается на библиотеки rtnl и iproute2,
так как taskstats вроде бы заработал как надо.
Ударный туториал по iproute2, как пример использования:
8<-----------------------------------------------------------------------
$ sudo apt-get install python-module-cxnet
$ vim ./ifcfg.py
#!/usr/bin/env python
from __future__ import print_function
from cxnet.netlink.iproute2 import iproute2
links = iproute2.get_all_links()
print("%-16s%-16s%-16s%-16s\n" % ("name","type","state","wireless"))
[ print("%-16s%-16s%-16s%-16s" % \
(x["dev"],x["link_type"],x["state"],x["wireless"])) \
for x in links ]
8<-----------------------------------------------------------------------
$ python ./ifcfg.py
name type state wireless
lo LOOPBACK UNKNOWN None
eth0 ETHER UP None
wlan0 ETHER DOWN wlan0
br0 ETHER UNKNOWN None
br0.100 ETHER UP None
br0.101 ETHER UP None
8<-----------------------------------------------------------------------
...
Про taskstats уже вроде писал, тоже полезная вещь -- сборка информации
по процессам, котороя информация не всегда и не вся доступна через
/proc. Как по живым, так и подписка на события завершения процесса. Для
системного профилирования.
...
Какие появились полезняшки в cxnet.netlink.rtnl:
* работает на питоне от 2.5 до 2.7, проверял на Maemo на n810 (ARM) --
всё тоже летает (впрочем, для Сизифа это оффтопег, там по определению
работает)
* больше атрибутов распознаёт парсер теперь, нераспознанные атрибуты
перечисляются в ответе. Для интерфейсов, например, распознаётся
link_type, operation state
* наступив на горло принципиальности, задействовал ioctl, теперь
библиотека может проверять интерфейсы на наличие wireless-расширений
* появилась возможность добавлять/удалять адреса через rtnetlink (ну,
если есть права :)
* кэширование ответов в iproute2, оптимизация по скорости
...
Ну там много ещё чего.
...
Что дальше? А дальше я потихоньку точу виртуальные файловые системы,
которые представляют различные объекты netlink в виде файлов с доступом
как на read-only, так и на read-write. Первая альфа (как раз taskstats и
iproute2) пойдёт в Сизиф на выходных. Живой (хотя и скучноватый, без
туннелей, wifi и прочих ppp -- но что поделать, сервер-таки) пример
такой ФС можно посмотреть тут: http://vfs.peet.spb.ru/
...
Если нужно, пинайте, попробую или заняться документацией, или приму
патчи на эту тему. Пока упор идёт не на документирование, а на
разработку, что неверно, но в данном случае неизбежно. По необходимости
могу пересмотреть приоритеты.
--
Peter V. Saveliev
Подробная информация о списке рассылки Sisyphus