ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [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