Index: appengine/swarming/swarming_bot/bot_code/bot_main.py |
diff --git a/appengine/swarming/swarming_bot/bot_code/bot_main.py b/appengine/swarming/swarming_bot/bot_code/bot_main.py |
index 25157f16dc564af18f63822fa12bd530ae16d31e..3ff55f8989b326846f819e97db7e05613c965806 100644 |
--- a/appengine/swarming/swarming_bot/bot_code/bot_main.py |
+++ b/appengine/swarming/swarming_bot/bot_code/bot_main.py |
@@ -516,7 +516,7 @@ def get_bot(config): |
attributes = get_attributes( |
bot.Bot( |
remote_client.createRemoteClient(config['server'], |
- None, config['is_grpc']), |
+ None, config.get('swarming_grpc_proxy')), |
attributes, |
config['server'], |
config['server_version'], |
@@ -530,7 +530,7 @@ def get_bot(config): |
remote_client.createRemoteClient( |
config['server'], |
lambda: _get_authentication_headers(botobj), |
- config['is_grpc']), |
+ config.get('swarming_grpc_proxy')), |
attributes, |
config['server'], |
config['server_version'], |
@@ -575,7 +575,7 @@ def _run_isolated_flags(botobj): |
min_free = ( |
_min_free_disk({'size_mb': size}, partition) + |
partition['wiggle']) |
- return [ |
+ args = [ |
'--cache', os.path.join(botobj.base_dir, 'isolated_cache'), |
'--min-free-space', str(min_free), |
'--named-cache-root', os.path.join(botobj.base_dir, 'c'), |
@@ -583,6 +583,15 @@ def _run_isolated_flags(botobj): |
'--max-items', str(settings['caches']['isolated']['items']), |
] |
+ # Get the gRPC proxy from the config, but allow an environment variable to |
+ # override. |
+ grpc_proxy = get_config().get('isolate_grpc_proxy') |
+ grpc_proxy = os.environ.get('ISOLATE_GRPC_PROXY', grpc_proxy) |
+ if grpc_proxy is not None: |
+ logging.info('Isolate will use gRPC proxy %s', grpc_proxy) |
+ args.extend(['--grpc-proxy', grpc_proxy]) |
+ return args |
+ |
def _clean_cache(botobj): |
"""Asks run_isolated to clean its cache. |
@@ -704,7 +713,7 @@ def _run_bot_inner(arg_error, quit_bit): |
# up" the network; if there's something seriously wrong, the handshake will |
# fail and we'll handle it there. |
remote = remote_client.createRemoteClient(config['server'], None, |
- config['is_grpc']) |
+ config.get('swarming_grpc_proxy')) |
remote.ping() |
except Exception: |
# url_read() already traps pretty much every exceptions. This except |
@@ -1179,7 +1188,6 @@ def get_config(): |
logging.exception('Invalid config.json!') |
config = { |
'enable_ts_monitoring': False, |
- 'is_grpc': False, |
'server': '', |
'server_version': 'version1', |
} |