pyxs — библиотека к xenstore на питоне

    Вступление: Ключевым элементом всех тулстеков для Xen является xenstore — сервис, позволяющий иметь «общую БД» для всех доменов на хосте. Давным-давно существует библиотека libxs для доступа к ней из приложений на Си. К ней есть биндинг на питоне (xen.lowlevel.xs), однако, у него есть очень серьёзные проблемы с многопоточной подпиской на события. Нас это не устраивало и для работы нашего сервиса memory on demand была написана библиотека pyxs, которая позволяет иметь очень комфортную работу с xenstore, многопоточные подписки и т.д.

    По здравому размышлению было принято решение отдать её людям под LGPL-лицензией.

    Примеры использования

    Простое чтение и запись:
    from pyxs import Client
    
    xs=Client():
    xs["/foobar/a"] = "baz"
    print xs["/foobar/a"]
    


    Второй важный класс — это Monitor для организации подписки на множественные изменения, ради которого всё писалось:

    from pyxs import Monitor
    
    xs=Monitor():
    xs.watch("/local/domain/1")
    xs.watch("/local/domain/2")
    while true:
        print xs.wait()
    

    Нас разбудит каждый раз, когда что-то поменяется в первом ИЛИ втором пути.

    Сссылка на гитхабе: github.com/selectel/pyxs
    Документация: pyxs.readthedocs.org
    Selectel
    238,00
    ИТ-инфраструктура для бизнеса
    Поделиться публикацией

    Похожие публикации

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое