Erlang 21

ct_netconfc




erlang

ct_netconfc

मॉड्यूल

ct_netconfc

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

NETCONF क्लाइंट मॉड्यूल।

विवरण

NETCONF क्लाइंट मॉड्यूल।

NETCONF क्लाइंट RFC 4741 NETCONF कॉन्फ़िगरेशन प्रोटोकॉल और RFC 4742 के साथ सिक्योर शील (SSH) पर NETCONF कॉन्फ़िगरेशन प्रोटोकॉल का उपयोग करने के लिए आज्ञाकारी है।

NETCONF सर्वर से कनेक्ट करना

NETCONF सत्रों को या तो एकल कॉल द्वारा open/1,2 लिए या कॉल करने के connect/1,2 बाद एक या अधिक कॉल session/1,2,3 से connect/1,2 किया जा सकता है।

सत्र के गुण बिल्कुल समान होंगे, सिवाय इसके कि connect/1,2 का उपयोग करते समय, आप एक ही SSH कनेक्शन पर कई सत्र शुरू कर सकते हैं। प्रत्येक सत्र को SSH चैनल के रूप में कार्यान्वित किया जाता है।

open/1,2 एक SSH चैनल के साथ एक SSH कनेक्शन स्थापित करेगा जो एक NETCONF सत्र को लागू करेगा। आप कई बार open/1,2 कॉल करके म्यूटेंट सत्र शुरू कर सकते हैं, लेकिन फिर प्रत्येक सत्र के लिए एक नया एसएसएच कनेक्शन स्थापित किया जाएगा।

प्रत्येक सर्वर के खिलाफ परीक्षण करने के लिए, निम्न प्रविष्टि को कॉन्फ़िगरेशन फ़ाइल में जोड़ा जा सकता है:

{server_id(),options()}.

server_id() या एक संबंधित ct:target_name() तो कॉल में connect/2 या open/2 connect/2 करने के connect/2 उपयोग किया जाना चाहिए।

यदि सर्वर के लिए कोई कॉन्फ़िगरेशन मौजूद नहीं है, तो इसके बजाय connect/1,2 या open/1,2 उपयोग करें, और Options पैरामीटर में सभी आवश्यक विकल्प निर्दिष्ट करें।

लॉगिंग

error_logger ट्रैफिक लॉगिंग के लिए error_logger सर्वर error_logger का उपयोग करता है। ct_conn_log_h में एक विशेष उद्देश्य त्रुटि हैंडलर लागू किया ct_conn_log_h । इस त्रुटि हैंडलर का उपयोग करने के लिए, परीक्षण सूट में cth_conn_log हुक जोड़ें, उदाहरण के लिए:

suite() ->
   [{ct_hooks, [{cth_conn_log, [{ct:conn_log_mod(),ct:conn_log_options()}]}]}].

conn_log_mod() कनेक्शन प्रोटोकॉल को लागू करने वाले Common Test मॉड्यूल का नाम है, उदाहरण के लिए, ct_netconfc

हुक विकल्प log_type लॉगिंग के प्रकार को निर्दिष्ट करता है:

raw

भेजे गए और प्राप्त NETCONF डेटा को किसी भी स्वरूपण के बिना "के रूप में" एक अलग पाठ फ़ाइल में लॉग किया गया है। फ़ाइल का लिंक परीक्षण केस HTML लॉग में जोड़ा गया है।

pretty

भेजा और प्राप्त NETCONF डेटा XML डेटा के साथ एक अलग पाठ फ़ाइल में लॉग इन किया जाता है। फ़ाइल का लिंक परीक्षण केस HTML लॉग में जोड़ा गया है।

html (default)

भेजा और प्राप्त किया गया NETCONF ट्रैफ़िक टेस्ट केस HTML लॉग में सीधे मुद्रित होता है।

silent

NETCONF ट्रैफ़िक लॉग नहीं है।

डिफ़ॉल्ट रूप से, सभी NETCONF ट्रैफ़िक को एक सिंगल लॉग फ़ाइल में लॉग किया जाता है। हालाँकि, अलग-अलग कनेक्शन अलग-अलग फ़ाइलों में लॉग इन किए जा सकते हैं। ऐसा करने के लिए, हुक विकल्प hosts उपयोग करें और सुइट में उपयोग किए जाने वाले सर्वर / कनेक्शन के नामों को सूचीबद्ध करें। इस काम के लिए कनेक्शन का नाम होना चाहिए, अर्थात, उन्हें open/2 साथ खोला जाना चाहिए।

