8 惯例


这一章包含很多这些年资源代理软件仓库里显示的惯例。并非要强制作者遵循这些管理,但是遵循这些惯例,会让资源代理更容易理解和浏览(LeaseSurprise 原则


8.1 易懂的参数名


一些参数名是被好多种资源代理支持的。对于新的资源代理,遵循这些命名是比较好的:


  • binary ---- 管理资源的可执行码,比如服务器后台进程;

  • config ---- 配置文件的完整路径;

  • pid ---- 保存pid的文件完整路径;

  • log ---- 日志文件的完整路径;

  • socket ---- unix socket 文件的完整路径;

  • ip ---- 后台服务进程绑定的ip地址;

  • port ---- 服务器进程绑定的TCPUDP端口


8.2 参数缺省值


缺省的资源代理参数通常以后缀_default 的变量初始化:


1

2

3

4

# Defaults

OCF_RESKEY_superfrobnicate_default=0


:  ${OCF_RESKEY_superfrobnicate=${OCF_RESKEY_superfrobnicate_default}}


注意:资源代理应该在元数据信息里面对没有表明为required是参数设缺省值


8.3 $PATH环境变量去找可执行文件


当一个资源代理被设计成支持可执行文件为参数时(比如daemon,或者查询状态的客户端),那这个参数应该是在$PATH的环境变量定义的路径里可以找到的。不要提供全路径名。如下面的实现:


1

2

3

# Good example -- do it this way

OCF_RESKEY_frobnicate_default="frobnicate"

:  ${OCF_RESKEY_frobnicate="${OCF_RESKEY_frobnicate_default}"}

下面的实现则不好:


1

2

3

# Bad example -- avoid if you can

OCF_RESKEY_frobnicate_default="/usr/local/sbin/frobnicate"

:  ${OCF_RESKEY_frobnicate="${OCF_RESKEY_frobnicate_default}"}


缺省情况下也是这个规则。