码迷,mamicode.com
首页 > 其他好文 > 详细

通过脚本生成Zabbix Screen报错Incorrect value for field "vsize"

时间:2016-05-18 06:57:55      阅读:781      评论:0      收藏:0      [点我收藏+]

标签:zabbix   vsize   

一 问题描述:

 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创建脚本就不再报错了




本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1774521

通过脚本生成Zabbix Screen报错Incorrect value for field "vsize"

标签:zabbix   vsize   

原文地址:http://john88wang.blog.51cto.com/2165294/1774521

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!