विकल्प hosts का कोई प्रभाव नहीं है अगर log_type html या silent सेट है।

हुक विकल्प भी विन्यास चर ct_conn_log साथ एक विन्यास फाइल में निर्दिष्ट किया जा सकता है:

{ct_conn_log,[{ct:conn_log_mod(),ct:conn_log_options()}]}.

उदाहरण के लिए:

{ct_conn_log,[{ct_netconfc,[{log_type,pretty},
                            {hosts,[ct:key_or_name()]}]}]}
ध्यान दें

कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट हुक विकल्प परीक्षण सूट में हार्ड-कोडित हुक विकल्पों को अधिलेखित करते हैं।

लॉगिंग उदाहरण 1:

निम्नलिखित ct_hooks स्टेटमेंट में nc_server1 और nc_server2 नाम के कनेक्शन के लिए अलग-अलग लॉग में nc_server1 ट्रैफिक की बहुत अच्छी छपाई nc_server2 । किसी भी अन्य कनेक्शन को डिफ़ॉल्ट NETCONF लॉग में लॉग किया जाता है।

suite() ->
   [{ct_hooks, [{cth_conn_log, [{ct_netconfc,[{log_type,pretty}},
                                              {hosts,[nc_server1,nc_server2]}]}
                               ]}]}].

कनेक्शन निम्नानुसार खोले जाने चाहिए:

open(nc_server1,[...]),
open(nc_server2,[...]).

लॉगिंग उदाहरण 2:

निम्न कॉन्फ़िगरेशन फ़ाइल के कारण एक ही पाठ फ़ाइल में सभी NETCONF ट्रैफ़िक की कच्ची लॉगिंग होती है:

{ct_conn_log,[{ct_netconfc,[{log_type,raw}]}]}.

ct_hooks स्टेटमेंट निम्नानुसार देखना चाहिए:

suite() ->
   [{ct_hooks, [{cth_conn_log, []}]}].

कॉन्फ़िगरेशन फ़ाइल के बिना एक ही ct_hooks स्टेटमेंट HTML केस के सभी NETCONF कनेक्शनों के HTML लॉगिंग का कारण होगा।

सूचनाएं

NETCONF क्लाइंट RFC 5277 NETCONF ईवेंट नोटिफिकेशन के अनुरूप भी है, जो NETCONF प्रोटोकॉल के लिए अतुल्यकालिक संदेश अधिसूचना वितरण सेवा के लिए एक तंत्र को परिभाषित करता है।

इसे बनाने के लिए विशिष्ट कार्य create_subscription/1-6 और get_event_streams/1-3

डिफ़ॉल्ट टाइमआउट

इस मॉड्यूल के अधिकांश कार्यों में Timeout पैरामीटर के साथ एक संस्करण है, और एक बिना। यदि कुछ और निर्दिष्ट नहीं किया जाता है, तो Timeout पैरामीटर नहीं दिए जाने पर डिफ़ॉल्ट मान infinity का उपयोग किया जाता है।

जानकारी का प्रकार

error_reason() = term()
event_time() = {eventTime, xml_attributes() , [ xs_datetime() ]}
handle()

NETCONF सर्वर या NETCONF सत्र के कनेक्शन के लिए अपारदर्शी संदर्भ।

host() = inet:hostname() | inet:ip_address()
netconf_db() = running | startup | candidate
notification() =
{notification, xml_attributes() , notification_content() }

notification_content() = [ event_time() | simple_xml() ]
option() =
{ssh, host() } |
{port, inet:port_number() } |
{user, string()} |
{password, string()} |
{user_dir, string()} |
{timeout, timeout()}

SshConnectOption ssh:connect/3,4 लिए कोई वैध विकल्प है। उपयोग किए जाने वाले सामान्य विकल्प user , password और user_dir SshConnectOptions को SSH अनुप्रयोग द्वारा SshConnectOptions जाता है।

options() = [ option() ]

