2

NETCONFタグを含むデバイスにXML RPCリクエストを送信するためのより良い方法を探しています。YANGデータモデルからXML RPC NETCONFリクエストを生成する標準的な方法は何ですか?

リクエストがどのように表示されるかわかりましたので、私がやっていることは、XML-RPCリクエストXMLをプレースホルダでハードコーディングすることです。これらのプレースホルダは後で実際の入力に置き換えることができます。

例:リクエストを送信しながら、この例では、ここで

<rpc message-id=""> 
    <get-config> 
    <source> 
     <running/> 
    </source> 
    <filter type="subtree" base_path=""> 
     <wing-stats> 
     <device> 
      <lldp> 
      <dev_id/> 
      <local_port/> 
      <neighborId/> 
      <Neighbor_port_id/> 
      </lldp> 
      <mac>@device_mac</mac> 
     </device> 
     </wing-stats> 
    </filter> 
    </get-config> 
</rpc> 

、@device_macが置き換えられます。しかし、要求XMLをハードコーディングしていると感じたこともあります。要求XMLを生成するためのよりよい方法はありますか?

Netconfデータは、YANG/YINファイルを使用してモデル化されます。 NETCONFリクエストパートatleastを生成するためにこれらのファイルを利用する方法はありますか?

答えて

1

バラ、

私はこれを行うには二つの方法があると言うだろう:あなたは、どちらかの利用可能であり、私はそれらの少なくとも1つは、モデル指向のAPIを生成することを知っている日付のモデル駆動型ツールキットのいずれかを使用することができます詳細なXML(DOM)操作を隠すことができます。第2の方向は、pyangツールによって実装されたRFC 6110で定義されたYANGからDSDLへのマッピングを利用することです。今度は、DSDLでツールが動作する必要があります。これは基本的にRelax NGSchematronの組み合わせです。

これが役に立ちます。

+0

また、pyang DSDLプラグインを使用してRelax NGスキーマを作成し、それから何らかの形でrpcメッセージを生成することをお勧めします。このようなスキーマは、既存のNETCONFコンテンツの検証に使用されるものであり、それらからコンテンツを生成するには実装に多少の努力が必要な場合があります。 JavaでRNGを扱うのに役立つツールを見つけるのが難しいことは分かっています。マッピングはRFC6110で定義されています.. – predi

0

私はそれがあなたの文脈によって異なると言いたいと思います。あなたのアプリケーションがこの特定のモデルとこの特定のrpcをサポートすることを意図していたならば、のみそれでは、このような小さなユースケースのために、より洗練された、モデルに依存しないAPIを使用するのはおそらく過剰です。

一方、アプリケーションが多くのモデルとRPGをサポートする必要がある場合、または実行時に追加された新しいモデルをサポートする必要がある場合でも、Carl氏が指摘したモデル。