<?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: pyats - store stdout from configure in Code Exchange</title>
    <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156863#M125</link>
    <description>&lt;P&gt;No problem, sort of guessing here now. But try and add the dialog&amp;nbsp;&lt;SPAN&gt;attribute this might contains the entire conversation&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;output = self.device.configure(config_commands)&lt;BR /&gt;dialog = output.dialog&lt;BR /&gt;console_output += dialog&lt;/P&gt;
&lt;P&gt;only other way I can think is&amp;nbsp;&lt;SPAN&gt;enable the capture buffer on the device be something like:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;self.device.cli_handler.capture_buffer_enable()&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 07 Aug 2024 06:55:57 GMT</pubDate>
    <dc:creator>bigevilbeard</dc:creator>
    <dc:date>2024-08-07T06:55:57Z</dc:date>
    <item>
      <title>pyats - store stdout from configure</title>
      <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156557#M122</link>
      <description>&lt;P&gt;Hi All&lt;/P&gt;
&lt;P&gt;I have following test created to run multiple commands against a a device within testbed. I would like to log the output to a variable (including the switch/router prompt) and print out as result. I know this functionality is already in the "pyats logs view" however I would like to store this in a global variable to be used later.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Code Snippet&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;class&lt;/SPAN&gt; &lt;SPAN&gt;Apply_Config&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;aetest&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Testcase):&lt;/SPAN&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;"""Apply Config Checks"""&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;aetest&lt;/SPAN&gt;&lt;SPAN&gt;.test&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;def&lt;/SPAN&gt; &lt;SPAN&gt;setup&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;testbed&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;device_name)&lt;/SPAN&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;""" Testcase Setup section """&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;# connect to device&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;device&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;testbed&lt;/SPAN&gt;&lt;SPAN&gt;.devices[&lt;/SPAN&gt;&lt;SPAN&gt;device_name&lt;/SPAN&gt;&lt;SPAN&gt;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;aetest&lt;/SPAN&gt;&lt;SPAN&gt;.test&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;def&lt;/SPAN&gt; &lt;SPAN&gt;apply_config_multi&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self):&lt;/SPAN&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;config_commands&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;'''&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; interface lo1000&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ip address 1.1.1.1 255.255.255.255&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; description pyats_configured&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; no shutdown&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; do wr mem&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; '''&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;common_setup&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;console_output&lt;/SPAN&gt;&lt;SPAN&gt; += &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;device&lt;/SPAN&gt;&lt;SPAN&gt;.configure(&lt;/SPAN&gt;&lt;SPAN&gt;config_commands&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;I have created "&lt;STRONG&gt;console_output&lt;/STRONG&gt;" as global variable (string formatted) and print the output in cleanup class.&lt;/P&gt;
&lt;P&gt;How do I capture the below output into variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;2024&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;7&lt;/SPAN&gt; &lt;SPAN&gt;00&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;53&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;346&lt;/SPAN&gt;&lt;SPAN&gt;: %UNICON-INFO: &lt;/SPAN&gt;&lt;SPAN&gt;++&lt;/SPAN&gt;&lt;SPAN&gt;+ SW1 &lt;/SPAN&gt;&lt;SPAN&gt;with&lt;/SPAN&gt;&lt;SPAN&gt; via &lt;/SPAN&gt;&lt;SPAN&gt;'cli'&lt;/SPAN&gt;&lt;SPAN&gt;: configure &lt;/SPAN&gt;&lt;SPAN&gt;++&lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;config term&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Enter configuration commands, one per line.&amp;nbsp; End &lt;/SPAN&gt;&lt;SPAN&gt;with&lt;/SPAN&gt;&lt;SPAN&gt; CNTL/Z.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config)&lt;/SPAN&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config)&lt;/SPAN&gt;&lt;SPAN&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; interface lo1000&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ip address 1.1.1.1 255.255.255.255&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; description pyats_configured&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; no shutdown&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;#&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; do wr mem&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Building configuration...&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Compressed configuration &lt;/SPAN&gt;&lt;SPAN&gt;from&lt;/SPAN&gt; &lt;SPAN&gt;1396&lt;/SPAN&gt; &lt;SPAN&gt;bytes&lt;/SPAN&gt;&lt;SPAN&gt; to &lt;/SPAN&gt;&lt;SPAN&gt;925&lt;/SPAN&gt; &lt;SPAN&gt;bytes&lt;/SPAN&gt;&lt;SPAN&gt;[OK]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;# &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;#end&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;SW1&lt;/SPAN&gt;&lt;SPAN&gt;#&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Aug 2024 16:24:06 GMT</pubDate>
      <guid>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156557#M122</guid>
      <dc:creator>yazeed-fataar</dc:creator>
      <dc:date>2024-08-06T16:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: pyats - store stdout from configure</title>
      <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156636#M123</link>
      <description>&lt;P&gt;Not sure this will give you the 100% results you want, try the output attribute&amp;nbsp;&lt;/P&gt;