NETCONF सर्वर पर SSH कनेक्शन स्थापित करने के लिए उपयोग किए जाने वाले विकल्प।

server_id() = atom()

कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट सर्वर की पहचान।

इस प्रकार आगे आवेदन xmerl में वर्णित है।

stream_data() =
{description, string()} |
{replaySupport, string()} |
{replayLogCreationTime, string()} |
{replayLogAgedTime, string()}

स्ट्रिंग मानों के डेटा प्रारूप के बारे में जानकारी के लिए, RFC 5277 में "इवेंट नोटिफिकेशन के लिए XML स्कीमा" देखें।

stream_name() = string()
streams() = [{ stream_name() , [ stream_data() ]}]
xml_attribute_tag() = atom()
xml_attribute_value() = string()
xml_content() = [ simple_xml() | iolist()]
xml_tag() = atom()
xpath() = {xpath, string()}
xs_datetime() = string()

इस तिथि और समय पहचानकर्ता का XML प्रारूप दिनांक समय के समान प्रारूप है और इंटरनेट टाइमस्टैम्प्स पर RFC 3339 दिनांक और समय के अनुरूप है। प्रारूप इस प्रकार है:

[-]CCYY-MM-DDThh:mm:ss[.s][Z|(+|-)hh:mm]

निर्यात

कार्रवाई (ग्राहक, कार्रवाई) -> परिणाम
क्रिया (क्लाइंट, एक्शन, टाइमआउट) -> परिणाम

प्रकार

एक कार्रवाई निष्पादित करता है। यदि रिटर्न प्रकार शून्य है, तो {ok,[simple_xml()]} बजाय ok लौटा दिया जाता है।

close_session (क्लाइंट) -> परिणाम
close_session (क्लाइंट, टाइमआउट) -> परिणाम

प्रकार

ग्राहक के साथ जुड़े सत्र के सुशोभित समापन का अनुरोध करता है।

जब एक NETCONF सर्वर एक close-session अनुरोध प्राप्त करता है, तो यह इनायत से सत्र को बंद कर देता है। सर्वर सत्र से जुड़े किसी भी ताले और संसाधनों को जारी करता है और इनायत से किसी भी संबंधित कनेक्शन को बंद कर देता है। close-session अनुरोध के बाद प्राप्त किसी भी NETCONF अनुरोधों की अनदेखी की जाती है।

कनेक्ट (विकल्प) -> परिणाम

प्रकार

एक NETCONF सर्वर के लिए SSH कनेक्शन खोलता है।

यदि कॉन्फ़िगरेशन फ़ाइल में सर्वर विकल्प निर्दिष्ट हैं, तो इसके बजाय connect/2 उपयोग करें।

इस फ़ंक्शन से लौटा हुआ अपारदर्शी handle() संदर्भ कनेक्शन पहचानकर्ता के रूप में आवश्यक है, जब इस कनेक्शन पर सत्र खोलने, session/1,2,3

एसएसएच कनेक्शन स्थापित करते timeout विकल्प timeout (मिलीसेकंड) का उपयोग किया जाता है। इसका उपयोग कनेक्शन के जीवनकाल के दौरान किसी अन्य उद्देश्य के लिए नहीं किया जाता है।

कनेक्ट (KeyOrName, ExtraOptions) -> परिणाम

प्रकार

एक नामित NETCONF सर्वर के लिए SSH कनेक्शन खोलें।

यदि KeyOrName एक कॉन्फ़िगर किया गया server_id() या target_name() ऐसी आईडी से जुड़ा है, तो इस सर्वर के लिए विकल्प विन्यास फाइल से प्राप्त होते हैं।

कॉन्फ़िगरेशन फ़ाइल में पाए गए विकल्पों में तर्क ExtraOptions जोड़ दिए गए हैं। यदि समान विकल्प निर्दिष्ट किए जाते हैं, तो कॉन्फ़िगरेशन फ़ाइल से मान ExtraOptions अधिलेखित कर ExtraOptions

यदि सर्वर कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट नहीं है, तो इसके बजाय connect/1,2 उपयोग करें।

