Guest User

Untitled

a guest
Feb 12th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. ```python
  2.  
  3. from xrtelemetry import Cisco_IOS_XR_telemetry_model_driven_cfg
  4. from ncclient import manager
  5. import pyangbind.lib.pybindJSON as pybindJSON
  6. import json
  7. import sys
  8. import os
  9. import xml.dom.minidom
  10.  
  11. host = '10.10.1.23'
  12. port = '830'
  13. username = 'admin'
  14. password = 'admin'
  15.  
  16. model = Cisco_IOS_XR_telemetry_model_driven_cfg()
  17.  
  18. sensgrp = 'ipv4ospf'
  19. senspath = 'Cisco-IOS-XR-ipv4-ospf-oper:ospf/processes/process/default-vrf/route-information/connected-routes'
  20. subid = 'IPV4'
  21. #sourceint = 'GigabitEthernet0/0/0/0'
  22.  
  23. # Add Sensor
  24. newsensor = model.telemetry_model_driven.sensor_groups.sensor_group.add(sensgrp)
  25. sensorpath = newsensor.sensor_paths.sensor_path.add(senspath)
  26.  
  27. # Add Subscription
  28. newsubscript = model.telemetry_model_driven.subscriptions.subscription.add(subid)
  29. profile = newsubscript.sensor_profiles.sensor_profile.add(sensgrp)
  30. profile.sample_interval = 10000
  31. #newsubscript.source_interface = sourceint
  32.  
  33. # Other Settings
  34. #model.telemetry_model_driven.strict_timer = 'True'
  35. model.telemetry_model_driven.enable = 'True'
  36.  
  37. json_data = pybindJSON.dumps(model, mode='ietf')
  38.  
  39. with open('xrtelemetry.json', 'w') as f:
  40. f.write(json_data)
  41.  
  42. ## Json to XML
  43. os.system('json2xml -t config -o xrtelemetry.xml xrtelemetry.jtox xrtelemetry.json')
  44. dom = xml.dom.minidom.parse('xrtelemetry.xml')
  45. prettyxml = dom.toprettyxml()
  46. with open("xrtelemetry.xml", 'w') as f:
  47. f.write(prettyxml)
  48.  
  49. ## Send XML
  50. exists = os.path.isfile('xrtelemetry.xml')
  51. if exists :
  52. def read_file(fn):
  53. with open(fn) as f:
  54. result = f.read()
  55. return result
  56.  
  57. os.remove('xrtelemetry.json')
  58. xml = read_file('xrtelemetry.xml')
  59. os.remove('xrtelemetry.xml')
  60.  
  61. with manager.connect(host=host, port=port, username=username, password=password, hostkey_verify=False, device_params={'name': 'iosxr'}) as m:
  62. reply = m.edit_config(target='candidate', config=xml)
  63. c = m.commit()
  64.  
  65. print("Edit Config Success? {}".format(reply.ok))
  66. print("Commit Success? {}".format(c.ok))
  67.  
  68. else:
  69. print("XML File Does Not Exist")
  70. ```
  71.  
  72. ```bash
  73. grpc
  74. no-tls
  75. !
  76. telemetry model-driven
  77. sensor-group ipv4ospf
  78. sensor-path Cisco-IOS-XR-ipv4-ospf-oper:ospf/processes/process/default-vrf/route-information/connected-routes
  79. !
  80. subscription IPV4
  81. sensor-group-id ipv4ospf sample-interval 10000
  82. !
  83. !
  84. ```
  85.  
  86. ```json
  87. {"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}
  88.  
  89. ```
Add Comment
Please, Sign In to add comment