&lt;P&gt;output = self.device.configure(config_commands)&lt;BR /&gt;console_output += output&lt;/P&gt;</description>
      <pubDate>Tue, 06 Aug 2024 19:35:09 GMT</pubDate>
      <guid>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156636#M123</guid>
      <dc:creator>bigevilbeard</dc:creator>
      <dc:date>2024-08-06T19:35:09Z</dc:date>
    </item>
    <item>
      <title>Re: pyats - store stdout from configure</title>
      <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156748#M124</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/352839"&gt;@bigevilbeard&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you for your response. I tried that previously and it works however it ommits the switch/router prompt (eg&amp;nbsp;&lt;SPAN&gt;SW1(config-&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;SPAN&gt;# ) from the output. Any idea how to include this in the output?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;2024-08-07T11:45:55: %AETEST-INFO: +------------------------------------------------------------------------------+&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;2024-08-07T11:45:55: %AETEST-INFO: | Starting section apply_config_multi |&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;2024-08-07T11:45:55: %AETEST-INFO: +------------------------------------------------------------------------------+&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;interface lo1000&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;ip address 1.1.1.1 255.255.255.255&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;description pyats_configured&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;no shutdown&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;do wr mem&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;Building configuration...&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;Compressed configuration from 1295 bytes to 864 bytes[OK]&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2024 04:00:18 GMT</pubDate>
      <guid>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156748#M124</guid>
      <dc:creator>yazeed-fataar</dc:creator>
      <dc:date>2024-08-07T04:00:18Z</dc:date>
    </item>
    <item>
      <title>Re: pyats - store stdout from configure</title>
      <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156863#M125</link>
      <description>&lt;P&gt;No problem, sort of guessing here now. But try and add the dialog&amp;nbsp;&lt;SPAN&gt;attribute this might contains the entire conversation&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;output = self.device.configure(config_commands)&lt;BR /&gt;dialog = output.dialog&lt;BR /&gt;console_output += dialog&lt;/P&gt;