इस फ़ंक्शन से लौटा हुआ अपारदर्शी handle() संदर्भ कनेक्शन पहचानकर्ता के रूप में उपयोग किया जा सकता है जब इस कनेक्शन पर सत्र खोलते हैं, session/1,2,3 । हालाँकि, यदि KeyOrName एक target_name() , अर्थात, यदि सर्वर का नाम ct:require/2 call ct:require/2 या परीक्षण सूट में एक require स्टेटमेंट के माध्यम से लिया जाता है, तो इस नाम का उपयोग handle() बजाय किया जा सकता है।

एसएसएच कनेक्शन स्थापित करते timeout विकल्प timeout (मिलीसेकंड) का उपयोग किया जाता है। इसका उपयोग कनेक्शन के जीवनकाल के दौरान किसी अन्य उद्देश्य के लिए नहीं किया जाता है।

copy_config (ग्राहक, लक्ष्य, स्रोत) -> परिणाम
copy_config (क्लाइंट, टारगेट, सोर्स, टाइमआउट) -> परिणाम

प्रकार

कॉन्फ़िगरेशन डेटा की प्रतिलिपि बनाता है।

जो स्रोत और लक्ष्य विकल्प जारी किए जा सकते हैं, वे सर्वर द्वारा समर्थित क्षमताओं पर निर्भर करते हैं। अर्थात् :candidate और / या :startup की आवश्यकता है।

create_subscription (क्लाइंट) -> परिणाम
create_subscription (क्लाइंट, स्ट्रीम) -> परिणाम
create_subscription (क्लाइंट, स्ट्रीम, फ़िल्टर) -> परिणाम
create_subscription (क्लाइंट, स्ट्रीम, फ़िल्टर, टाइमआउट) -> परिणाम
create_subscription (क्लाइंट, स्ट्रीम, फ़िल्टर, StartTime, StopTime) ->
परिणाम
create_subscription (क्लाइंट,
स्ट्रीम,
फ़िल्टर,
समय शुरू,
रुकने का समय,
टाइमआउट) ->
परिणाम

प्रकार

ईवेंट सूचनाओं के लिए एक सदस्यता बनाता है।

यह फ़ंक्शन निर्दिष्ट फ़िल्टर प्रकार से मेल खाते निर्दिष्ट स्ट्रीम प्रकार के NETCONF ईवेंट सूचनाओं के लिए एक सदस्यता सेट करता है। कॉलिंग प्रक्रिया, सूचना के प्रकार notification() संदेश के रूप में सूचनाएं प्राप्त करती है।

फ़ंक्शन क्लॉज़ का केवल एक सबसेट ऊपर दिखाया गया है। इनपुट मापदंडों के मान्य संयोजनों का पूरा सेट निम्नानुसार है:

create_subscription(Client)

create_subscription(Client, Timeout)
create_subscription(Client, Stream)
create_subscription(Client, Filter)

create_subscription(Client, Stream, Timeout)
create_subscription(Client, Filter, Timeout)
create_subscription(Client, Stream, Filter)
create_subscription(Client, StartTime, StopTime)

create_subscription(Client, Stream, Filter, Timeout)
create_subscription(Client, StartTime, StopTime, Timeout)
create_subscription(Client, Stream, StartTime, StopTime)
create_subscription(Client, Filter, StartTime, StopTime)

create_subscription(Client, Stream, StartTime, StopTime, Timeout)
create_subscription(Client, Stream, Filter, StartTime, StopTime)
create_subscription(Client, Stream, Filter, StartTime, StopTime, Timeout)
Stream

वैकल्पिक पैरामीटर जो इंगित करता है कि घटना की कौन सी धारा ब्याज की है। यदि मौजूद नहीं है, तो डिफ़ॉल्ट NETCONF स्ट्रीम में ईवेंट भेजे जाते हैं।

Filter

वैकल्पिक पैरामीटर जो इंगित करता है कि सभी संभावित घटनाओं का सबसेट ब्याज की है। पैरामीटर प्रारूप NETCONF प्रोटोकॉल ऑपरेशन में फिल्टर पैरामीटर के समान है। यदि मौजूद नहीं है, तो अन्य मापदंडों द्वारा अप्रभावित सभी घटनाओं को नहीं भेजा जाता है।

StartTime

