Skip to content

Commit e391aa0

Browse files
committed
fixup!
1 parent 0bb44ac commit e391aa0

File tree

6 files changed

+145
-51
lines changed

6 files changed

+145
-51
lines changed

images/utils/launcher/check_wallets.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -288,18 +288,26 @@ def ensure_layer2_ready(self) -> None:
288288
self._print_lnd_cfheaders(erase_last_line=False)
289289

290290
with ThreadPoolExecutor(max_workers=2, thread_name_prefix="LndReady") as executor:
291-
f1 = executor.submit(self.ensure_lnd_ready, "bitcoin")
292-
f2 = executor.submit(self.ensure_lnd_ready, "litecoin")
291+
native_lndbtc = self.config.nodes["lndbtc"]["mode"] == "native"
292+
native_lndltc = self.config.nodes["lndltc"]["mode"] == "native"
293293

294-
try:
295-
f1.result()
296-
except Exception as e:
297-
raise FatalError("Failed to wait for lndbtc to be ready") from e
294+
if native_lndbtc:
295+
f1 = executor.submit(self.ensure_lnd_ready, "bitcoin")
298296

299-
try:
300-
f2.result()
301-
except Exception as e:
302-
raise FatalError("Failed to wait for lndltc to be ready") from e
297+
if native_lndltc:
298+
f2 = executor.submit(self.ensure_lnd_ready, "litecoin")
299+
300+
if native_lndbtc:
301+
try:
302+
f1.result()
303+
except Exception as e:
304+
raise FatalError("Failed to wait for lndbtc to be ready") from e
305+
306+
if native_lndltc:
307+
try:
308+
f2.result()
309+
except Exception as e:
310+
raise FatalError("Failed to wait for lndltc to be ready") from e
303311

304312
if self.node_manager.newly_installed:
305313
print()

