* [sisyphus] pyvfs package
@ 2012-10-05 14:56 Peter V. Saveliev
2012-10-05 15:20 ` REAL
0 siblings, 1 reply; 5+ messages in thread
From: Peter V. Saveliev @ 2012-10-05 14:56 UTC (permalink / raw)
To: sisyphus
…
Отправил в Сизиф (когда-нибудь, наверное, доползёт) пакет
python-module-pyvfs.
В двух словах, вдруг кому будет интересно. Первичной задачей было
представление объектов петона в виде директорий и файлов на виртуальной
ФС в целях мониторинга, отладки и т.п.
Быстрый старт: допустимы вы имеете скрипт my_script.py и хотите понять,
что происходит внутри него с объектами класса MyClass. Для этого
достаточно следующего:
from pyvfs.objectfs import export
…
@export
class MyClass(object):
…
После этого достаточно запустить скрипт. Пока он будет работать, объекты
класса MyClass будут доступны на виртуальной файловой системе.
Как выбрать ФС и как её подключить: для простоты интеграции с
существующими сервисами (разрабатывается она для отладки большого
сурового демона на петоне) библиотека ориентируется на переменные окружения.
PYVFS_PROTO — может быть 9p или fuse.
Если протокол выбран 9p, в системе необходимо иметь python-module-py9p.
ФС будет экспортирована по умолчанию по адресу 127.0.0.1:10001,
подключить её можно с помощью команды
# mount -t 9p -o ro,port=10001 127.0.0.1 /mnt
Если протокол выбран fuse, файловая система автоматически будет *уже*
смонтирована в директорию, указанную в переменной окружения
PYVFS_MOUNTPOINT. Для работы протокола fuse нужно иметь в системе
python-module-fuse. По окончанию работы не забудьте отмонтировать ФС
(пока что библиотека этого автоматически не делает).
…
Плюсы:
* Может использоваться для мониторинга структур без использования
отладчиков, без установки брейкпойнтов и так далее. Библиотека не служит
и не может служить заменой отладчикам, однако часто нужно всего лишь
получить содержимое внутренних структур в рантайме.
* Простота интеграции: всё, что надо, это добавить в любой код две
строчки, одну на импорт, вторую для декорирования нужного класса. Если
необходимо интегрировать с сервисом (у меня так mdns-сервер работает,
например, показывая свою базу как ФС), то переменные окружения можно
экспортировать в init-скрипте или где там теперь это модно делать, либо
использовать значения по умолчанию.
* В отличие от разных RPC API, позволяет работать простыми старыми
средствами шелла.
По моему опыту, оказалось очень полезной, даже несмотря на стадию пре-альфа.
Минусы:
* Некоторые заморочные случаи петонических структур, криво отображённые
на файловую структуру, могут обрушить модуль VFS. А если ФС
примонтирована, скажем, через системный mount, то дело может дойти до
оопса. В продакшне я бы пока не рекомендовал использовать. Ну, только
если до конца понимаете, что может случиться.
* Пока что работает только на read-only. Но read-write режим
запланирован на ближайшее будущее. В первом приближении он позволит
менять значения имеющихся атрибутов (да хоть из shell-скриптов), во
втором — создавать объекты.
* Библиотека на довольно ранней стадии развития, это тоже вряд ли можно
занести в плюсы.
…
Более подробно с переменными окружения и примерами использования можно
ознакомиться здесь: http://peet.spb.ru/pyvfs/
…
Ещё более подробно можно посмотреть в коде на гитхабе
https://github.com/svinota/pyvfs или на git.alt.
…
Ya' welcome. Если кто будет использовать — буду рад фидбэку.
--
Peter V. Saveliev
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [sisyphus] pyvfs package
2012-10-05 14:56 [sisyphus] pyvfs package Peter V. Saveliev
@ 2012-10-05 15:20 ` REAL
2012-10-05 15:43 ` Peter V. Saveliev
0 siblings, 1 reply; 5+ messages in thread
From: REAL @ 2012-10-05 15:20 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
05.10.2012 21:56, Peter V. Saveliev пишет:
> Отправил в Сизиф (когда-нибудь, наверное, доползёт) пакет
> python-module-pyvfs.
>
> В двух словах, вдруг кому будет интересно. Первичной задачей было
> представление объектов петона в виде директорий и файлов на
> виртуальной ФС в целях мониторинга, отладки и т.п.
поскипано многобукв. будьте добры выложить всё сказанное на wiki и
дайте ссылку.
--
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-10-08 3:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-05 14:56 [sisyphus] pyvfs package Peter V. Saveliev
2012-10-05 15:20 ` REAL
2012-10-05 15:43 ` Peter V. Saveliev
2012-10-05 15:55 ` REAL
2012-10-08 3:50 ` Eugene Prokopiev
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