Advertisement
Guest User

Untitled

a guest
Mar 12th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. import sys, urllib2, urllib
  2. # from xml.etree.cElementTree import tostring, ElementTree, fromstring
  3. from xml.etree import ElementTree as etree
  4. # from xml.etree import ElementTree
  5.  
  6.  
  7. def updateFirewall(url):
  8. # Getting the username and password from the user
  9. username = sys.argv[1]
  10. password = sys.argv[2]
  11.  
  12. # Auth and getting key
  13. values = {"type":"keygen", "user":username, "password":password}
  14.  
  15. data = urllib.urlencode(values)
  16. req = urllib2.Request(url, data)
  17. response = urllib2.urlopen(req)
  18. response_body = response.read()
  19.  
  20. keyTree = etree.fromstring(response_body)
  21. key = keyTree.find("key").text
  22.  
  23. # reading the new policy file for appropriate code
  24. tree = etree.parse("policy.xml")
  25.  
  26. services = tree.findall(".//devices/entry/vsys/entry/service")
  27. if len(services) > 0:
  28. servicesStr = etree.tostring(services[0], method="xml")
  29. else:
  30. servicesStr = ""
  31. security_rules = tree.find(".//devices/entry/vsys/entry/rulebase/security")
  32. if len(security_rules) > 0:
  33. security_rulesStr = etree.tostring(security_rules[0], method="xml")
  34. else:
  35. security_rulesStr = ""
  36. default_security_rules = tree.find(".//devices/entry/vsys/entry/rulebase/default-security-rules")
  37. if len(default_security_rules) > 0:
  38. default_security_rulesStr = etree.tostring(default_security_rules[0], method="xml")
  39. else:
  40. default_security_rulesStr = ""
  41.  
  42. # adding services
  43. values1 = {"type":"config", "key":key, "action":"edit", "xpath":"/config/devices/entry/vsys/entry/service", "element":servicesStr}
  44. data1 = urllib.urlencode(values1)
  45. serviceResponse = urllib2.Request(url, data1)
  46.  
  47. # adding the security rules
  48. values2 = {"type":"config", "key":key, "action":"edit", "xpath":"/config/devices/entry/vsys/entry/rulebase/security", "element":security_rulesStr}
  49. data2 = urllib.urlencode(values2)
  50. secRulesResonse = urllib2.Request(url, data2)
  51.  
  52. # adding the default security rules
  53. values3 = {"type":"config", "key":key, "action":"edit", "xpath":"/config/devices/entry/vsys/entry/rulebase/default-security-rules", "element":default_security_rulesStr}
  54. data3 = urllib.urlencode(values3)
  55. secRulesResonse = urllib2.Request(url, data3)
  56.  
  57.  
  58. url = "https://192.168.10.1/api/"
  59. updateFirewall(url)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement