<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Python XML API Create policy issue in Automation/API Discussions</title>
    <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298472#M2081</link>
    <description>&lt;P&gt;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/46544"&gt;@gfreeman&lt;/a&gt;&amp;nbsp;many thanks !!&lt;/P&gt;</description>
    <pubDate>Thu, 14 Nov 2019 08:27:54 GMT</pubDate>
    <dc:creator>xxddpac</dc:creator>
    <dc:date>2019-11-14T08:27:54Z</dc:date>
    <item>
      <title>Python XML API Create policy issue</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/297860#M2076</link>
      <description>&lt;P&gt;My PA3020 version is&amp;nbsp;&lt;SPAN&gt;7.0.3, when i use python xml api create a policy return(&amp;lt;response status="error" code="5"&amp;gt;&amp;lt;msg&amp;gt;Could not copy parent object in set handler&amp;lt;/msg&amp;gt;&amp;lt;/response&amp;gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="clipboard_image_0.png" style="width: 400px;"&gt;&lt;img src="https://live.paloaltonetworks.com/t5/image/serverpage/image-id/22241iB0D74F1B8176DAC9/image-size/medium/is-moderation-mode/true?v=v2&amp;amp;px=400" role="button" title="clipboard_image_0.png" alt="clipboard_image_0.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;can someone help me?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I know version 9.0 can use json api,but now can not upgraud..lol..&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Python code below:&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;requests&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;urllib3&lt;BR /&gt;&lt;SPAN&gt;try&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;import &lt;/SPAN&gt;xml.etree.cElementTree &lt;SPAN&gt;as &lt;/SPAN&gt;ET&lt;BR /&gt;&lt;SPAN&gt;except &lt;/SPAN&gt;&lt;SPAN&gt;ImportError&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;import &lt;/SPAN&gt;xml.etree.ElementTree &lt;SPAN&gt;as &lt;/SPAN&gt;ET&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;BR /&gt;class &lt;/SPAN&gt;&lt;SPAN&gt;Paloalto&lt;/SPAN&gt;(&lt;SPAN&gt;object&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;   &lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;__init__&lt;/SPAN&gt;(&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;host&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;self&lt;/SPAN&gt;.host &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;host&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;self&lt;/SPAN&gt;.__username &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'api'&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;self&lt;/SPAN&gt;.__password &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'python'&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;self&lt;/SPAN&gt;.verify &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;False&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;self&lt;/SPAN&gt;.url &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'https://{}/api'&lt;/SPAN&gt;.format(&lt;SPAN&gt;self&lt;/SPAN&gt;.host)&lt;BR /&gt;&lt;SPAN&gt;      self&lt;/SPAN&gt;.key &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.apikey()&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;apikey(&lt;SPAN&gt;self&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    params &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;SPAN&gt;'type'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;'keygen'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;'user:'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.__username&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;'password'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.__password}&lt;BR /&gt;    r &lt;SPAN&gt;= &lt;/SPAN&gt;requests.get(&lt;SPAN&gt;url&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.url&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;params&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;params&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;verify&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.verify)&lt;BR /&gt;    res &lt;SPAN&gt;= &lt;/SPAN&gt;ET.fromstring(r.text)&lt;BR /&gt;    &lt;SPAN&gt;if &lt;/SPAN&gt;res.attrib[&lt;SPAN&gt;'status'&lt;/SPAN&gt;] &lt;SPAN&gt;!= &lt;/SPAN&gt;&lt;SPAN&gt;'success'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;'Generate API key failed for host {}.&lt;/SPAN&gt;&lt;SPAN&gt;\n&lt;/SPAN&gt;&lt;SPAN&gt;Please check user/passwd/etc.'&lt;/SPAN&gt;.format(&lt;SPAN&gt;self&lt;/SPAN&gt;.host))&lt;BR /&gt;        &lt;SPAN&gt;return&lt;BR /&gt;&lt;/SPAN&gt;    key &lt;SPAN&gt;= &lt;/SPAN&gt;[i.text &lt;SPAN&gt;for &lt;/SPAN&gt;i &lt;SPAN&gt;in &lt;/SPAN&gt;res.iter(&lt;SPAN&gt;'key'&lt;/SPAN&gt;)][&lt;SPAN&gt;0&lt;/SPAN&gt;]&lt;BR /&gt;    &lt;SPAN&gt;return &lt;/SPAN&gt;key&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;property&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;config(&lt;SPAN&gt;self&lt;/SPAN&gt;)&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    xpathvalue &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'/config/devices/entry[@name="localhost.localdomain"]/vsys/entry[@name="vsys1"]/rulebase/security/rules/entry[@name="python"]'&lt;BR /&gt;&lt;/SPAN&gt;    elementvalue &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'&amp;lt;from&amp;gt;&amp;lt;member&amp;gt;trust&amp;lt;/member&amp;gt;&amp;lt;/from&amp;gt;' &lt;/SPAN&gt;\&lt;BR /&gt;                    &lt;SPAN&gt;'&amp;lt;to&amp;gt;&amp;lt;member&amp;gt;untrust&amp;lt;/member&amp;gt;&amp;lt;/to&amp;gt;' &lt;/SPAN&gt;\&lt;BR /&gt;                   &lt;SPAN&gt;'&amp;lt;destination&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/destination&amp;gt;' &lt;/SPAN&gt;\&lt;BR /&gt;                    &lt;SPAN&gt;'&amp;lt;application&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/application&amp;gt;' &lt;/SPAN&gt;\&lt;BR /&gt;                    &lt;SPAN&gt;'&amp;lt;service&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/service&amp;gt;' &lt;/SPAN&gt;\&lt;BR /&gt;                    &lt;SPAN&gt;'&amp;lt;source&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/source&amp;gt;' &lt;/SPAN&gt;\&lt;BR /&gt;                   &lt;SPAN&gt;'&amp;lt;action&amp;gt;allow&amp;lt;/action&amp;gt;'&lt;BR /&gt;&lt;/SPAN&gt;    params &lt;SPAN&gt;= &lt;/SPAN&gt;{&lt;SPAN&gt;'type'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;'config'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;'action'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;'set'&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;'key'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.key&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;              &lt;SPAN&gt;'xpath'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;xpathvalue&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;'element'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;elementvalue}&lt;BR /&gt;    r &lt;SPAN&gt;= &lt;/SPAN&gt;requests.post(&lt;SPAN&gt;url&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;params&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;params&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;verify&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;.verify)&lt;BR /&gt;    return r.text&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ &lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;'__main__'&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;BR /&gt;&lt;/SPAN&gt;    host &lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;'172.19.1.23'&lt;BR /&gt;&lt;/SPAN&gt;    pa &lt;SPAN&gt;= &lt;/SPAN&gt;Paloalto(host)&lt;BR /&gt;    &lt;SPAN&gt;print&lt;/SPAN&gt;(pa.config)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Nov 2019 09:39:46 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/297860#M2076</guid>
      <dc:creator>xxddpac</dc:creator>
      <dc:date>2019-11-12T09:39:46Z</dc:date>
    </item>
    <item>
      <title>Re: Python XML API Create policy issue</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298008#M2077</link>
      <description>&lt;P&gt;I would recommend using &lt;A href="https://github.com/PaloAltoNetworks/pandevice" target="_self"&gt;pandevice&lt;/A&gt; if you're looking to do automation with PAN-OS in python.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But to answer the question, your XML is improper, there's no opening and closing tag surrounding the element you're passing in.&amp;nbsp; If you surround what you currently have in &lt;CODE&gt;&amp;lt;entry name="python"&amp;gt;&lt;/CODE&gt; / &lt;CODE&gt;&amp;lt;/entry&amp;gt;&lt;/CODE&gt;, it should get you around the error code you're getting now.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also, if you're doing a &lt;CODE&gt;set&lt;/CODE&gt;, I think your XPATH should not have the '/entry[@name="python"]' part, that should only be there if you're doing an &lt;CODE&gt;edit&lt;/CODE&gt;.&amp;nbsp; It's stuff like this that pandevice helps out with.&lt;/P&gt;</description>
      <pubDate>Tue, 12 Nov 2019 17:31:10 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298008#M2077</guid>
      <dc:creator>gfreeman</dc:creator>
      <dc:date>2019-11-12T17:31:10Z</dc:date>
    </item>
    <item>
      <title>Re: Python XML API Create policy issue</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298156#M2078</link>
      <description>&lt;P&gt;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/46544"&gt;@gfreeman&lt;/a&gt;&amp;nbsp;Thanks for you reply.&lt;/P&gt;&lt;P&gt;Maybe some problems in my xml body, so can you show a example policy xml body.&lt;/P&gt;&lt;P&gt;I will test Pandevice module, I think XML rest api speed is better pandevice.&lt;/P&gt;&lt;P&gt;Many thanks&lt;/P&gt;</description>
      <pubDate>Wed, 13 Nov 2019 02:12:10 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298156#M2078</guid>
      <dc:creator>xxddpac</dc:creator>
      <dc:date>2019-11-13T02:12:10Z</dc:date>
    </item>
    <item>
      <title>Re: Python XML API Create policy issue</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298267#M2079</link>
      <description>&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&amp;lt;entry name="deny all and log"&amp;gt;&amp;lt;from&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/from&amp;gt;&amp;lt;to&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/to&amp;gt;&amp;lt;source&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/source&amp;gt;&amp;lt;source-user&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/source-user&amp;gt;&amp;lt;hip-profiles&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/hip-profiles&amp;gt;&amp;lt;destination&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/destination&amp;gt;&amp;lt;application&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/application&amp;gt;&amp;lt;service&amp;gt;&amp;lt;member&amp;gt;application-default&amp;lt;/member&amp;gt;&amp;lt;/service&amp;gt;&amp;lt;category&amp;gt;&amp;lt;member&amp;gt;any&amp;lt;/member&amp;gt;&amp;lt;/category&amp;gt;&amp;lt;action&amp;gt;deny&amp;lt;/action&amp;gt;&amp;lt;/entry&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;Just as an FYI, you can always see what XML the PAN-OS is creating using any of the following methods:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&lt;SPAN class="s1"&gt;&lt;A href="https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api/get-started-with-the-pan-os-xml-api/explore-the-api.html" target="_blank"&gt;https://docs.paloaltonetworks.com/pan-os/9-0/pan-os-panorama-api/get-started-with-the-pan-os-xml-api/explore-the-api.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Nov 2019 15:03:13 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298267#M2079</guid>
      <dc:creator>gfreeman</dc:creator>
      <dc:date>2019-11-13T15:03:13Z</dc:date>
    </item>
    <item>
      <title>Re: Python XML API Create policy issue</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298472#M2081</link>
      <description>&lt;P&gt;&lt;a href="https://live.paloaltonetworks.com/t5/user/viewprofilepage/user-id/46544"&gt;@gfreeman&lt;/a&gt;&amp;nbsp;many thanks !!&lt;/P&gt;</description>
      <pubDate>Thu, 14 Nov 2019 08:27:54 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/python-xml-api-create-policy-issue/m-p/298472#M2081</guid>
      <dc:creator>xxddpac</dc:creator>
      <dc:date>2019-11-14T08:27:54Z</dc:date>
    </item>
  </channel>
</rss>

