Provided by: erlang-manpages_16.b.3-dfsg-1ubuntu2.2_all bug

NAME

       ct_snmp - Common Test user interface module for the OTP snmp application.

DESCRIPTION

       Common Test user interface module for the OTP snmp application

       The  purpose of this module is to make snmp configuration easier for the test case writer.
       Many  test  cases  can  use  default  values  for  common  operations  and  then  no  snmp
       configuration  files  need  to  be  supplied.  When  it  is necessary to change particular
       configuration parameters, a subset of the relevant snmp configuration files may be  passed
       to ct_snmp by means of Common Test configuration files. For more specialized configuration
       parameters, it is possible to place a "simple snmp configuration file" in the  test  suite
       data  directory.  To  simplify the test suite, Common Test keeps track of some of the snmp
       manager information. This way the  test  suite  doesn't  have  to  handle  as  many  input
       parameters as it would if it had to interface the OTP snmp manager directly.

       The following snmp manager and agent parameters are configurable:

          {snmp,
                 %%% Manager config
                 [{start_manager, boolean()}    % Optional - default is true
                 {users, [{user_name(), [call_back_module(), user_data()]}]}, %% Optional
                 {usm_users, [{usm_user_name(), [usm_config()]}]},%% Optional - snmp v3 only
                 % managed_agents is optional
                 {managed_agents,[{agent_name(), [user_name(), agent_ip(), agent_port(), [agent_config()]]}]},
                 {max_msg_size, integer()},     % Optional - default is 484
                 {mgr_port, integer()},         % Optional - default is 5000
                 {engine _id, string()},        % Optional - default is "mgrEngine"

                 %%% Agent config
                 {start_agent, boolean()},      % Optional - default is false
                 {agent_sysname, string()},     % Optional - default is "ct_test"
                 {agent_manager_ip, manager_ip()}, % Optional - default is localhost
                 {agent_vsns, list()},          % Optional - default is [v2]
                 {agent_trap_udp, integer()},   % Optional - default is 5000
                 {agent_udp, integer()},        % Optional - default is 4000
                 {agent_notify_type, atom()},   % Optional - default is trap
                 {agent_sec_type, sec_type()},  % Optional - default is none
                 {agent_passwd, string()},      % Optional - default is ""
                 {agent_engine_id, string()},   % Optional - default is "agentEngine"
                 {agent_max_msg_size, string()},% Optional - default is 484

                 %% The following parameters represents the snmp configuration files
                 %% context.conf, standard.conf, community.conf, vacm.conf,
                 %% usm.conf, notify.conf, target_addr.conf and target_params.conf.
                 %% Note all values in agent.conf can be altered by the parametes
                 %% above. All these configuration files have default values set
                 %% up by the snmp application. These values can be overridden by
                 %% suppling a list of valid configuration values or a file located
                 %% in the test suites data dir that can produce a list
                 %% of valid configuration values if you apply file:consult/1 to the
                 %% file.
                 {agent_contexts, [term()] | {data_dir_file, rel_path()}}, % Optional
                 {agent_community, [term()] | {data_dir_file, rel_path()}},% Optional
                 {agent_sysinfo,  [term()] | {data_dir_file, rel_path()}}, % Optional
                 {agent_vacm, [term()] | {data_dir_file, rel_path()}},     % Optional
                 {agent_usm, [term()] | {data_dir_file, rel_path()}},      % Optional
                 {agent_notify_def, [term()] | {data_dir_file, rel_path()}},% Optional
                 {agent_target_address_def, [term()] | {data_dir_file, rel_path()}},% Optional
                 {agent_target_param_def, [term()] | {data_dir_file, rel_path()}},% Optional
                ]}.

       The MgrAgentConfName parameter in the functions should be a name you allocate in your test
       suite using a require statement. Example (where MgrAgentConfName = snmp_mgr_agent):

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

       or

         ct:require(snmp_mgr_agent, snmp).

       Note that Usm users are needed for snmp v3 configuration and are not to be  confused  with
       users.

       Snmp  traps,  inform and report messages are handled by the user callback module. For more
       information about this see the snmp application.

       Note: It is recommended to use the .hrl-files created by the  Erlang/OTP  mib-compiler  to
       define the oids. Example for the getting the erlang node name from the erlNodeTable in the
       OTP-MIB:

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

       It is also possible to set values for snmp application configuration parameters,  such  as
       config, server, net_if, etc (see the "Configuring the application" chapter in the OTP snmp
       User's Guide for a list of valid parameters  and  types).  This  is  done  by  defining  a
       configuration data variable on the following form:

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

       A  name for the data needs to be allocated in the suite using require (see example above),
       and this name passed as the SnmpAppConfName argument to start/3. ct_snmp specifies default
       values  for  some snmp application configuration parameters (such as {verbosity,trace} for
       the config parameter). This set of defaults will be merged with the  parameters  specified
       by the user, and user values override ct_snmp defaults.

DATA TYPES

         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 | semi:

         snmp_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()]:

