跳转到主要内容

未知

项目描述

menagerie - (n.) 一个存放和训练动物,特别是为展览而准备的场所

Django设置持有者,由ZooKeeper支持。

基本用法

menagerie.configure辅助函数提供了一个使用正常方法(通过DJANGO_SETTINGS_MODULE环境变量)已可用的设置来引导您的Django设置的方法,但使用ZooKeeper中存在的设置来覆盖这些默认值。

要配置您的应用程序,

  • 在您的Django设置文件(s)中添加一个包含要连接的ZooKeeper集群成员的网络地址的ZOOKEEPER_HOSTS设置,作为一个列表或元组。例如

    ZOOKEEPER_HOSTS = ('zookeeper-1.local', 'zookeeper-2.local')

    要将ZooKeeper客户端绑定到根命名空间之外的命名空间,请添加一个包含命名空间的ZOOKEEPER_SETTINGS_NAMESPACE设置。

  • 将以下内容添加到您的应用程序(例如manage.py)的入口点之前,在访问django.conf.settings的任何属性之前

    import menagerie
    menagerie.configure()

    将日志配置为输出menagerie命名空间的DEBUG级别消息可能有助于跟踪您在配置应用程序时可能遇到的任何错误。

存储

设置存储设计得尽可能简单,仅使用单个树中的节点来表示所有设置。

不会递归遍历树 - 所有设置必须存储为共享根节点的直接子节点,默认为 / 或您的ZooKeeper集群/客户端命名空间根。

例如,以下ZooKeeper中的节点名称和值的树

/DEBUG: true
/INTERNAL_IPS: ['127.0.0.1', '192.168.0.1']

…将产生以下设置

settings.DEBUG == True
settings.INTERNAL_IPS == ['127.0.0.1', '192.168.0.1']

反序列化器不会合并复杂类型,例如映射或序列 - 要么返回从ZooKeeper节点数据中读取的值,要么返回ZooKeeper树中不存在值的默认值。

名称有效作为ZooKeeper节点名称但在Python中有特定语言含义(例如,包含.-字符的名称)仍可使用,但需要使用设置持有者的 getattr 来访问,如下所示

getattr(settings, 'MY-SPECIAL-SETTING')

运行测试

可以使用 make test 运行测试套件。

套件需要工作状态的ZooKeeper安装,其路径可以使用 ZOOKEEPER_PATH 环境变量指定。如果您还没有ZooKeeper的安装,运行 make zookeeper 将创建一个默认路径。

项目详细信息


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

menagerie-0.1.0.tar.gz (3.9 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面