Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```python
- from xrtelemetry import Cisco_IOS_XR_telemetry_model_driven_cfg
- from ncclient import manager
- import pyangbind.lib.pybindJSON as pybindJSON
- import json
- import sys
- import os
- import xml.dom.minidom
- host = '10.10.1.23'
- port = '830'
- username = 'admin'
- password = 'admin'
- model = Cisco_IOS_XR_telemetry_model_driven_cfg()
- sensgrp = 'ipv4ospf'
- senspath = 'Cisco-IOS-XR-ipv4-ospf-oper:ospf/processes/process/default-vrf/route-information/connected-routes'
- subid = 'IPV4'
- #sourceint = 'GigabitEthernet0/0/0/0'
- # Add Sensor
- newsensor = model.telemetry_model_driven.sensor_groups.sensor_group.add(sensgrp)
- sensorpath = newsensor.sensor_paths.sensor_path.add(senspath)
- # Add Subscription
- newsubscript = model.telemetry_model_driven.subscriptions.subscription.add(subid)
- profile = newsubscript.sensor_profiles.sensor_profile.add(sensgrp)
- profile.sample_interval = 10000
- #newsubscript.source_interface = sourceint
- # Other Settings
- #model.telemetry_model_driven.strict_timer = 'True'
- model.telemetry_model_driven.enable = 'True'
- json_data = pybindJSON.dumps(model, mode='ietf')
- with open('xrtelemetry.json', 'w') as f:
- f.write(json_data)
- ## Json to XML
- os.system('json2xml -t config -o xrtelemetry.xml xrtelemetry.jtox xrtelemetry.json')
- dom = xml.dom.minidom.parse('xrtelemetry.xml')
- prettyxml = dom.toprettyxml()
- with open("xrtelemetry.xml", 'w') as f:
- f.write(prettyxml)
- ## Send XML
- exists = os.path.isfile('xrtelemetry.xml')
- if exists :
- def read_file(fn):
- with open(fn) as f:
- result = f.read()
- return result
- os.remove('xrtelemetry.json')
- xml = read_file('xrtelemetry.xml')
- os.remove('xrtelemetry.xml')
- with manager.connect(host=host, port=port, username=username, password=password, hostkey_verify=False, device_params={'name': 'iosxr'}) as m:
- reply = m.edit_config(target='candidate', config=xml)
- c = m.commit()
- print("Edit Config Success? {}".format(reply.ok))
- print("Commit Success? {}".format(c.ok))
- else:
- print("XML File Does Not Exist")
- ```
- ```bash
- grpc
- no-tls
- !
- telemetry model-driven
- sensor-group ipv4ospf
- sensor-path Cisco-IOS-XR-ipv4-ospf-oper:ospf/processes/process/default-vrf/route-information/connected-routes
- !
- subscription IPV4
- sensor-group-id ipv4ospf sample-interval 10000
- !
- !
- ```
- ```json
- {"node_id_str":"ios","subscription_id_str":"app_TEST_200000001","encoding_path":"Cisco-IOS-XR-ipv4-ospf-oper:ospf/processes/process/default-vrf/route-information/connected-routes/connected-route","collection_id":6,"collection_start_time":1549874001342,"msg_timestamp":1549874001348,"data_json":[{"timestamp":1549874001347,"keys":[{"process-name":"1"},{"prefix":"1.1.1.0"},{"prefix-length":24}],"content":{"route-prefix":"1.1.1.0","route-prefix-length":24,"route-metric":1,"route-type":"mgmt-rtype-none","route-connected":true,"route-info":{"route-area-id":0,"route-te-metric":4294967295,"route-rib-version":0,"route-spf-version":0,"route-forward-distance":0,"route-source":0,"route-update-time":{"second":1549868416,"nanosecond":380460584},"route-fail-time":{"second":0,"nanosecond":0},"route-spf-priority":8,"route-auto-excluded":false,"route-srte-prefix-registered":false,"route-srte-nbr-registered":0,"route-label-type":0,"route-label":0,"route-sspf-label":0},"route-path-list":[{"route-interface-name":"GigabitEthernet0/0/0/0","route-interface-snmp-index":0,"route-next-hop-address":"1.1.1.1","route-source":"0.0.0.0","route-lsaid":"0.0.0.0","route-path-is-mcast-intact":false,"route-path-is-ucmp-path":false,"route-metric":0,"lsa-type":0,"area-id":0,"area-format":false,"route-path-id":0,"route-path-is-rsvp-te-path":false,"route-path-is-sr-te-path":false,"route-path-is-sr-excl-path":false,"route-path-is-sr-te-sspf-path":false,"neighbor-next-hop-list":[]}]}},{"timestamp":1549874001347,"keys":[{"process-name":"1"},{"prefix":"2.2.2.0"},{"prefix-length":24}],"content":{"route-prefix":"2.2.2.0","route-prefix-length":24,"route-metric":1,"route-type":"mgmt-rtype-none","route-connected":true,"route-info":{"route-area-id":0,"route-te-metric":4294967295,"route-rib-version":0,"route-spf-version":0,"route-forward-distance":0,"route-source":0,"route-update-time":{"second":1549868416,"nanosecond":380526681},"route-fail-time":{"second":0,"nanosecond":0},"route-spf-priority":8,"route-auto-excluded":false,"route-srte-prefix-registered":false,"route-srte-nbr-registered":0,"route-label-type":0,"route-label":0,"route-sspf-label":0},"route-path-list":[{"route-interface-name":"GigabitEthernet0/0/0/1","route-interface-snmp-index":0,"route-next-hop-address":"2.2.2.1","route-source":"0.0.0.0","route-lsaid":"0.0.0.0","route-path-is-mcast-intact":false,"route-path-is-ucmp-path":false,"route-metric":0,"lsa-type":0,"area-id":0,"area-format":false,"route-path-id":0,"route-path-is-rsvp-te-path":false,"route-path-is-sr-te-path":false,"route-path-is-sr-excl-path":false,"route-path-is-sr-te-sspf-path":false,"neighbor-next-hop-list":[]}]}}],"collection_end_time":1549874001349}
- ```
Add Comment
Please, Sign In to add comment