2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """The main client_controller code.
8 This code is the main entry point for the client machines and handles
9 registering with the host server and running the local RPC server.
18 #pylint: disable=relative-import
19 import client_rpc_server
24 print ' '.join(sys
.argv
)
25 common_lib
.InitLogging()
26 logging
.info('Client controller starting')
28 parser
= argparse
.ArgumentParser()
29 parser
.add_argument('--otp',
30 help='One time token used to authenticate with the host')
31 parser
.add_argument('--host',
32 help='The ip address of the host')
33 parser
.add_argument('--idle-timeout', type=int,
34 default
=common_lib
.DEFAULT_TIMEOUT_SECS
,
35 help='The idle timeout for the rpc server in seconds')
36 args
, _
= parser
.parse_known_args()
39 'Registering with discovery server at %s using OTP %s', args
.host
,
41 server
= common_lib
.ConnectToServer(args
.host
).RegisterClient(
42 args
.otp
, common_lib
.MY_IP
)
44 server
= client_rpc_server
.RPCServer(args
.host
, args
.idle_timeout
)
46 server
.serve_forever()
50 if __name__
== '__main__':