| showard | 9484c31 | 2009-01-07 21:07:28 +0000 | [diff] [blame] | 1 | #!/usr/bin/python |
| 2 | |
| 3 | import cgi, urllib2 |
| showard | ef6fe02 | 2009-03-27 20:55:16 +0000 | [diff] [blame] | 4 | import common |
| 5 | from autotest_lib.frontend.afe.json_rpc import serviceHandler |
| showard | 9484c31 | 2009-01-07 21:07:28 +0000 | [diff] [blame] | 6 | |
| 7 | script = """\ |
| 8 | Content-Type: text/javascript |
| 9 | |
| 10 | %(callback)s(%(result)s); |
| 11 | """ |
| 12 | |
| showard | ef6fe02 | 2009-03-27 20:55:16 +0000 | [diff] [blame] | 13 | class LogFileNotFound(Exception): |
| 14 | pass |
| 15 | |
| 16 | form = cgi.FieldStorage(keep_blank_values=True) |
| 17 | encoded_request = form['request'].value |
| showard | 9484c31 | 2009-01-07 21:07:28 +0000 | [diff] [blame] | 18 | callback = form['callback'].value |
| 19 | |
| showard | ef6fe02 | 2009-03-27 20:55:16 +0000 | [diff] [blame] | 20 | request = serviceHandler.ServiceHandler.translateRequest(encoded_request) |
| 21 | parameters = request['params'][0] |
| 22 | path = parameters['path'] |
| 23 | |
| 24 | result, error = None, None |
| showard | 9484c31 | 2009-01-07 21:07:28 +0000 | [diff] [blame] | 25 | try: |
| 26 | file_contents = urllib2.urlopen('http://localhost' + path).read() |
| showard | ef6fe02 | 2009-03-27 20:55:16 +0000 | [diff] [blame] | 27 | result = file_contents |
| showard | 9484c31 | 2009-01-07 21:07:28 +0000 | [diff] [blame] | 28 | except urllib2.HTTPError: |
| showard | ef6fe02 | 2009-03-27 20:55:16 +0000 | [diff] [blame] | 29 | error = LogFileNotFound('%s not found' % path) |
| showard | 9484c31 | 2009-01-07 21:07:28 +0000 | [diff] [blame] | 30 | |
| showard | ef6fe02 | 2009-03-27 20:55:16 +0000 | [diff] [blame] | 31 | encoded_result = serviceHandler.ServiceHandler.translateResult(result, error, |
| 32 | None, None) |
| 33 | print script % dict(callback=callback, result=encoded_result) |