非常教程

Erlang 20参考手册

common_test

ct_snmp

模块

ct_snmp

模块摘要

SNMP应用程序的通用测试用户界面模块。

描述

Common Test控件的用户界面模块。SNMP申请。

这个模块的目的是简化测试用例编写器的SNMP配置。许多测试用例可以使用默认值进行常规操作,然后不需要提供SNMP配置文件。当需要更改特定的配置参数时,可以ct_snmp通过Common Test配置文件传递相关SNMP配置文件的子集。对于更多特定的配置参数,可以在测试套件数据目录中放置一个简单的SNMP配置文件。为了简化测试套件,请Common Test跟踪一些SNMP管理器信息。通过这种方式,测试套件不必处理尽可能多的输入参数,就好像它必须直接连接OTP SNMP管理器一样。

可配置SNMP管理器和代理参数:

经理配置:

[{start_manager, boolean()}

可选的。默认是true

{users, [{user_name(), [call_back_module(), user_data()]}]}

可选的。

{usm_users, [{usm_user_name(), [usm_config()]}]}

可选的。仅限SNMPv3。

{managed_agents,[{agent_name(), [user_name(), agent_ip(), agent_port(), [agent_config()]]}]}

managed_agents是可选的。

{max_msg_size, integer()}

可选的。默认是484

{mgr_port, integer()}

可选的。默认是5000

{engine _id, string()}

可选的。默认是"mgrEngine"

代理配置:

{start_agent, boolean()}

可选的。默认是false

{agent_sysname, string()}

可选的。默认是"ct_test"

{agent_manager_ip, manager_ip()}

可选的。默认是localhost

{agent_vsns, list()}

可选的。默认是[v2]

{agent_trap_udp, integer()}

可选的。默认是5000

{agent_udp, integer()}

可选的。默认是4000

{agent_notify_type, atom()}

可选的。默认是trap

{agent_sec_type, sec_type()}

可选的。默认是none

{agent_passwd, string()}

可选的。默认是""

{agent_engine_id, string()}

可选的。默认是"agentEngine"

{agent_max_msg_size, string()}

可选的。默认是484

以下参数表示SNMP配置文件context.confstandard.confcommunity.confvacm.confusm.confnotify.conftarget_addr.conf,和target_params.conf。注意所有的值agent.conf都可以用上面列出的参数修改。所有这些配置文件都具有由SNMP应用程序设置的默认值。通过提供有效配置值列表或位于测试套件数据目录中的文件,可以覆盖这些值,如果将函数file:consult/1应用于文件,该文件可以生成有效配置值列表。

{agent_contexts, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_community, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_sysinfo, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_vacm, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_usm, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_notify_def, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_target_address_def, [term()] | {data_dir_file, rel_path()}}

可选的。

{agent_target_param_def, [term()] | {data_dir_file, rel_path()}}

可选的。

MgrAgentConfName函数中的参数是您在测试套件中使用require语句分配的名称。示例(其中MgrAgentConfName = snmp_mgr_agent):

suite() -> [{require, snmp_mgr_agent, snmp}].

ct:require(snmp_mgr_agent, snmp).

注意,SNMPv 3配置需要USM用户,不要与用户混淆。

SNMP陷阱、通知和报告消息由用户回调模块处理。有关详细信息,请参阅SNMP申请。

建议使用.hrl由Erlang / OTP MIB编译器创建的文件来定义对象标识符(OID)。例如,要从erlNodeTableOTP-MIB中获取Erlang节点名称:

Oid = ?erlNodeEntry ++ [?erlNodeName, 1]

此外,值可以用于设置SNMP应用程序配置参数,configservernet_if,等等(对于有效的参数和类型的列表,请参见User's Guide for the SNMP application)。这是通过在以下格式中定义配置数据变量完成的:

{snmp_app, [{manager, [snmp_app_manager_params()]},
            {agent, [snmp_app_agent_params()]}]}.

必须在套件中使用数据名称require(请参见上面的示例)。将此名称作为参数传递SnmpAppConfNamect_snmp:start/3ct_snmp指定某些SNMP应用程序配置参数(例如{verbosity,trace}参数config)的默认值。这组默认值与用户指定的参数合并。用户值覆盖ct_snmp默认值。

数据类型

agent_config() = {Item, Value}agent_ip() = ip()agent_name() = atom()agent_port() = integer()call_back_module() = atom()error_index() = integer()error_status() = noError | atom()ip() = string() | {integer(), integer(), integer(), integer()}manager_ip() = ip()oid() = [byte()]oids() = [oid()]rel_path() = string()sec_type() = none | minimum | semisnmp_app_agent_params() = term()snmp_app_manager_params() = term()snmpreply() = {error_status(), error_index(), varbinds()}user_data() = term()user_name() = atom()usm_config() = {Item, Value}usm_user_name() = string()value_type() = o('OBJECT IDENTIFIER') | i('INTEGER') | u('Unsigned32') | g('Unsigned32') | s('OCTET STRING')var_and_val() = {oid(), value_type(), value()}varbind() = term()varbinds() = [varbind()]varsandvals() = [var_and_val()]

这些数据类型在SNMP申请。

出口

get_next_values(Agent, Oids, MgrAgentConfName) -> SnmpReply

类型

发出同步SNMPget next请求。

get_values(Agent, Oids, MgrAgentConfName) -> SnmpReply

类型

发出同步SNMPget请求。

load_mibs(Mibs) -> ok | {error, Reason}

类型

将MIB加载到代理程序中snmp_master_agent

register_agents(MgrAgentConfName, ManagedAgents) -> ok | {error, Reason}

类型

明确指示经理处理该代理。对应于进入agents.conf

此函数尝试注册指定的托管代理,而不检查它们是否存在。若要更改已注册的托管代理,必须首先注销代理。

register_users(MgrAgentConfName, Users) -> ok | {error, Reason}

类型

注册负责特定代理的经理实体(=用户)。对应于进入users.conf

该函数尝试注册指定的用户,而不检查它们是否存在。要更改注册用户,用户必须先注销。

register_usm_users(MgrAgentConfName, UsmUsers) -> ok | {error, Reason}

类型

明确指示经理处理此USM用户。对应于进入usm.conf

此函数尝试注册指定的用户,而不检查其中是否存在。若要更改已注册用户,必须首先取消注册。

set_info(Config) -> [{Agent, OldVarsAndVals, NewVarsAndVals}]

类型

返回所有成功的列表。set在测试用例中以反向顺序执行请求。该列表包含涉及的用户和代理,以及前面的值。set,以及新的价值。这是为了简化清理功能。end_per_testcase,也就是撤销set请求及其可能的副作用。

set_values(Agent, VarsAndVals, MgrAgentConfName, Config) -> SnmpReply

类型

发出同步SNMPset请求。

start(Config, MgrAgentConfName) -> ok

相当于ct_snmp:start(Config, MgrAgentConfName, undefined)...

start(Config, MgrAgentConfName, SnmpAppConfName) -> ok

类型

启动SNMP管理器和/或代理。在管理器的情况下,用户和代理的注册,如配置所指定的。MgrAgentConfName,被执行。在使用SNMPv 3时,也会注册名为USM的用户。用户,usm_users,托管代理也可以在以后使用ct_snmp:register_users/2,,,ct_snmp:register_agents/2,和ct_snmp:register_usm_users/2...

启动的代理称为snmp_master_agent.使用ct_snmp:load_mibs/1将MIB装载到代理程序中。

带着SnmpAppConfName可以用参数配置SNMP应用程序。config,,,mibs,,,net_if等等。将这些值与%28合并,并可能覆盖由ct_snmp...

stop(Config) -> ok

类型

停止SNMP管理器和/或代理,并删除创建的所有文件。

unload_mibs(Mibs) -> ok | {error, Reason}

类型

从代理卸载MIBsnmp_master_agent...

unregister_agents(MgrAgentConfName) -> ok

类型

注销所有托管代理。

unregister_agents(MgrAgentConfName, ManagedAgents) -> ok

类型

取消注册指定的托管代理。

unregister_users(MgrAgentConfName) -> ok

类型

注销所有用户。

unregister_users(MgrAgentConfName, Users) -> ok

类型

取消注册指定的用户。

unregister_usm_users(MgrAgentConfName) -> ok

类型

取消注册所有USM用户。

unregister_usm_users(MgrAgentConfName, UsmUsers) -> ok

类型

取消注册指定的USM用户。

Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1