वैकल्पिक पैरामीटर का उपयोग रिप्ले फीचर को ट्रिगर करने के लिए किया जाता है और यह दर्शाता है कि रिप्ले निर्दिष्ट समय पर शुरू होना है। यदि StartTime मौजूद नहीं है, तो यह एक रिप्ले सदस्यता नहीं है।

यह वर्तमान समय की तुलना में बाद में शुरू होने वाले समय को निर्दिष्ट करने के लिए मान्य नहीं है। यदि लॉग StartTime का समर्थन करने से पहले StartTime निर्दिष्ट किया गया है, तो रिप्ले जल्द से जल्द उपलब्ध अधिसूचना के साथ शुरू होता है।

यह पैरामीटर RFC 3339 के प्रकार डेटटाइम और अनुपालन का है। कार्यान्वयन को समय क्षेत्र का समर्थन करना चाहिए।

StopTime

वैकल्पिक रिप्ले सुविधा के साथ वैकल्पिक पैरामीटर का उपयोग ब्याज की नवीनतम सूचनाओं को इंगित करने के लिए किया जाता है। यदि StopTime मौजूद नहीं है, तो सदस्यता समाप्त होने तक सूचनाएं जारी रहती हैं।

StartTime साथ और बाद में उपयोग किया जाना चाहिए। भविष्य में StopTime मान मान्य हैं। यह पैरामीटर RFC 3339 के प्रकार डेटटाइम और अनुपालन का है। कार्यान्वयन को समय क्षेत्र का समर्थन करना चाहिए।

ईवेंट सूचना तंत्र के बारे में अधिक जानकारी के लिए, RFC 5277 देखें।

delete_config (क्लाइंट, लक्ष्य) -> परिणाम
delete_config (क्लाइंट, टारगेट, टाइमआउट) -> परिणाम

प्रकार

कॉन्फ़िगरेशन डेटा हटाता है।

चल रहे कॉन्फ़िगरेशन को हटाया नहीं जा सकता है और :candidate या :startup को सर्वर द्वारा विज्ञापित किया जाना चाहिए।

डिस्कनेक्ट (कॉन) -> ठीक | {त्रुटि, error_reason() }

प्रकार

दिए गए SSH कनेक्शन को बंद कर देता है।

यदि कनेक्शन पर NETCONF सत्र खुले हैं, तो ये क्रूरता से समाप्त कर दिए जाएंगे। इससे बचने के लिए, प्रत्येक सत्र close_session/1,2 साथ बंद करें

edit_config (ग्राहक, लक्ष्य, विन्यास) -> परिणाम
edit_config (क्लाइंट, टारगेट, कॉन्फिगर, ऑप्टपरामम्स) -> परिणाम
edit_config (क्लाइंट, लक्ष्य, कॉन्फ़िगरेशन, टाइमआउट) -> परिणाम
edit_config (क्लाइंट, टारगेट, कॉन्फ़िगरेशन, ऑप्टपराम, टाइमआउट) -> परिणाम

प्रकार

कॉन्फ़िगरेशन डेटा संपादित करता है।

डिफ़ॉल्ट रूप से केवल चल रहे लक्ष्य उपलब्ध है, जब तक कि सर्वर में शामिल न हो :candidate अपनी क्षमताओं की सूची में :candidate या :startup

OptParams का उपयोग वैकल्पिक पैरामीटर निर्दिष्ट करने के लिए किया जा सकता है ( default-operation , test-option , या error-option ) को edit-config अनुरोध में जोड़ा जा सकता है। मूल्य उदाहरण के लिए वैध सरल XML वाली सूची होना चाहिए:

[{'default-operation', ["none"]},
 {'error-option', ["rollback-on-error"]}]

यदि OptParams नहीं दिया जाता है, तो डिफ़ॉल्ट मान [] का उपयोग किया जाता है।

get (ग्राहक, फ़िल्टर) -> परिणाम
get (क्लाइंट, फ़िल्टर, टाइमआउट) -> परिणाम

प्रकार

डेटा हो जाता है।

यह ऑपरेशन सर्वर से कॉन्फ़िगरेशन और राज्य डेटा दोनों देता है।

फ़िल्टर प्रकार xpath का उपयोग केवल तभी किया जा सकता है जब सर्वर समर्थन करता है :xpath

