* [sisyphus] I: netlink python lib (rtnetlink, taskstats, ipq...)
@ 2011-07-07 13:59 Peter V. Saveliev
0 siblings, 0 replies; only message in thread
From: Peter V. Saveliev @ 2011-07-07 13:59 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
...
Только что отправил в Сизиф 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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-07-07 13:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-07 13:59 [sisyphus] I: netlink python lib (rtnetlink, taskstats, ipq...) Peter V. Saveliev
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git