<?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: How to handle file generate fw.op in python in Automation/API Discussions</title>
    <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312011#M2178</link>
    <description>&lt;P&gt;I would skip the file part of this.&amp;nbsp; If your true goal is just to see the states of things, I would take advantage of the fact that &lt;CODE&gt;fw.op()&lt;/CODE&gt; returns an &lt;CODE&gt;xml.etree.ElementTree&lt;/CODE&gt; object and use the python functions available to iterate over the results:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;result = fw.op('show vpn flow')
for entry in result.findall('./result/IPSec/entry'):
    name = entry.find('./name')
    state = entry.find('./state')
    if name is None or state is None:
        # This should never happen, but just to code defensively...
        continue
    print('{0} has state {1}'.format(name.text, state.text))
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 19 Feb 2020 17:58:34 GMT</pubDate>
    <dc:creator>gfreeman</dc:creator>
    <dc:date>2020-02-19T17:58:34Z</dc:date>
    <item>
      <title>How to handle file generate fw.op in python</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312000#M2177</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have the following code to check the vpn status, this code execute op "show vpn flow'&lt;/P&gt;&lt;P&gt;I'm ussing pandevice library in my imports&lt;/P&gt;&lt;PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;check_vpn_status(fw): &lt;SPAN&gt;#check vpn status&lt;BR /&gt;&lt;/SPAN&gt;    vpn_ike = fw.op(cmd= &lt;SPAN&gt;"show vpn flow"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;xml=&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;BR /&gt;    &lt;SPAN&gt;with &lt;/SPAN&gt;open(&lt;SPAN&gt;'vpn_status.xml'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;'wb'&lt;/SPAN&gt;) &lt;SPAN&gt;as &lt;/SPAN&gt;file:&lt;BR /&gt;        file.write(vpn_ike)&lt;BR /&gt;        print(type(vpn_ike))&lt;/PRE&gt;&lt;P&gt;.&amp;nbsp; and generate an xml file like this.&amp;nbsp; Exist one method how to read the file to search into file the ie state and show in the print the following tunnels are up ?. I'm stuck how to manipulate that file generated by fw.op&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;&amp;lt;response &lt;/SPAN&gt;&lt;SPAN&gt;status&lt;/SPAN&gt;&lt;SPAN&gt;="success"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&amp;lt;result&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;total&amp;gt;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;lt;/total&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;num_ipsec&amp;gt;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;lt;/num_ipsec&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;IPSec&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    &amp;lt;entry&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;peerip&amp;gt;&lt;/SPAN&gt;12.12.12.12&lt;SPAN&gt;&amp;lt;/peerip&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;name&amp;gt;&lt;/SPAN&gt;Bluecoat_IPSEC:ID-1&lt;SPAN&gt;&amp;lt;/name&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;outer-if&amp;gt;&lt;/SPAN&gt;ethernet1/1&lt;SPAN&gt;&amp;lt;/outer-if&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;gwid&amp;gt;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;lt;/gwid&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;localip&amp;gt;&lt;/SPAN&gt;172.16.10.1&lt;SPAN&gt;&amp;lt;/localip&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;state&amp;gt;&lt;/SPAN&gt;init&lt;SPAN&gt;&amp;lt;/state&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;inner-if&amp;gt;&lt;/SPAN&gt;tunnel.10&lt;SPAN&gt;&amp;lt;/inner-if&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;mon&amp;gt;&lt;/SPAN&gt;off&lt;SPAN&gt;&amp;lt;/mon&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;owner&amp;gt;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;lt;/owner&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;      &amp;lt;id&amp;gt;&lt;/SPAN&gt;1&lt;SPAN&gt;&amp;lt;/id&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    &amp;lt;/entry&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;/IPSec&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;dp&amp;gt;&lt;/SPAN&gt;dp0&lt;SPAN&gt;&amp;lt;/dp&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;num_sslvpn&amp;gt;&lt;/SPAN&gt;0&lt;SPAN&gt;&amp;lt;/num_sslvpn&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/result&amp;gt;&amp;lt;/response&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Any advise I really appreciate.&lt;/P&gt;&lt;P&gt;best Regards&lt;/P&gt;&lt;P&gt;Andres&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2020 17:42:46 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312000#M2177</guid>
      <dc:creator>mss.support</dc:creator>
      <dc:date>2020-02-19T17:42:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle file generate fw.op in python</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312011#M2178</link>
      <description>&lt;P&gt;I would skip the file part of this.&amp;nbsp; If your true goal is just to see the states of things, I would take advantage of the fact that &lt;CODE&gt;fw.op()&lt;/CODE&gt; returns an &lt;CODE&gt;xml.etree.ElementTree&lt;/CODE&gt; object and use the python functions available to iterate over the results:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;result = fw.op('show vpn flow')
for entry in result.findall('./result/IPSec/entry'):
    name = entry.find('./name')
    state = entry.find('./state')
    if name is None or state is None:
        # This should never happen, but just to code defensively...
        continue
    print('{0} has state {1}'.format(name.text, state.text))
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2020 17:58:34 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312011#M2178</guid>
      <dc:creator>gfreeman</dc:creator>
      <dc:date>2020-02-19T17:58:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to handle file generate fw.op in python</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312019#M2179</link>
      <description>&lt;P&gt;Thanks a lot !!!!!!!!! you rocks!!!&lt;/P&gt;</description>
      <pubDate>Wed, 19 Feb 2020 18:24:52 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/how-to-handle-file-generate-fw-op-in-python/m-p/312019#M2179</guid>
      <dc:creator>mss.support</dc:creator>
      <dc:date>2020-02-19T18:24:52Z</dc:date>
    </item>
  </channel>
</rss>