get_capabilities (ग्राहक) -> परिणाम
get_capabilities (ग्राहक, समय समाप्त) -> परिणाम

प्रकार

सर्वर साइड क्षमताओं देता है।

RFC 4741 NETCONF कॉन्फ़िगरेशन प्रोटोकॉल में परिभाषित निम्नलिखित क्षमता पहचानकर्ताओं को लौटाया जा सकता है:

  • "urn:ietf:params:netconf:base:1.0"

  • "urn:ietf:params:netconf:capability:writable-running:1.0"

  • "urn:ietf:params:netconf:capability:candidate:1.0"

  • "urn:ietf:params:netconf:capability:confirmed-commit:1.0"

  • "urn:ietf:params:netconf:capability:rollback-on-error:1.0"

  • "urn:ietf:params:netconf:capability:startup:1.0"

  • "urn:ietf:params:netconf:capability:url:1.0"

  • "urn:ietf:params:netconf:capability:xpath:1.0"

अधिक पहचानकर्ता मौजूद हो सकते हैं, उदाहरण के लिए, सर्वर-साइड नेमस्पेस।

get_config (ग्राहक, स्रोत, फ़िल्टर) -> परिणाम
get_config (क्लाइंट, स्रोत, फ़िल्टर, टाइमआउट) -> परिणाम

प्रकार

कॉन्फ़िगरेशन डेटा हो जाता है।

running तुलना में किसी अन्य स्रोत तक पहुंचने में सक्षम होने के लिए, सर्वर को विज्ञापन देना होगा :candidate और / या :startup

फ़िल्टर प्रकार xpath का उपयोग केवल तभी किया जा सकता है जब सर्वर समर्थन करता है :xpath

get_event_streams (क्लाइंट) -> परिणाम
get_event_streams (क्लाइंट, टाइमआउट) -> परिणाम
get_event_streams (क्लाइंट, स्ट्रीम) -> परिणाम
get_event_streams (क्लाइंट, स्ट्रीम, टाइमआउट) -> परिणाम

प्रकार

निर्दिष्ट ईवेंट स्ट्रीम प्राप्त करने के लिए एक अनुरोध भेजता है।

Streams स्ट्रीम नामों की एक सूची है। निवेदन में निम्नलिखित फ़िल्टर को NETCONF सर्वर पर भेजा जाता है:

<netconf xmlns="urn:ietf:params:xml:ns:netmod:notification">
  <streams>
    <stream>
      <name>StreamName1</name>
    </stream>
    <stream>
      <name>StreamName2</name>
    </stream>
    ...
  </streams>
</netconf>

यदि Streams एक खाली सूची है, तो निम्नलिखित फ़िल्टर भेजकर सभी धाराओं का अनुरोध किया जाता है:

<netconf xmlns="urn:ietf:params:xml:ns:netmod:notification">
  <streams/>
</netconf>

यदि अधिक जटिल फ़िल्टरिंग की आवश्यकता है, तो ct_netconfc:get/2,3 उपयोग ct_netconfc:get/2,3 और RFC 5277 में "इवेंट नोटिफिकेशन के लिए XML स्कीमा" के अनुसार सटीक फ़िल्टर निर्दिष्ट करें।

get_session_id (क्लाइंट) -> परिणाम
get_session_id (क्लाइंट, टाइमआउट) -> परिणाम

प्रकार

निर्दिष्ट क्लाइंट से संबंधित सत्र आईडी लौटाता है।

हैलो (ग्राहक) -> परिणाम
हैलो (क्लाइंट, टाइमआउट) -> परिणाम
हैलो (ग्राहक, विकल्प, समय समाप्त) -> परिणाम

प्रकार

सर्वर के साथ hello संदेशों का आदान-प्रदान करता है।

वैकल्पिक क्षमताओं को जोड़ता है और सर्वर को एक hello संदेश भेजता है और वापसी का इंतजार करता है।

Kill_session (ग्राहक, सत्र II) -> परिणाम
Kill_session (क्लाइंट, सत्रआईड, टाइमआउट) -> परिणाम

प्रकार

आपूर्ति सत्र आईडी से जुड़े सत्र की समाप्ति।