EXPORTS

       get_next_values(Agent, Oids, MgrAgentConfName) -> SnmpReply

              Types:

                 Agent = agent_name()
                 Oids = oids()
                 MgrAgentConfName = atom()
                 SnmpReply = snmpreply()

              Issues a synchronous snmp get next request.

       get_values(Agent, Oids, MgrAgentConfName) -> SnmpReply

              Types:

                 Agent = agent_name()
                 Oids = oids()
                 MgrAgentConfName = atom()
                 SnmpReply = snmpreply()

              Issues a synchronous snmp get request.

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

              Types:

                 Mibs = [MibName]
                 MibName = string()
                 Reason = term()

              Load the mibs into the agent 'snmp_master_agent'.

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

              Types:

                 MgrAgentConfName = atom()
                 ManagedAgents = [agent()]
                 Reason = term()

              Explicitly instruct the manager to handle this  agent.  Corresponds  to  making  an
              entry  in  agents.conf This function will try to register the given managed agents,
              without checking if any of them already  exist.  In  order  to  change  an  already
              registered managed agent, the agent must first be unregistered.

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

              Types:

                 MgrAgentConfName = atom()
                 Users = [user()]
                 Reason = term()

              Register  the manager entity (=user) responsible for specific agent(s). Corresponds
              to making an entry in users.conf. This function will  try  to  register  the  given
              users, without checking if any of them already exist. In order to change an already
              registered user, the user must first be unregistered.

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

              Types:

                 MgrAgentConfName = atom()
                 UsmUsers = [usm_user()]
                 Reason = term()

              Explicitly instruct the manager to handle this USM user. Corresponds to  making  an
              entry  in  usm.conf  This  function  will  try to register the given users, without
              checking if any of them already exist. In order to  change  an  already  registered
              user, the user must first be unregistered.

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

              Types:

                 Config = [{Key, Value}]
                 Agent = agent_name()
                 OldVarsAndVals = varsandvals()
                 NewVarsAndVals = varsandvals()

              Returns a list of all successful set requests performed in the test case in reverse
              order. The list contains the involved user and agent, the value prior  to  the  set
              and   the  new  value.  This  is  intended  to  facilitate  the  clean  up  in  the
              end_per_testcase function i.e. the undoing of the set  requests  and  its  possible
              side-effects.

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

              Types:

                 Agent = agent_name()
                 Oids = oids()
                 MgrAgentConfName = atom()
                 Config = [{Key, Value}]
                 SnmpReply = snmpreply()

              Issues a synchronous snmp set request.

       start(Config, MgrAgentConfName) -> ok

              Equivalent to start(Config, MgrAgentConfName, undefined).

       start(Config, MgrAgentConfName, SnmpAppConfName) -> ok

              Types:

                 Config = [{Key, Value}]
                 Key = atom()
                 Value = term()
                 MgrAgentConfName = atom()
                 SnmpConfName = atom()

              Starts  an  snmp  manager and/or agent. In the manager case, registrations of users
              and agents as specified by the configuration MgrAgentConfName  will  be  performed.
              When  using  snmp  v3 also so called usm users will be registered. Note that users,
              usm_users and managed  agents  may  also  be  registered  at  a  later  time  using
              ct_snmp:register_users/2,               ct_snmp:register_agents/2,              and
              ct_snmp:register_usm_users/2. The agent started will be  called  snmp_master_agent.
              Use  ct_snmp:load_mibs/1  to  load  mibs  into the agent. With SnmpAppConfName it's
              possible to configure the snmp application with parameters such  as  config,  mibs,
              net_if,  etc. The values will be merged with (and possibly override) default values
              set by ct_snmp.

       stop(Config) -> ok

              Types:

                 Config = [{Key, Value}]
                 Key = atom()
                 Value = term()

              Stops the snmp manager and/or agent removes all files created.

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

              Types:

                 Mibs = [MibName]
                 MibName = string()
                 Reason = term()

              Unload the mibs from the agent 'snmp_master_agent'.

       unregister_agents(MgrAgentConfName) -> ok

              Types:

                 MgrAgentConfName = atom()
                 Reason = term()

              Unregister all managed agents.

       unregister_agents(MgrAgentConfName, ManagedAgents) -> ok

              Types:

                 MgrAgentConfName = atom()
                 ManagedAgents = [agent_name()]
                 Reason = term()

              Unregister the given managed agents.

       unregister_users(MgrAgentConfName) -> ok

              Types:

                 MgrAgentConfName = atom()
                 Reason = term()

              Unregister all users.

       unregister_users(MgrAgentConfName, Users) -> ok

              Types:

                 MgrAgentConfName = atom()
                 Users = [user_name()]
                 Reason = term()

              Unregister the given users.

       unregister_usm_users(MgrAgentConfName) -> ok

              Types:

                 MgrAgentConfName = atom()
                 Reason = term()

              Unregister all usm users.

       unregister_usm_users(MgrAgentConfName, UsmUsers) -> ok

              Types:

                 MgrAgentConfName = atom()
                 UsmUsers = [usm_user_name()]
                 Reason = term()

              Unregister the given usm users.

AUTHORS

       <>

                                        common_test 1.7.4                           ct_snmp(3erl)