Erlang 21

ct_snmp




erlang

ct_snmp

मॉड्यूल

ct_snmp

मॉड्यूल सारांश

SNMP अनुप्रयोग के लिए सामान्य परीक्षण उपयोगकर्ता इंटरफ़ेस मॉड्यूल।

विवरण

SNMP अनुप्रयोग के लिए Common Test उपयोगकर्ता इंटरफ़ेस मॉड्यूल।

इस मॉड्यूल का उद्देश्य टेस्ट केस राइटर के लिए SNMP कॉन्फ़िगरेशन को आसान बनाना है। कई परीक्षण मामले सामान्य संचालन के लिए डिफ़ॉल्ट मानों का उपयोग कर सकते हैं और फिर कोई SNMP कॉन्फ़िगरेशन फ़ाइलों की आपूर्ति करने की आवश्यकता नहीं है। जब यह विशेष कॉन्फ़िगरेशन मापदंडों को बदलने के लिए आवश्यक होता है, तो संबंधित SNMP कॉन्फ़िगरेशन फ़ाइलों का एक सबसेट Common Test कॉन्फ़िगरेशन फ़ाइलों द्वारा ct_snmp पारित किया जा सकता है। अधिक विशिष्ट कॉन्फ़िगरेशन मापदंडों के लिए, एक साधारण एसएनएमपी कॉन्फ़िगरेशन फ़ाइल को परीक्षण सूट डेटा निर्देशिका में रखा जा सकता है। टेस्ट सूट को आसान बनाने के लिए, Common Test एसएनएमपी मैनेजर की कुछ जानकारियों पर नज़र रखता है। इस तरह से परीक्षण सूट को कई इनपुट मापदंडों को संभालने की आवश्यकता नहीं है, जैसे कि इसे सीधे ओटीपी एसएनएमपी प्रबंधक को इंटरफ़ेस करना होगा।

विन्यास योग्य 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.conf community.conf vacm.conf , standard.conf , community.conf , vacm.conf , usm.conf , vacm.conf , usm.conf और target_params.conf । ध्यान दें कि ऊपर सूचीबद्ध मापदंडों द्वारा agent.conf में सभी मूल्यों को संशोधित किया जा सकता है। इन सभी कॉन्फ़िगरेशन फ़ाइलों में SNMP अनुप्रयोग द्वारा निर्धारित डिफ़ॉल्ट मान हैं। मान्य कॉन्फ़िगरेशन मानों की सूची या परीक्षण सूट डेटा निर्देशिका में स्थित फ़ाइल को दबाकर इन मानों को ओवरराइड किया जा सकता है, जो फ़ंक्शन file:consult/1 लागू करने पर मान्य कॉन्फ़िगरेशन मानों की सूची का उत्पादन कर सकते हैं 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 में पैरामीटर MgrAgentConfName एक ऐसा नाम होना चाहिए जिसे आप अपने परीक्षण सूट में एक require विवरण का उपयोग करके आवंटित करते हैं। उदाहरण (जहां MgrAgentConfName = snmp_mgr_agent ):

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

या

ct:require(snmp_mgr_agent, snmp).

ध्यान दें कि SNMv3 कॉन्फ़िगरेशन के लिए USM उपयोगकर्ताओं की आवश्यकता होती है और उपयोगकर्ताओं के साथ भ्रमित नहीं होना चाहिए।

SNMP ट्रैप, सूचित और रिपोर्ट संदेश उपयोगकर्ता कॉलबैक मॉड्यूल द्वारा नियंत्रित किया जाता है। विवरण के लिए, SNMP एप्लिकेशन देखें।

ऑब्जेक्ट आइडेंटिफ़ायर (OID) को परिभाषित करने के लिए Erlang / OTP MIB कंपाइलर द्वारा बनाई गई .hrl फ़ाइलों का उपयोग करने की अनुशंसा की जाती है। उदाहरण के लिए, Erlang नोड का नाम पाने के लिए erlNodeTable से OTP-MIB में:

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

