How can I add an additional URL to an existing Custom URL Category using XML-API. I have been trying variations of the following command:
When I enter this command it returns this error:
<![CDATA[ unexpected here ]]>
Does anyone know how I can make this work. Thank you.
I was able to successfully make this work using the following URL (specific to my site...please excuse the personalized / non obfuscated naming)
I got some info about cli debug from the following thread that was very helpful
basically, the <list></list> tags seemed to be interfering with the /list in the URI (I think...)
I'm not sure if this would be a supported method, however it did work
See the below. The key is use -d for the key= so it is not URL-encoded and --data-urlencode for other parameters.
panxapi from PAN-perl will handle this for you and is a more friendly way to do configuration management using the API without knowing all the API details.
$ cat element.xml
$ ELEMENT=`cat element.xml`
$ curl -k https://172.29.9.253/api/ -d "type=config&action=set&key=$KEY" \
> --data-urlencode "xpath=$XPATH" --data-urlencode "element=$ELEMENT"
<response status="success" code="20"><msg>command succeeded</msg></response>
Awesome - thank you!
after successful tests there I came up with a template for doing it in python (my preferred language). Here's an example of that, this function creates a custom url category and returns the response given by the web server - in case anyone is interested in that.
For debugging / testing it also prints out the URL that would have been passed to the API
import urllib, urllib2
#cat_desc is a description of the url category
#cat_name is the name of the custom url category
def create_url_cat(self, cat_name, cat_desc, action='set'):
self.parameters = dict()
self.parameters['key'] = 'Y/Xt9o0IK8ISYNnzTF4oJ8SpTis7cYMKb2NiNniMuPUPutJN4CuDASu5ni79twT6'
self.parameters['type'] = 'config'
self.parameters['action'] = 'set'
self.url = 'https://panorama/api/?'
self.parameters['action'] = action
self.parameters['xpath'] = '/config/shared/profiles/custom-url-category/entry[@name=\''+ cat_name + '\']'
self.parameters['element'] = '<description>' + cat_desc + '</description>'
params = urllib.urlencode(self.parameters)
response = urllib2.urlopen(self.url, params)
print self.url + str(params)
Click Accept as Solution to acknowledge that the answer to your question has been provided.
The button appears next to the replies on topics you’ve started. The member who gave the solution and all future visitors to this topic will appreciate it!
These simple actions take just seconds of your time, but go a long way in showing appreciation for community members and the LIVEcommunity as a whole!
The LIVEcommunity thanks you for your participation!