I have controller in web2py as below

# coding: utf8
# try something like
#!/usr/local/python2.7
def index():
    import pexpect
    import sys
    import time
    import cgi, cgitb
    import getpass
    import urllib3
    import elementtree.ElementTree as ET
    
    ssh_cmd = 'ssh -t'
    username = 'admin'
    ip_addr = '192.***.***.***'
    login = 'logging root'
    password = 'password'
    command = ssh_cmd+" "+username+"@"+ip_addr+" "+login
    try:
        child = pexpect.spawn(command)
        child.expect('(?i)password')
        child.sendline('admin')
        child.expect('(?i)Password:')
        child.sendline('abghtnnppst')
        child.expect('-bash# ')
        child.sendline('cd /root/siby')
        child.expect('-bash# ')
        child.sendline('perl analyzer_main.pl -s -i all')
        child.expect('-bash# ')
    except Exception, e:
            print e
    print child.before
    lines = child.before
    results = ET.Element("results")

    for line in lines.split("\n"):
        if 'MAC' in line:
            station = ET.SubElement(results,"machine")
            stnmac = ET.SubElement(machine,"mac")
            stnip = ET.SubElement(machine,"ip")
            apidname = ET.SubElement(machine,"name")
            totalxput = ET.SubElement(machine,"input")
            retry = ET.SubElement(machine, "retry")
            
        if 'MAC' in line:
            mac = line.split(":", 1)
            mac.text = str(mac[1].strip())
        if 'IP' in line:
            ip = line.split(":")
            ip.text = str(ip[1].strip())
        if 'NAME' in line:
            name = line.split(":")
            name.text = str(name[1].strip())
        if 'input' in line:
            input = line.split(":")
            input.text = str(input[1].strip())
        if 'Retry' in line:
            ret = line.split(":")
            retry.text = str(ret[1].strip())
            tree = ET.ElementTree(results)
    tree.write('station.xml')
    sys.stdout.flush()
    if child.isalive():
        child.sendline('exit') # Try to ask ftp child to exit.
        child.close()
    if child.isalive():
        print('Child did not exit gracefully.')
    else:
        print('Child exited gracefully.')
    xmlstr = ET.tostring(tree,encoding=None)
    return dict(xmlstr)


In View I have the following code

{{extend 'layout.html'}}
<h1>This is the remotectrl/index.html template</h1>
<body>
    {{=XML(xmlstr)}}
</body>
{{=BEAUTIFY(response._vars)}}

I want to print the XML data in webpage index.html
But it is giving me exception 

8.
9.
10.
11.
12.
13.
14.


Traceback (most recent call last):
  File "/root/python2.7/Python-2.7.6/web2py/gluon/restricted.py", line 220, 
in restricted
    exec ccode in environment
  File 
"/root/python2.7/Python-2.7.6/web2py/applications/get_station/controllers/remotectrl.py",
 
line 88, in <module>
  File "/root/python2.7/Python-2.7.6/web2py/gluon/globals.py", line 385, in 
<lambda>
    self._caller = lambda f: f()
  File 
"/root/python2.7/Python-2.7.6/web2py/applications/get_station/controllers/remotectrl.py",
 
line 85, in index
    xmlstr = ET.tostring(tree,encoding=None)
  File "build/bdist.linux-i686/egg/elementtree/ElementTree.py", line 1056, 
in tostring
    ElementTree(element).write(file, encoding)
  File "build/bdist.linux-i686/egg/elementtree/ElementTree.py", line 584, 
in __init__
    assert element is None or iselement(element)
AssertionError

Error snapshot help

<type 'exceptions.AssertionError'>() 

Not sure what is the issue here, why is it not printing XML data in to 
index.html ?

Thanks for help

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to