सर्वर साइड को किसी भी चालू ऑपरेशन को रोकना चाहिए, सत्र से जुड़े किसी भी ताले और संसाधनों को जारी करना चाहिए, और किसी भी संबंधित कनेक्शन को बंद करना चाहिए।

केवल अगर सर्वर पुष्टि किए गए प्रतिबद्ध चरण में है, तो पुष्टि किए गए प्रतिबद्ध चरण में प्रवेश करने से पहले कॉन्फ़िगरेशन को उसके राज्य में पुनर्स्थापित किया जाता है। अन्यथा, कोई कॉन्फ़िगरेशन रोलबैक नहीं किया जाता है।

यदि निर्दिष्ट SessionId वर्तमान सत्र आईडी के बराबर है, तो एक त्रुटि वापस आ जाती है।

लॉक (क्लाइंट, लक्ष्य) -> परिणाम
लॉक (क्लाइंट, टारगेट, टाइमआउट) -> परिणाम

प्रकार

कॉन्फ़िगरेशन लक्ष्य को लॉक करता है।

कौन से लक्ष्य पैरामीटर का उपयोग किया जा सकता है, इस पर निर्भर करता है कि :candidate और / या :startup सर्वर द्वारा समर्थित हैं। यदि सफल होता है, तो डिवाइस का कॉन्फ़िगरेशन सिस्टम अन्य क्लाइंट (NETCONF, CORBA, SNMP, और इसी तरह) पर उपलब्ध नहीं है। ताले अल्पकालिक होने का इरादा रखते हैं।

ऑपरेशन kill_session/2,3 का उपयोग एक अन्य NETCONF सत्र के स्वामित्व वाले लॉक की रिहाई को मजबूर करने के लिए किया जा सकता है। यह कैसे प्राप्त किया जाता है सर्वर साइड कार्यान्वयन-विशिष्ट है।

only_open (विकल्प) -> परिणाम

प्रकार

एक NETCONF सत्र खोलता है, लेकिन hello नहीं भेजता है।

के रूप में open/1,2 , लेकिन एक hello संदेश नहीं भेजता है।

only_open (KeyOrName, ExtraOptions) -> परिणाम

प्रकार

एक नामित NETCONF सत्र खोलता है, लेकिन hello नहीं भेजता है।

के रूप में open/2 , लेकिन एक hello संदेश नहीं भेजता है।

open (विकल्प) -> परिणाम

प्रकार

एक NETCONF सत्र खोलता है और hello संदेशों का आदान-प्रदान करता है।

यदि सर्वर विकल्प एक कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट हैं, या यदि लॉगिंग उद्देश्यों के लिए नामित क्लाइंट की आवश्यकता है (इस मॉड्यूल में अनुभाग Logging देखें), इसके बजाय open/2 उपयोग करें।

इस फ़ंक्शन से लौटे अपारदर्शी handle() संदर्भ को इस मॉड्यूल में किसी अन्य फ़ंक्शन को कॉल करते समय क्लाइंट पहचानकर्ता के रूप में आवश्यक है।

विकल्प timeout (मिलीसेकंड) का उपयोग एसएसएच कनेक्शन स्थापित करते समय और सर्वर से hello संदेश की प्रतीक्षा करते समय किया जाता है। इसका उपयोग कनेक्शन के जीवनकाल के दौरान किसी अन्य उद्देश्य के लिए नहीं किया जाता है।

खुला (KeyOrName, ExtraOptions) -> परिणाम

प्रकार

एक नामित NETCONF सत्र खोलता है और hello संदेशों का आदान-प्रदान करता है।

यदि KeyOrName एक कॉन्फ़िगर किया गया server_id() या target_name() ऐसी आईडी से जुड़ा है, तो इस सर्वर के लिए विकल्प विन्यास फाइल से प्राप्त होते हैं।

कॉन्फ़िगरेशन फ़ाइल में पाए गए विकल्पों में तर्क ExtraOptions जोड़ दिए गए हैं। यदि समान विकल्प निर्दिष्ट किए जाते हैं, तो कॉन्फ़िगरेशन फ़ाइल से मान ExtraOptions अधिलेखित कर ExtraOptions

यदि सर्वर कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट नहीं है, तो इसके बजाय open/1,2 उपयोग करें।

