首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用RESTCONF在路由器Cisco-IOS-XE中激活OSPF?

如何使用RESTCONF在路由器Cisco-IOS-XE中激活OSPF?
EN

Stack Overflow用户
提问于 2020-05-25 01:09:02
回答 2查看 286关注 0票数 0

我正在尝试使用python脚本和restconf在路由器中激活OSPF路由协议。我将请求发送到此url错误,但收到以下返回消息:{“https://(router/restconf/data/Cisco-IOS-XE-ospf-native-router:10”:{"error":{ "error-message":“找不到uri keypath”,"error-tag":"invalid-value","error-type":"application“}}}

我尝试了不同的网址,但没有人是正确的,我不知道什么是错误的,网址或正文的内容,有人能帮我吗?

以下是我的脚本内容:

代码语言:javascript
复制
import json
import requests

requests.packages.urllib3.disable_warnings()

api_url = "https://(ip)/restconf/data/Cisco-IOS-XE-ospf-native-router:10"
headers = {"Accept": "application/yang-data+json",
           "Content-type": "application/yang-data+json"}
basicauth = ("user", "password")

body = '{"router":{"ospf":[{"id":10, "router-id":"1.1.1.1", "network":[{"ip": "172.16.199.1", "mask": "0.0.0.0", "area": 0},{"ip":"192.168.56.101", "mask": "0.0.0.0", "area":0}]}]}}'

requests.put(api_url, auth=basicauth, headers=headers, data=body, verify=False)

resp = requests.get(api_url, auth=basicauth, headers=headers, verify=False)

response_json = resp.json()

print(json.dumps(response_json, indent=5))
EN

回答 2

Stack Overflow用户

发布于 2021-02-09 00:50:31

使用RESTCONF OSPF配置只能修改,不能创建。

代码语言:javascript
复制
ospf_data = '''
{
    "Cisco-IOS-XE-native:router": {
        "Cisco-IOS-XE-ospf:router-ospf": {
            "ospf": {
                "process-id": [
                    {
                        "id": 10
                    }
                ]
            }
        }
    }
}
'''

def modify_ospf(data):
    ospf_api = "/restconf/data/Cisco-IOS-XE-native:native/router"
    ospf_uri = "https://" + host + ospf_api
    headers = {'Content-Type': 'application/yang-data+json','Accept': 'application/yang-data+json'}

    ospf_config_result = requests.request("PUT",
                                         url=ospf_uri, 
                                         auth=(username,password), 
                                         data=data, 
                                         headers=headers, 
                                         verify=False)
    
modify_ospf(ospf_data)

票数 0
EN

Stack Overflow用户

发布于 2021-02-12 09:08:17

你的身体似乎不是有效的阳格式。

body = '{"router":{"ospf":[{"id":10, "router-id":"1.1.1.1", "network":[{"ip": "172.16.199.1", "mask": "0.0.0.0", "area": 0},{"ip":"192.168.56.101", "mask": "0.0.0.0", "area":0}]}]}}'

你必须遵循YANG的格式,比如:

代码语言:javascript
复制
$ curl -k -s -u user:password -X GET -H 'Accept: application/yang-data+json' https://172.31.5.1/restconf/data/Cisco-IOS-XE-native:native/Cisco-IOS-XE-native:router/ospf

{
  "Cisco-IOS-XE-ospf:ospf": [
    {
      "id": 10,
      "router-id": "1.1.1.1",
      "network": [
        {
          "ip": "172.16.199.1",
          "mask": "0.0.0.0",
          "area": 0
        },
        {
          "ip": "192.168.56.101",
          "mask": "0.0.0.0",
          "area": 0
        }
      ]
    }
  ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61989491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档