#!/usr/bin/python -u # 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. """Exposes the FAFTClient interface over XMLRPC. It launches a XMLRPC server and exposes the functions in RPCFunctions(). """ from datetime import datetime from optparse import OptionParser from SimpleXMLRPCServer import SimpleXMLRPCServer import common from autotest_lib.client.cros.faft.rpc_functions import RPCFunctions def main(): """The Main program, to run the XMLRPC server.""" parser = OptionParser(usage='Usage: %prog [options]') parser.add_option('--port', type='int', dest='port', default=9990, help='port number of XMLRPC server') (options, _) = parser.parse_args() print '[%s] XMLRPC Server: Spinning up FAFT server' % str(datetime.now()) # Launch the XMLRPC server to provide FAFTClient commands. server = SimpleXMLRPCServer(('localhost', options.port), allow_none=True, logRequests=True) server.register_introspection_functions() server.register_instance(RPCFunctions()) print '[%s] XMLRPC Server: Serving FAFT functions on port %s' % ( str(datetime.now()), options.port) server.serve_forever() if __name__ == '__main__': main()