इस फ़ंक्शन से लौटा हुआ अपारदर्शी handle() संदर्भ इस मॉड्यूल में किसी अन्य फ़ंक्शन को कॉल करते समय क्लाइंट आइडेंटिफायर के रूप में उपयोग किया जा सकता है। हालाँकि, यदि KeyOrName एक target_name() , अर्थात, यदि सर्वर का नाम ct:require/2 call ct:require/2 या परीक्षण सूट में एक require स्टेटमेंट के माध्यम से लिया जाता है, तो इस नाम का उपयोग handle() बजाय किया जा सकता है।

विकल्प timeout (मिलीसेकंड) का उपयोग एसएसएच कनेक्शन स्थापित करते समय और सर्वर से hello संदेश की प्रतीक्षा करते समय किया जाता है। इसका उपयोग कनेक्शन के जीवनकाल के दौरान किसी अन्य उद्देश्य के लिए नहीं किया जाता है।

ct:require/2 भी देखें ct:require/2

भेजें (ग्राहक, SimpleXml) -> परिणाम
भेजें (क्लाइंट, सिंपलएक्सएमएल, टाइमआउट) -> परिणाम

प्रकार

सर्वर पर एक XML दस्तावेज़ भेजता है।

निर्दिष्ट XML दस्तावेज़ सर्वर पर "जैसा है" भेजा जाता है। इस फ़ंक्शन का उपयोग XML दस्तावेज़ भेजने के लिए किया जा सकता है जिन्हें इस मॉड्यूल में अन्य इंटरफ़ेस फ़ंक्शन द्वारा व्यक्त नहीं किया जा सकता है।

send_rpc (क्लाइंट, सिम्पलेक्स Xml) -> परिणाम
send_rpc (क्लाइंट, सिम्प्लेक्सएक्स, टाइमआउट) -> परिणाम

प्रकार

सर्वर पर एक NETCONF rpc अनुरोध भेजता है।

निर्दिष्ट XML दस्तावेज़ को एक वैध NETCONF rpc अनुरोध में लपेटा गया है और सर्वर पर भेजा गया है। message-id और नेमस्पेस विशेषताएँ तत्व rpc जोड़े जाते हैं।

इस फ़ंक्शन का उपयोग rpc अनुरोध भेजने के लिए किया जा सकता है जो इस मॉड्यूल में अन्य इंटरफ़ेस फ़ंक्शन द्वारा व्यक्त नहीं किया जा सकता है।

सत्र (कोन) -> परिणाम
सत्र (कॉन, विकल्प) -> परिणाम
सत्र (KeyOrName, Conn) -> परिणाम
सत्र (KeyOrName, Conn, Options) -> परिणाम

प्रकार

दिए गए SSH कनेक्शन पर एक चैनल के रूप में एक NETCONF सत्र खोलता है, और सर्वर के साथ हैलो संदेशों का आदान-प्रदान करता है।

इस फ़ंक्शन से लौटा हुआ अपारदर्शी handle() संदर्भ इस मॉड्यूल में किसी अन्य फ़ंक्शन को कॉल करते समय क्लाइंट आइडेंटिफायर के रूप में उपयोग किया जा सकता है। हालाँकि, यदि KeyOrName का उपयोग किया जाता है और यह एक target_name() , अर्थात, यदि सर्वर को कॉल के माध्यम से ct:require/2 लिए नाम दिया गया है ct:require/2 परीक्षण सूट में ct:require/2 या एक require कथन की require , तो इस नाम का उपयोग handle() बजाय किया जा सकता है handle()

अनलॉक (क्लाइंट, लक्ष्य) -> परिणाम
अनलॉक (क्लाइंट, टारगेट, टाइमआउट) -> परिणाम

प्रकार

कॉन्फ़िगरेशन लक्ष्य अनलॉक करता है।

यदि क्लाइंट ने पहले lock/2,3 माध्यम से lock/2,3 का अधिग्रहण किया है, तो यह ऑपरेशन संबंधित लॉक को रिलीज़ करता है। running तुलना में किसी अन्य लक्ष्य तक पहुंचने के लिए, सर्वर को समर्थन करना चाहिए :candidate और / या :startup