&lt;P&gt;only other way I can think is&amp;nbsp;&lt;SPAN&gt;enable the capture buffer on the device be something like:&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;self.device.cli_handler.capture_buffer_enable()&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2024 06:55:57 GMT</pubDate>
      <guid>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5156863#M125</guid>
      <dc:creator>bigevilbeard</dc:creator>
      <dc:date>2024-08-07T06:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: pyats - store stdout from configure</title>
      <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5157373#M126</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/352839"&gt;@bigevilbeard&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have updated and tried as you mentioned and recieved the below error. Obviously I am missing something fundamental in terms of python. Regarding the cli_handler method, can you guide me what would be required here? The desired output comes from UNICON-INFO , is there no easy way just to duplicate the output it is already outputing when it hits that method in my test?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;@&lt;/SPAN&gt;&lt;SPAN&gt;aetest&lt;/SPAN&gt;&lt;SPAN&gt;.test&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;def&lt;/SPAN&gt; &lt;SPAN&gt;apply_config_multi&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;config_commands&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;'''&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;interface lo1000&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;ip address 1.1.1.1 255.255.255.255&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;description pyats_configured&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;no shutdown&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;do wr mem&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt; '''&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;output&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;self&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;device&lt;/SPAN&gt;&lt;SPAN&gt;.configure(&lt;/SPAN&gt;&lt;SPAN&gt;config_commands&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;dialog&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;output&lt;/SPAN&gt;&lt;SPAN&gt;.dialog&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;common_setup&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;console_output&lt;/SPAN&gt;&lt;SPAN&gt; += &lt;/SPAN&gt;&lt;SPAN&gt;output&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-INFO: +------------------------------------------------------------------------------+&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-INFO: | &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;Starting section apply_config_multi&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;|&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-INFO: +------------------------------------------------------------------------------+&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08 03:17:52,662: %UNICON-INFO: +++ SW1 with via 'cli': configure +++&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;config term&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;Enter configuration commands, one per line.&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;End with CNTL/Z.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config)#&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config)#interface lo1000&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config-if)#ip address 1.1.1.1 255.255.255.255&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config-if)#description pyats_configured&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config-if)#no shutdown&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config-if)#do wr mem&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;Building configuration...&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;Compressed configuration from 1392 bytes to 928 bytes[OK]&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config-if)# &lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1(config-if)#end&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;SW1#&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-ERROR: &lt;/SPAN&gt;&lt;SPAN&gt;Caught an exception while executing section apply_config_multi:&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-ERROR: &lt;/SPAN&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-ERROR: &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &lt;/SPAN&gt;File "/root/pyats/Tests/config_check/apply_config.py", line 81, in apply_config_multi&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-ERROR: &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;dialog = output.dialog&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="2"&gt;&lt;SPAN&gt;2024-08-08T03:17:52: %AETEST-ERROR: &lt;/SPAN&gt;&lt;SPAN&gt;AttributeError: 'str' object has no attribute 'dialog'&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Aug 2024 19:22:14 GMT</pubDate>
      <guid>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5157373#M126</guid>
      <dc:creator>yazeed-fataar</dc:creator>
      <dc:date>2024-08-07T19:22:14Z</dc:date>
    </item>
    <item>
      <title>Re: pyats - store stdout from configure</title>
      <link>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5171260#M131</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/1764341"&gt;@yazeed-fataar&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;The error you're encountering is because self.device.configure(config_commands) returns a string (command output), not an object with a dialog attribute. This is why you're getting the 'str' object has no attribute 'dialog' error when you try to access output.dialog.&lt;/P&gt;
&lt;P&gt;To simply capture the output from the configure command, you don't need to access any dialog attribute. Instead, you can directly append the output to your console_output, e.g.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;@aetest.test
def apply_config_multi(self):
    config_commands = '''
    interface lo1000
    ip address 1.1.1.1 255.255.255.255
    description pyats_configured
    no shutdown
    do wr mem
    '''
    
    # Send the configuration commands to the device
    output = self.device.configure(config_commands)
    
    # Capture the output and add it to your console output
    common_setup.console_output += output

    # Optionally, print or log the output for debugging
    self.logger.info(output)

    # Optionally, include assertions to verify that the configuration was applied correctly
    assert "Building configuration..." in output, "Configuration was not saved successfully."
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Explanation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;self.device.configure(config_commands): This sends the configuration commands to the device and returns the output as a string.&lt;/LI&gt;
&lt;LI&gt;common_setup.console_output += output: This appends the command output to your console_output.&lt;/LI&gt;
&lt;LI&gt;self.logger.info(output): This logs the output for debugging purposes.&lt;/LI&gt;
&lt;LI&gt;assert "Building configuration..." in output: This is an optional assertion to check that the configuration was saved successfully.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Sep 2024 20:41:23 GMT</pubDate>
      <guid>https://community.cisco.com/t5/code-exchange/pyats-store-stdout-from-configure/m-p/5171260#M131</guid>
      <dc:creator>Alexander Stevenson</dc:creator>
      <dc:date>2024-09-04T20:41:23Z</dc:date>
    </item>
  </channel>
</rss>

