通过脚本生成Zabbix Screen报错Incorrect value for field "vsize"
一 问题描述:http://john88wang.blog.51cto.com/2165294/1538456通过调用Zabbix的API生成Sceen报错。报错信息:Incorrectvalueforfield"vsize":mustbebetween"1"and"100".二 解决办法查看Zabbix的源代码include/defines.inc....
·
一 问题描述:
http://john88wang.blog.51cto.com/2165294/1538456
通过调用Zabbix的API生成Sceen报错。报错信息:
Incorrect value for field "vsize": must be between "1" and "100".
二 解决办法
查看Zabbix的源代码include/defines.inc.php 里面有关于各种变量的定义
define('SCREEN_MIN_SIZE', 1);
define('SCREEN_MAX_SIZE', 100);
查看screenconf.php
'vsize' => [T_ZBX_INT, O_OPT, null, BETWEEN(SCREEN_MIN_SIZE, SCREEN_MAX_SIZE),
'isset({add}) || isset({update})', _('Rows')
],
查看include/classes/api/services/CScreen.php
/**
* Validate vsize and hsize parameters.
*
* @param array $screen
*
* @throws APIException if the input is invalid.
*/
protected function validateScreenSize(array $screen) {
foreach (['vsize', 'hsize'] as $field_name) {
if (!array_key_exists($field_name, $screen)) {
continue;
}
if (!zbx_is_int($screen[$field_name])) {
self::exception(ZBX_API_ERROR_PERMISSIONS,
_s('Incorrect value for field "%1$s": %2$s.', $field_name, _('a numeric value is expected'))
);
}
if ($screen[$field_name] < SCREEN_MIN_SIZE || $screen[$field_name] > SCREEN_MAX_SIZE) {
self::exception(ZBX_API_ERROR_PERMISSIONS,
_s('Incorrect value for field "%1$s": %2$s.', $field_name,
_s('must be between "%1$s" and "%2$s"', SCREEN_MIN_SIZE, SCREEN_MAX_SIZE)
)
);
}
}
}
看了源代码知道Zabbix默认创建的Screen的垂直宽度默认最大是100.由于手动创建的Screen的vsize大小要么为0,要么超过了100都会报这个错误,所以解决办法就是增大SCREEN_MAX_SIZE这个值
include/defines.inc.php修改
define('SCREEN_MAX_SIZE', 300);
再执行Screen创建脚本就不再报错了
转载于:https://blog.51cto.com/john88wang/1774521
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献15条内容
所有评论(0)