@@ -6110,6 +6110,13 @@ class ControlScript(object):
6110
6110
Output .log ("thread-uml: master list updated, old list: {} " .format (
6111
6111
current_master_list ) + "new list: {}" .format (full_master_list ))
6112
6112
6113
+ tserver_ip_addr = self .advertise_ip ()
6114
+ tserver_ip_port = self .configs .saved_data .get ("tserver_rpc_port" )
6115
+ if not YBTableServerCLIProxy .update_gflag_in_tserver (tserver_ip_addr ,
6116
+ tserver_ip_port , "tserver_master_addrs" , masters_csv , True ):
6117
+ Output .log ("Failed to update the master list {} " +
6118
+ "on the tserver node." .format (masters_csv ))
6119
+
6113
6120
# Persist the config if masters have changed
6114
6121
self .configs .save_configs ()
6115
6122
@@ -8357,13 +8364,19 @@ class ControlScript(object):
8357
8364
# Initialize the binary path of ybadmin
8358
8365
YBAdminProxy .init ()
8359
8366
8367
+ # Initialize the binary path of yb-ts-cli
8368
+ YBTableServerCLIProxy .init ()
8369
+
8360
8370
self .validate_and_set_configs (args )
8361
8371
8362
8372
# Initialize the binary path of ybadmin
8363
8373
# TODO(Sanket): Clean up and refactor this file
8364
8374
YBAdminProxy .set_certs_dir (self .configs .saved_data .get ("master_flags" ), \
8365
8375
self .configs .saved_data .get ("secure" ), self .configs .saved_data .get ("certs_dir" ))
8366
8376
8377
+ YBTableServerCLIProxy .set_certs_dir (self .configs .saved_data .get ("master_flags" ), \
8378
+ self .configs .saved_data .get ("secure" ), self .configs .saved_data .get ("certs_dir" ))
8379
+
8367
8380
try :
8368
8381
args .func ()
8369
8382
except Exception as e :
@@ -8930,6 +8943,51 @@ class Diagnostics(object):
8930
8943
size += os .path .getsize (filepath )
8931
8944
return size
8932
8945
8946
+ class YBTableServerCLIProxy (object ):
8947
+ cmd_args = []
8948
+
8949
+ @staticmethod
8950
+ def init ():
8951
+ YBTableServerCLIProxy .cmd_args .append (find_binary_location ("yb-ts-cli" ))
8952
+
8953
+ @staticmethod
8954
+ def set_certs_dir (master_flags , secure , certs_dir ):
8955
+ # If the user is attempting to use TLS, let's point yb-admin to
8956
+ # the same certs dir as the master
8957
+ if secure :
8958
+ YBTableServerCLIProxy .cmd_args .append ("--certs_dir_name={}" .format (certs_dir ))
8959
+ elif master_flags :
8960
+ flags_list = master_flags .split ("," )
8961
+ if 'use_node_to_node_encryption=true' not in flags_list :
8962
+ return
8963
+ certs_dir_name = [y for y in
8964
+ [re .match ('certs_dir=(.*)' , x ) for x in flags_list ]
8965
+ if y is not None ]
8966
+ if not certs_dir_name [0 ]:
8967
+ raise RuntimeError ("use_node_to_node_encryption=true must "
8968
+ "be accompanied by a certs_dir setting" )
8969
+ YBTableServerCLIProxy .cmd_args .append ('--certs_dir_name={}' .
8970
+ format (certs_dir_name [0 ].group (1 )))
8971
+
8972
+ @staticmethod
8973
+ def update_gflag_in_tserver (tserver_ip , tserver_port , gflag , gflag_value , byForce = False ):
8974
+ cmd = YBTableServerCLIProxy .cmd_args + \
8975
+ [
8976
+ "--server_address={}:{}" .format (tserver_ip , tserver_port ),
8977
+ "set_flag" ,
8978
+ gflag ,
8979
+ gflag_value
8980
+ ]
8981
+
8982
+ if byForce :
8983
+ cmd = cmd + \
8984
+ [
8985
+ "--force"
8986
+ ]
8987
+
8988
+ out , err , ret_code = run_process (cmd , timeout = 10 , log_cmd = True )
8989
+ return (0 == ret_code )
8990
+
8933
8991
class YBControllerCLIProxy (object ):
8934
8992
cmd_args = []
8935
8993
0 commit comments