इसके अलावा, मान SNMP अनुप्रयोग कॉन्फ़िगरेशन पैरामीटर, config , server , net_if और इतने पर (वैध मापदंडों और प्रकारों की सूची के User's Guide for the SNMP application देखें) के लिए सेट किया जा सकता है। यह निम्नलिखित फॉर्म पर एक कॉन्फ़िगरेशन डेटा चर को परिभाषित करके किया जाता है:

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

require अनुसार सुइट में डेटा के लिए एक नाम आवंटित किया जाना चाहिए (ऊपर उदाहरण देखें)। इस नाम को तर्क SnmpAppConfName रूप में SnmpAppConfName में पास करें ct_snmp:start/3 ct_snmp कुछ SNMP अनुप्रयोग कॉन्फ़िगरेशन पैरामीटर (जैसे कि पैरामीटर config लिए {verbosity,trace} लिए डिफ़ॉल्ट मान निर्दिष्ट करता है। चूक का यह सेट उपयोगकर्ता द्वारा निर्दिष्ट मापदंडों के साथ विलय कर दिया गया है। उपयोगकर्ता मान ct_snmp डिफ़ॉल्ट को ओवरराइड 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 | 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()]

ये डेटा प्रकार SNMP अनुप्रयोग के लिए दस्तावेज़ में वर्णित हैं।

निर्यात

get_next_values ​​(एजेंट, Oids, MgrAgentConfName) -> SnmpReply

प्रकार

एक समकालिक SNMP get next अनुरोध get next

get_values ​​(एजेंट, Oids, MgrAgentConfName) -> SnmpReply

प्रकार

समकालिक एसएनएमपी अनुरोध get

load_mibs (Mibs) -> ठीक | {त्रुटि, कारण}

प्रकार

एजेंट snmp_master_agent में snmp_master_agent लोड करता है।

register_agents (MgrAgentConfName, ManagedAgents) -> ठीक | {त्रुटि, कारण}

प्रकार

स्पष्ट रूप से प्रबंधक को इस एजेंट को संभालने का निर्देश देता है। agents.conf में एक प्रविष्टि बनाने के अनुरूप है।

यह फ़ंक्शन निर्दिष्ट प्रबंधित एजेंटों को पंजीकृत करने का प्रयास करता है, बिना जांच किए कि उनमें से कोई मौजूद है। पंजीकृत प्रबंधित एजेंट को बदलने के लिए, एजेंट को पहले अपंजीकृत होना चाहिए।

register_users (MgrAgentConfName, उपयोगकर्ता) -> ठीक है | {त्रुटि, कारण}

प्रकार

विशिष्ट एजेंट (ओं) के लिए जिम्मेदार प्रबंधक इकाई (= उपयोगकर्ता) को पंजीकृत करता है। users.conf में एक प्रविष्टि करने के अनुरूप है।

यह फ़ंक्शन निर्दिष्ट उपयोगकर्ताओं को पंजीकृत करने की कोशिश करता है, बिना यह जांचे कि उनमें से कोई मौजूद है या नहीं। एक पंजीकृत उपयोगकर्ता को बदलने के लिए, उपयोगकर्ता को पहले अपंजीकृत होना चाहिए।

register_usm_users (MgrAgentConfName, UsmUsers) -> ठीक है | {त्रुटि, कारण}

प्रकार

स्पष्ट रूप से प्रबंधक को यूएसएम उपयोगकर्ता को संभालने का निर्देश देता है। usm.conf में एक प्रविष्टि बनाने के अनुरूप है।

यह फ़ंक्शन निर्दिष्ट उपयोगकर्ताओं को पंजीकृत करने की कोशिश करता है, बिना यह जांचे कि उनमें से कोई मौजूद है या नहीं। एक पंजीकृत उपयोगकर्ता को बदलने के लिए, उपयोगकर्ता को पहले अपंजीकृत होना चाहिए।

set_info (कॉन्फ़िगरेशन) -> [{एजेंट, ओल्डवार्सएंडवल्स, न्यूवार्सएंडवल्स}]

प्रकार

रिवर्स ऑर्डर में परीक्षण के मामले में किए गए सभी सफल set अनुरोधों की एक सूची देता है। सूची में शामिल उपयोगकर्ता और एजेंट, set से पहले का मूल्य और नया मूल्य शामिल है। इसका उद्देश्य फ़ंक्शन end_per_testcase में क्लीनअप को सरल end_per_testcase , end_per_testcase , set अनुरोधों को पूर्ववत् करना और उनके संभावित दुष्प्रभावों को end_per_testcase

set_values ​​(एजेंट, VarsAndVals, MgrAgentConfName, config) -> स्नैम्पली

प्रकार

समकालिक SNMP set अनुरोध जारी करता है।

प्रारंभ (विन्यास, MgrAgentConfName) -> ठीक है

ct_snmp:start/3 बराबर ct_snmp:start/3

start (कॉन्फ़िग, MgrAgentConfName, SnmpAppConfName) -> ठीक है

प्रकार

एक SNMP प्रबंधक और / या एजेंट शुरू करता है। प्रबंधक मामले में, कॉन्फ़िगरेशन MgrAgentConfName द्वारा निर्दिष्ट उपयोगकर्ताओं और एजेंटों के पंजीकरण किए MgrAgentConfName हैं। एसएनएमपीवी 3 का उपयोग करते समय, यूएसएम नामक उपयोगकर्ता भी पंजीकृत होते हैं। उपयोगकर्ता, 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 को एजेंट में लोड करने के लिए ct_snmp:load_mibs/1 का उपयोग करें।

SnmpAppConfName साथ SNMP अनुप्रयोगों को पैरामीटर कॉन्फिगरेशन, mibs , net_if और इसी तरह से कॉन्फ़िगर किया जा सकता है। मान ct_snmp द्वारा निर्धारित डिफ़ॉल्ट मान (और संभवतः ओवरराइड) के साथ मर्ज किए गए हैं।

बंद करो (विन्यास) -> ठीक है

प्रकार

SNMP प्रबंधक और / या एजेंट को रोकता है, और बनाई गई सभी फ़ाइलों को हटा देता है।

unload_mibs (Mibs) -> ठीक है | {त्रुटि, कारण}

प्रकार

एजेंट snmp_master_agent से snmp_master_agent

unregister_agents (MgrAgentConfName) -> ठीक है

प्रकार

सभी अपंजीकृत एजेंट्स को प्रबंधित करते हैं।

unregister_agents (MgrAgentConfName, ManagedAgents) -> ठीक है

प्रकार

निर्दिष्ट प्रबंधित एजेंटों को अनरजिस्टर्ड करता है।

unregister_users (MgrAgentConfName) -> ठीक है

प्रकार

सभी उपयोगकर्ताओं को पंजीकृत नहीं करता है।

unregister_users (MgrAgentConfName, उपयोगकर्ता) -> ठीक है

प्रकार

निर्दिष्ट उपयोगकर्ताओं को अपंजीकृत करता है।

unregister_usm_users (MgrAgentConfName) -> ठीक है

प्रकार

सभी USM उपयोगकर्ताओं को अपंजीकृत करता है।

unregister_usm_users (MgrAgentConfName, UsmUsers) -> ठीक है

प्रकार

निर्दिष्ट यूएसएम उपयोगकर्ताओं को अपंजीकृत करता है।