gpt4 book ai didi

xml - 以编程方式构造 netconf 编辑配置请求

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:52 26 4
gpt4 key购买 nike

<分区>

我正在尝试以编程方式为 yang 模式配置对象构造 netconf 编辑配置请求。目前我正在手动构建这个 xml 字符串。有没有办法以编程方式执行此操作?我正在使用 golang

例如,我正在尝试发送对模式 bgp-config.yang 中定义的 bgp 配置元素的编辑配置请求:

module bgp-config {
namespace "http://exnet.com/bgp-config";
prefix bgp-config;
import ietf-inet-types { prefix inet; }
import tailf-common { prefix tailf; }
import ietf-yang-types { prefix yang; }
import ietf-bgp-types { prefix bgp-types; }
import ietf-bgp-multiprotocol { prefix bgp-mp; }
import openconfig-routing-policy { prefix rpol; }
import myietf-routing {prefix rt;}
revision "2016-04-07" {
description "Revisied on 2016-04-07.";
}
augment "/rt:router"
{
list bgp {
//presence "Container for BGP protocol hierarchy";
//tailf:cli-add-mode;
tailf:info "Top-level configuration and state for the BGP router";
tailf:cli-full-no;
tailf:cli-suppress-list-no;
key "local-as";
max-elements 1;
description
"Top-level configuration and state for the BGP router";
uses bgp_config;
uses bgp-graceful-restart;
uses bgp-mp:bgp-route-selection-options;
//tailf:cli-suppress-no;
container afi-safis {
tailf:cli-drop-node-name;
description
"Address family specific configuration";
uses bgp-mp:bgp-common-afi-safi-list;
}

}
}

我有这个代码片段来向 netconf 服务器发送 bgp 配置元素的编辑配置请求:

var s *netconf.Session 
localas := 888
xmlstr := `<edit-config>
<target><candidate/></target>
<config>
<router xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
<bgp xmlns="http://exnet.com/bgp-config">
<local-as>` + strconv.Itoa(localas) + `</local-as>
</bgp>
</router>
</config>
</edit-config>`
NetConfSendRPC(s, xmlstr)
xmlstr = "<commit/>"
NetConfSendRPC(s, xmlstr)
s.Close()

我的问题是如何以编程方式构造 xml 字符串以发送所有配置元素的编辑配置。第一步是从 yang 模式生成 xml 标记的 go 结构(这是我需要帮助/指针的地方),然后我可以使用 xml marshal 方法来构造请求。对第一步的任何建议都会有所帮助。谢谢。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com