- Access exclusive content
- Connect with peers
- Share your expertise
- Find support resources
04-25-2019 02:08 PM
I am trying to create a new address group using API but I always end up getting
<response status="error" code="12">
</response>
Can someone help me with the correct xpath to create a new shared address group empty or with a list of address objects.
04-25-2019 02:20 PM - edited 04-25-2019 02:24 PM
If you're using PAN-OS 9.0, I recommend the new REST API. You don't need XPaths to create Address Groups with the new REST API:
https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api.html#
If you're using python, you might consider leveraging the Device Framework library. Here's an example of how to create an Address Object.
https://pandevice.readthedocs.io/en/latest/usage.html#configuration
Address Groups are very similar:
https://pandevice.readthedocs.io/en/latest/module-objects.html#pandevice.objects.AddressGroup
If you're using GoLang, we also have the PanGo library:
https://github.com/PaloAltoNetworks/pango
If you're not using Python or Go, you can check out this XML API tutorial lab:
http://api-lab.paloaltonetworks.com/set-edit-object.html
It uses pan-python library, but you don't need python code to use it. There are several examples of creating Address Objects and Address Groups with XPaths and XML.
Hope that helps!
-Brian
04-25-2019 02:38 PM
Hey Brian,
Thanks for the reply. I have been trying to use https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api.html#.
I am using JAVA to create address Groups and rules. And this doesnt work -
https://<firewall>/api/?key=apikey&type=config&action=set&key=keyvalue&xpath=xpath-value&element=element-value
where the xpath-value is:
/config/devices/entry/vsys/entry/rulebase/security/rules/entry[@name='rule1']
I am able create address objects using xpath = /config/shared/address/entry[@name='hostname'] and body/ element as element=<ip-netmask>"+ip+"</ip-netmask>.
But a similar one above doesnt work for address groups.
Also in
/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/address-group
what is supposed to be the devices entry name and vsys entry name?
04-25-2019 02:40 PM - edited 04-25-2019 02:40 PM
I keep getting
<response status="error" code="13">
<msg>
<line>Could not find schema node for xpath /config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='device-group-name']/address-group</line>
</msg>
</response>
05-01-2019 08:02 PM
Hi,
see tool I've shared which can do this for you.
Cheers,
Simon
05-07-2019 12:44 AM
Do the operation in CLI first with the "debug cli on" command activated. This will give you the precise path you need for the API call.
10-26-2019 01:34 PM
There are two types of address groups in the Palo Alto Networks firewalls; dynamic and static. By default, the firewall creates a static address group if you do not explicitly select dynamic. Therefore, you need to add the static element at the time of address group creation. The example below shows an example of creating an address-group named "test-address-group"
[https://<firewall-ip>/api/?type=config&action=set&xpath=/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/address-group/entry[@name='test-address-group']&element=<static />&key=<yourfirewall-ip-key>]
Hope this explains the mystery.
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!