-module(snmp_sample). -export([create_table/0,init_snmp/0,get_counts/0,get_counts/1,set_counts/3]). -include("SAMPLE-MIB.hrl"). -include("serverTable.hrl"). create_table() -> {atomic, ok} = mnesia:create_table(serverTable, [{snmp, [{key, string}]}, {attributes, record_info(fields, serverTable)}, {disc_copies, [node()]} ]). get_counts(Server) -> mnesia:dirty_read({serverTable,Server}). get_counts() -> Keys = mnesia:dirty_all_keys(serverTable), lists:map({snmp_sample,get_counts}, Keys). set_counts(Server,In,Out) -> R = #serverTable{name=Server, callsIn=In, callsOut=Out}, mnesia:dirty_write(serverTable,R). init_snmp() -> ok=application:start(snmp), ok=snmp:load_mibs(snmp_master_agent, ["SAMPLE-MIB"]), {ok,Pid}=snmp_mgr:start_link([{agent, {127,0,0,1}}, {agent_udp,9161},{mibs,["SAMPLE-MIB"]}]), Pid.