34 lines
No EOL
1.1 KiB
Python
34 lines
No EOL
1.1 KiB
Python
#!/usr/bin/python
|
|
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import common
|
|
import autotest_lib.server.frontend as frontend
|
|
from autotest_lib.frontend.afe import site_rpc_interface
|
|
from autotest_lib.frontend.afe import rpc_interface
|
|
|
|
class directAFE(frontend.AFE):
|
|
"""
|
|
A wrapper for frontend.AFE which exposes all of the AFE
|
|
functionality, but makes direct calls to site_rpc_interface and
|
|
rpc_interface rather than making RPC calls to an RPC server.
|
|
"""
|
|
def run(self, call, **dargs):
|
|
func = None
|
|
|
|
try:
|
|
func = rpc_interface.__getattribute__(call)
|
|
except AttributeError:
|
|
pass
|
|
|
|
try:
|
|
func = site_rpc_interface.__getattribute__(call)
|
|
except AttributeError:
|
|
pass
|
|
|
|
if not func:
|
|
raise AttributeError('No function named %s in either '
|
|
'rpc_interface or site_rpc_interface' % call)
|
|
|
|
return func(**dargs) |