images/utils/launcher/config/config.py

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -714,20 +714,72 @@ def update_geth(self, parsed):
714714
value = getattr(self.args, opt)
715715
node["cache"] = value
716716

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+
717755
def update_lndbtc(self, parsed):
718756
"""Update lndbtc related configurations from parsed TOML lndbtc section
719757
:param parsed: Parsed lndbtc TOML section
720758
"""
721759
node = self.nodes["lndbtc"]
722760
self.update_ports(node, parsed)
723761

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+
724769
def update_lndltc(self, parsed):
725770
"""Update lndltc related configurations from parsed TOML lndltc section
726771
:param parsed: Parsed lndltc TOML section
727772
"""
728773
node = self.nodes["lndltc"]
729774
self.update_ports(node, parsed)
730775

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+
731783
def update_connext(self, parsed):
732784
"""Update Connext related configurations from parsed TOML connext section
733785
:param parsed: Parsed connext TOML section
@@ -1014,6 +1066,7 @@ def dump_attr(attr: str) -> None:
10141066
if isinstance(value, bool):
10151067
value = str(value).lower()
10161068
print("{}=\"{}\"".format(key, value), file=f)
1069+
10171070
dump_attr("branch")
10181071
dump_attr("disable_update")
10191072
dump_attr("external_ip")
@@ -1063,15 +1116,15 @@ def dump_node_attr(node: str, attr: str) -> None:
10631116
if node in ["bitcoind", "litecoind"]:
10641117
dump_node_attr(node, "external_rpc_host")
10651118
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")
10681121
dump_node_attr(node, "external_zmqpubrawblock")
10691122
dump_node_attr(node, "external_zmqpubrawtx")
10701123
elif node == "geth":
10711124
dump_node_attr(node, "external_rpc_host")
10721125
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")
10751128
dump_node_attr(node, "cache")
10761129
elif node == "arby":
10771130
dump_node_attr(node, "test_centralized_baseasset_balance")
@@ -1082,6 +1135,6 @@ def dump_node_attr(node: str, attr: str) -> None:
10821135
dump_node_attr(node, "cex_quote_asset")
10831136
dump_node_attr(node, "live_cex")
10841137
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")
10871140
dump_node_attr(node, "margin")

images/utils/launcher/config/template.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@ def __str__(self):
8787
"mode": "native",
8888
"preserve_config": False,
8989
"use_local_image": False,
90-
"external_rpc_host": None,
91-
"external_rpc_port": None,
92-
"external_certpath": None,
93-
"external_macaroonpath": None,
90+
"rpc_host": None,
91+
"rpc_port": None,
92+
"certpath": None,
93+
"macaroonpath": None,
9494
},
9595
"lndltc": {
9696
"name": "lndltc",
@@ -105,10 +105,10 @@ def __str__(self):
105105
"mode": "native",
106106
"preserve_config": False,
107107
"use_local_image": False,
108-
"external_rpc_host": None,
109-
"external_rpc_port": None,
110-
"external_certpath": None,
111-
"external_macaroonpath": None,
108+
"rpc_host": None,
109+
"rpc_port": None,
110+
"certpath": None,
111+
"macaroonpath": None,
112112
},
113113
"connext": {
114114
"name": "connext",
@@ -290,10 +290,10 @@ def __str__(self):
290290
"mode": "native",
291291
"preserve_config": False,
292292
"use_local_image": False,
293-
"external_rpc_host": None,
294-
"external_rpc_port": None,
295-
"external_certpath": None,
296-
"external_macaroonpath": None,
293+
"rpc_host": None,
294+
"rpc_port": None,
295+
"certpath": None,
296+
"macaroonpath": None,
297297
},
298298
"lndltc": {
299299
"name": "lndltc",
@@ -308,10 +308,10 @@ def __str__(self):
308308
"mode": "native",
309309
"preserve_config": False,
310310
"use_local_image": False,
311-
"external_rpc_host": None,
312-
"external_rpc_port": None,
313-
"external_certpath": None,
314-
"external_macaroonpath": None,
311+
"rpc_host": None,
312+
"rpc_port": None,
313+
"certpath": None,
314+
"macaroonpath": None,
315315
},
316316
"connext": {
317317
"name": "connext",
@@ -516,10 +516,10 @@ def __str__(self):
516516
"mode": "native",
517517
"preserve_config": False,
518518
"use_local_image": False,
519-
"external_rpc_host": None,
520-
"external_rpc_port": None,
521-
"external_certpath": None,
522-
"external_macaroonpath": None,
519+
"rpc_host": None,
520+
"rpc_port": None,
521+
"certpath": None,
522+
"macaroonpath": None,
523523
},
524524
"lndltc": {
525525
"name": "lndltc",
@@ -534,10 +534,10 @@ def __str__(self):
534534
"mode": "native",
535535
"preserve_config": False,
536536
"use_local_image": False,
537-
"external_rpc_host": None,
538-
"external_rpc_port": None,
539-
"external_certpath": None,
540-
"external_macaroonpath": None,
537+
"rpc_host": None,
538+
"rpc_port": None,
539+
"certpath": None,
540+
"macaroonpath": None,
541541
},
542542
"connext": {
543543
"name": "connext",

images/utils/launcher/node/lnd.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def get_current_height(self):
118118

119119
def get_external_status(self) -> str:
120120
# TODO check external status
121-
return "Ready"
121+
return "Ready (connected to external)"
122122

123123
def status(self):
124124
if self.mode == "external":

images/utils/launcher/node/xud.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,19 @@ def _get_environment(self) -> List[str]:
5656
lndbtc = self.config.nodes["lndbtc"]
5757
if lndbtc["mode"] == "external":
5858
env.extend([
59-
"LNDBTC_RPC_HOST={}".format(lndbtc["external_rpc_host"]),
60-
"LNDBTC_RPC_PORT={}".format(lndbtc["external_rpc_port"]),
61-
"LNDBTC_CERTPATH={}".format(lndbtc["external_certpath"]),
62-
"LNDBTC_MACAROONPATH={}".format(lndbtc["external_macaroonpath"]),
59+
"LNDBTC_RPC_HOST={}".format(lndbtc["rpc_host"]),
60+
"LNDBTC_RPC_PORT={}".format(lndbtc["rpc_port"]),
61+
"LNDBTC_CERTPATH={}".format(lndbtc["certpath"]),
62+
"LNDBTC_MACAROONPATH={}".format(lndbtc["macaroonpath"]),
6363
])
6464

6565
lndltc = self.config.nodes["lndltc"]
6666
if lndltc["mode"] == "external":
6767
env.extend([
68-
"LNDLTC_RPC_HOST={}".format(lndbtc["external_rpc_host"]),
69-
"LNDLTC_RPC_PORT={}".format(lndbtc["external_rpc_port"]),
70-
"LNDLTC_CERTPATH={}".format(lndbtc["external_certpath"]),
71-
"LNDLTC_MACAROONPATH={}".format(lndbtc["external_macaroonpath"]),
68+
"LNDLTC_RPC_HOST={}".format(lndbtc["rpc_host"]),
69+
"LNDLTC_RPC_PORT={}".format(lndbtc["rpc_port"]),
70+
"LNDLTC_CERTPATH={}".format(lndbtc["certpath"]),
71+
"LNDLTC_MACAROONPATH={}".format(lndbtc["macaroonpath"]),
7272
])
7373

7474
return env

images/xud/entrypoint.sh

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,41 @@ fi
132132
sed -i "/\[connext/,/^$/s/webhookport.*/webhookport = $HTTP_PORT/" $XUD_CONF
133133
}
134134

135-
echo "[entrypoint] Launch with xud.conf:"
136-
cat $XUD_CONF
135+
function get_value() {
136+
sed -nE "/\[$1/,/^$/s/^.*$2 = (.+)$/\1/p" "$XUD_CONF"
137+
}
138+
139+
function set_value() {
140+
sed -iE "/\[$1/,/^$/s|$2.*|$2 = $3|" "$XUD_CONF"
141+
}
142+
143+
ARR=(
144+
"lnd\.BTC" "host" "\"$LNDBTC_RPC_HOST\""
145+
"lnd\.BTC" "port" "$LNDBTC_RPC_PORT"
146+
"lnd\.BTC" "certpath" "\"$LNDBTC_CERTPATH\""
147+
"lnd\.BTC" "macaroonpath" "\"$LNDBTC_MACAROONPATH\""
148+
149+
"lnd\.LTC" "host" "\"$LNDLTC_RPC_HOST\""
150+
"lnd\.LTC" "port" "$LNDLTC_RPC_PORT"
151+
"lnd\.LTC" "certpath" "\"$LNDLTC_CERTPATH\""
152+
"lnd\.LTC" "macaroonpath" "\"$LNDLTC_MACAROONPATH\""
153+
)
154+
155+
function update_lnds() {
156+
local SECTION KEY VALUE
157+
while [[ $# -gt 0 ]]; do
158+
SECTION=$1
159+
KEY=$2
160+
VALUE=$3
161+
shift 3
162+
if [[ $(get_value "$SECTION" "$KEY") != "$VALUE" ]]; then
163+
set_value "$SECTION" "$KEY" "$VALUE"
164+
echo "[entrypoint] Update $SECTION $KEY to $VALUE"
165+
fi
166+
done
167+
}
168+
169+
update_lnds "${ARR[@]}"
137170

138171
/xud-backup.sh &
139172

0 commit comments

Comments
 (0)