blob: dd80c2948d073251603ea7113fec08b016494c91 [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""The main client_controller code.
This code is the main entry point for the client machines and handles
registering with the host server and running the local RPC server.
"""
import argparse
import logging
import socket
import sys
import time
#pylint: disable=relative-import
import client_rpc_server
import common_lib
def main():
print ' '.join(sys.argv)
common_lib.InitLogging()
logging.info('Client controller starting')
parser = argparse.ArgumentParser()
parser.add_argument('--otp',
help='One time token used to authenticate with the host')
parser.add_argument('--host',
help='The ip address of the host')
parser.add_argument('--idle-timeout', type=int,
default=common_lib.DEFAULT_TIMEOUT_SECS,
help='The idle timeout for the rpc server in seconds')
args, _ = parser.parse_known_args()
logging.info(
'Registering with discovery server at %s using OTP %s', args.host,
args.otp)
server = common_lib.ConnectToServer(args.host).RegisterClient(
args.otp, common_lib.MY_IP)
server = client_rpc_server.RPCServer(args.host, args.idle_timeout)
server.serve_forever()
return 0
if __name__ == '__main__':
sys.exit(main())