@@ -714,20 +714,72 @@ def update_geth(self, parsed):
714
714
value = getattr (self .args , opt )
715
715
node ["cache" ] = value
716
716
717
+ def _get_value (self , key , node , parsed , validator = None , converter = None , default = None ):
718
+ result = None
719
+
720
+ node_name = node ["name" ]
721
+
722
+ def process (value , hint ):
723
+ if converter :
724
+ try :
725
+ value = converter (value )
726
+ except Exception as e :
727
+ raise ValueError ("({}) Invalid value: {}" .format (hint , value )) from e
728
+
729
+ if validator and not validator (value ):
730
+ raise ValueError (value )
731
+
732
+ return value
733
+
734
+ if key in parsed :
735
+ value = parsed [key ]
736
+ value = process (value , "{}.conf > {} > {}" .format (self .network , node_name , key ))
737
+ result = value
738
+
739
+ opt = "{}.{}" .format (node_name , key .replace ("-" , "_" ))
740
+
741
+ if hasattr (self .args , opt ):
742
+ value = getattr (self .args , opt )
743
+ value = process (value , "--{}" .format (opt .replace ("_" , "-" )))
744
+ result = value
745
+
746
+ if not result :
747
+ if default :
748
+ return default
749
+ msg = "configuration \" {}.{}\" missing (please specify command-line option \" --{}\" or add \" {}\" in your {}.conf \" {}\" section)" .format (
750
+ node_name , key , opt .replace ("_" , "-" ), key , self .network , node_name )
751
+ raise ValueError (msg )
752
+
753
+ return result
754
+
717
755
def update_lndbtc (self , parsed ):
718
756
"""Update lndbtc related configurations from parsed TOML lndbtc section
719
757
:param parsed: Parsed lndbtc TOML section
720
758
"""
721
759
node = self .nodes ["lndbtc" ]
722
760
self .update_ports (node , parsed )
723
761
762
+ node ["mode" ] = self ._get_value ("mode" , node , parsed , validator = lambda v : v in ["native" , "external" ], default = "native" )
763
+ if node ["mode" ] == "external" :
764
+ node ["rpc_host" ] = self ._get_value ("rpc_host" , node , parsed )
765
+ node ["rpc_port" ] = self ._get_value ("rpc_port" , node , parsed , converter = lambda v : int (v ))
766
+ node ["certpath" ] = self ._get_value ("certpath" , node , parsed )
767
+ node ["macaroonpath" ] = self ._get_value ("macaroonpath" , node , parsed )
768
+
724
769
def update_lndltc (self , parsed ):
725
770
"""Update lndltc related configurations from parsed TOML lndltc section
726
771
:param parsed: Parsed lndltc TOML section
727
772
"""
728
773
node = self .nodes ["lndltc" ]
729
774
self .update_ports (node , parsed )
730
775
776
+ node ["mode" ] = self ._get_value ("mode" , node , parsed , validator = lambda v : v in ["native" , "external" ], default = "native" )
777
+ if node ["mode" ] == "external" :
778
+ node ["rpc_host" ] = self ._get_value ("rpc_host" , node , parsed )
779
+ node ["rpc_port" ] = self ._get_value ("rpc_port" , node , parsed , converter = lambda v : int (v ))
780
+ node ["certpath" ] = self ._get_value ("certpath" , node , parsed )
781
+ node ["macaroonpath" ] = self ._get_value ("macaroonpath" , node , parsed )
782
+
731
783
def update_connext (self , parsed ):
732
784
"""Update Connext related configurations from parsed TOML connext section
733
785
:param parsed: Parsed connext TOML section
@@ -1014,6 +1066,7 @@ def dump_attr(attr: str) -> None:
1014
1066
if isinstance (value , bool ):
1015
1067
value = str (value ).lower ()
1016
1068
print ("{}=\" {}\" " .format (key , value ), file = f )
1069
+
1017
1070
dump_attr ("branch" )
1018
1071
dump_attr ("disable_update" )
1019
1072
dump_attr ("external_ip" )
@@ -1063,15 +1116,15 @@ def dump_node_attr(node: str, attr: str) -> None:
1063
1116
if node in ["bitcoind" , "litecoind" ]:
1064
1117
dump_node_attr (node , "external_rpc_host" )
1065
1118
dump_node_attr (node , "external_rpc_port" )
1066
- #dump_node_attr(node, "external_rpc_user")
1067
- #dump_node_attr(node, "external_rpc_password")
1119
+ # dump_node_attr(node, "external_rpc_user")
1120
+ # dump_node_attr(node, "external_rpc_password")
1068
1121
dump_node_attr (node , "external_zmqpubrawblock" )
1069
1122
dump_node_attr (node , "external_zmqpubrawtx" )
1070
1123
elif node == "geth" :
1071
1124
dump_node_attr (node , "external_rpc_host" )
1072
1125
dump_node_attr (node , "external_rpc_port" )
1073
- #dump_node_attr(node, "infura_project_id")
1074
- #dump_node_attr(node, "infura_project_secret")
1126
+ # dump_node_attr(node, "infura_project_id")
1127
+ # dump_node_attr(node, "infura_project_secret")
1075
1128
dump_node_attr (node , "cache" )
1076
1129
elif node == "arby" :
1077
1130
dump_node_attr (node , "test_centralized_baseasset_balance" )
@@ -1082,6 +1135,6 @@ def dump_node_attr(node: str, attr: str) -> None:
1082
1135
dump_node_attr (node , "cex_quote_asset" )
1083
1136
dump_node_attr (node , "live_cex" )
1084
1137
dump_node_attr (node , "cex" )
1085
- #dump_node_attr(node, "cex_api_key")
1086
- #dump_node_attr(node, "cex_api_secret")
1138
+ # dump_node_attr(node, "cex_api_key")
1139
+ # dump_node_attr(node, "cex_api_secret")
1087
1140
dump_node_attr (node , "margin" )
0 commit comments