· 5 years ago · May 25, 2020, 12:38 PM
1import csv
2import warnings
3import contextlib
4import json
5import pprint
6
7import requests
8from urllib3.exceptions import InsecureRequestWarning
9
10
11
12
13
14## Palo Alto Device Global Variables - These are specific to the device and API key required, modify specifc variables in the object variable groups areas further
15## down in the respective areas.
16pan_device = ''
17pan_key = ''
18pan_location = '&location=vsys&vsys=vsys1'
19pan_inputformat = '&input-format=json'
20pan_objname = '&name='
21
22
23## 2.0 Address Object Importer
24
25## API Specific Variable
26pan_api_objgrp_addrobj = '/restapi/9.0/Objects/Addresses?'
27csv_addrobj = '/media/daniel/data/nextcloud/GIT/neverland-infrastructure/python/dev-panos/nvfw1_addrobj3.csv'
28dict_addrobj = csv.DictReader(open(csv_addrobj))
29
30
31# Address Object Import Loop
32
33for row in dict_addrobj:
34 addrobj_payload_ip = str(row["Address"])
35 addrobj_payload_name = str(row["Name"])
36 addrobj_payload_desc = str(row["Description"])
37 addrobj_payload_tags = row["Tags"].split(";")
38 print("Object Name:",addrobj_payload_name,"| IP: ", addrobj_payload_ip, "| Description: ", addrobj_payload_desc)
39 payload = {
40 "entry": {
41 "@name": addrobj_payload_name,
42 "description": addrobj_payload_desc,
43 "ip-netmask": addrobj_payload_ip,
44 "tag": {
45 "member":
46 addrobj_payload_tags2
47 }
48 }
49 }
50 headers = {
51 'Content-Type': 'text/plain',
52 'Cookie': 'PHPSESSID=43e3b130c821a504cfc918d4f3f9b104'
53 }
54 url = pan_device + pan_api_objgrp_addrobj + pan_key + pan_location + pan_objname + addrobj_payload_name + pan_inputformat
55 print(url)
56 print("")
57 #print(addrobj_payload_tags2)
58 response = requests.request("POST", url, headers=headers, data = json.dumps(payload), verify = False)
59 print(response.text.encode('utf8'))