vyos.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import requests
  2. import json
  3. import pprint
  4. import sys
  5. #curl -k -X POST -F data='{"op": "set", "path": ["interfaces", "dummy", "dum1", "address"], "value": "203.0.113.76/32"}' -F key=a6ffb742a8a631a65b07ab2026258629da2632fd https://179.127.12.142:44302/configure
  6. sys.path.append('/var/secrets')
  7. import local
  8. SERVER_URL_MANAGE = local.SERVER_URL + 'config-file'
  9. SERVER_URL_CONFIG = local.SERVER_URL + 'configure'
  10. SERVER_URL_RETRIE = local.SERVER_URL + 'retrieve'
  11. #data='{"op": "showConfig", "path": ["interfaces", "dummy"]}
  12. def getall():
  13. #cmd = {"op": "save", "file": "/config/config.boot"}
  14. cmd = {"op": "showConfig", "path": ["interfaces", "dummy"]}
  15. print(json.dumps(cmd))
  16. post = {'key': local.SERVER_KEY, 'data': json.dumps(cmd)}
  17. print(post)
  18. # curl -X POST -F data='{"op": "showConfig", "path": ["interfaces", "dummy"]}' -F key=qwerty http://127.0.0.1:8080/retrieve
  19. # {"success": true, "data": " /* So very dummy */\n dummy dum0 {\n address 192.168.168.1/32\n address 192.168.168.2/32\n /* That is a description */\n description \"Test interface\"\n }\n dummy dum1 {\n address 203.0.113.76/32\n address 203.0.113.79/32\n }\n", "error": null}
  20. resp = requests.post(SERVER_URL_RETRIE, verify=False, data=post)
  21. print(resp.status_code)
  22. pprint.pprint(resp)
  23. pprint.pprint(resp.json())
  24. if resp.status_code != 200:
  25. # This means something went wrong.
  26. #raise ApiError('POST /tasks/ {}'.format(resp.status_code))
  27. return "erro"
  28. #for todo_item in resp.json():
  29. #print('{} {}'.format(todo_item['id'], todo_item['summary']))
  30. return resp
  31. def get_interfaces():
  32. cmd = {"op": "showConfig", "path": ["interfaces"]}
  33. print(json.dumps(cmd))
  34. post = {'key': local.SERVER_KEY, 'data': json.dumps(cmd)}
  35. print(post)
  36. # curl -X POST -F data='{"op": "showConfig", "path": ["interfaces", "dummy"]}' -F key=qwerty http://127.0.0.1:8080/retrieve
  37. # {"success": true, "data": " /* So very dummy */\n dummy dum0 {\n address 192.168.168.1/32\n address 192.168.168.2/32\n /* That is a description */\n description \"Test interface\"\n }\n dummy dum1 {\n address 203.0.113.76/32\n address 203.0.113.79/32\n }\n", "error": null}
  38. resp = requests.post(SERVER_URL_RETRIE, verify=False, data=post)
  39. print(resp.status_code)
  40. pprint.pprint(resp)
  41. pprint.pprint(resp.json())
  42. if resp.status_code != 200:
  43. # This means something went wrong.
  44. #raise ApiError('POST /tasks/ {}'.format(resp.status_code))
  45. return "erro"
  46. #for todo_item in resp.json():
  47. #print('{} {}'.format(todo_item['id'], todo_item['summary']))
  48. result1 = resp.json()
  49. print(result1['data'])
  50. #result2 = json.loads(result1['data'])
  51. pprint.pprint(result1)
  52. return result1['data']
  53. def get_interface(interface_type, interface_name):
  54. cmd = {"op": "showConfig", "path": ["interfaces", interface_type, interface_name]}
  55. print(json.dumps(cmd))
  56. post = {'key': local.SERVER_KEY, 'data': json.dumps(cmd)}
  57. print(post)
  58. # curl -X POST -F data='{"op": "showConfig", "path": ["interfaces", "dummy"]}' -F key=qwerty http://127.0.0.1:8080/retrieve
  59. # {"success": true, "data": " /* So very dummy */\n dummy dum0 {\n address 192.168.168.1/32\n address 192.168.168.2/32\n /* That is a description */\n description \"Test interface\"\n }\n dummy dum1 {\n address 203.0.113.76/32\n address 203.0.113.79/32\n }\n", "error": null}
  60. resp = requests.post(SERVER_URL_RETRIE, verify=False, data=post)
  61. print(resp.status_code)
  62. pprint.pprint(resp)
  63. pprint.pprint(resp.json())
  64. if resp.status_code != 200:
  65. # This means something went wrong.
  66. #raise ApiError('POST /tasks/ {}'.format(resp.status_code))
  67. return "erro"
  68. #for todo_item in resp.json():
  69. #print('{} {}'.format(todo_item['id'], todo_item['summary']))
  70. result1 = resp.json()
  71. print(result1['data'])
  72. #result2 = json.loads(result1['data'])
  73. pprint.pprint(result1)
  74. return result1['data']