Skip to content

Commit c0f429d

Browse files
committed
fixup!
1 parent 6d5697c commit c0f429d

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
@@ -719,20 +719,72 @@ def update_geth(self, parsed):
719719
value = getattr(self.args, opt)
720720
node["cache"] = value
721721

722+
def _get_value(self, key, node, parsed, validator=None, converter=None, default=None):
723+
result = None
724+
725+
node_name = node["name"]
726+
727+
def process(value, hint):
728+
if converter:
729+
try:
730+
value = converter(value)
731+
except Exception as e:
732+
raise ValueError("({}) Invalid value: {}".format(hint, value)) from e
733+
734+
if validator and not validator(value):
735+
raise ValueError(value)
736+
737+
return value
738+
739+
if key in parsed:
740+
value = parsed[key]
741+
value = process(value, "{}.conf > {} > {}".format(self.network, node_name, key))
742+
result = value
743+
744+
opt = "{}.{}".format(node_name, key.replace("-", "_"))
745+
746+
if hasattr(self.args, opt):
747+
value = getattr(self.args, opt)
748+
value = process(value, "--{}".format(opt.replace("_", "-")))
749+
result = value
750+
751+
if not result:
752+
if default:
753+
return default
754+
msg = "configuration \"{}.{}\" missing (please specify command-line option \"--{}\" or add \"{}\" in your {}.conf \"{}\" section)".format(
755+
node_name, key, opt.replace("_", "-"), key, self.network, node_name)
756+
raise ValueError(msg)
757+
758+
return result
759+
722760
def update_lndbtc(self, parsed):
723761
"""Update lndbtc related configurations from parsed TOML lndbtc section
724762
:param parsed: Parsed lndbtc TOML section
725763
"""
726764
node = self.nodes["lndbtc"]
727765
self.update_ports(node, parsed)
728766

767+
node["mode"] = self._get_value("mode", node, parsed, validator=lambda v: v in ["native", "external"], default="native")
768+
if node["mode"] == "external":
769+
node["rpc_host"] = self._get_value("rpc_host", node, parsed)
770+
node["rpc_port"] = self._get_value("rpc_port", node, parsed, converter=lambda v: int(v))
771+
node["certpath"] = self._get_value("certpath", node, parsed)
772+
node["macaroonpath"] = self._get_value("macaroonpath", node, parsed)
773+
729774
def update_lndltc(self, parsed):
730775
"""Update lndltc related configurations from parsed TOML lndltc section
731776
:param parsed: Parsed lndltc TOML section
732777
"""
733778
node = self.nodes["lndltc"]
734779
self.update_ports(node, parsed)
735780

781+
node["mode"] = self._get_value("mode", node, parsed, validator=lambda v: v in ["native", "external"], default="native")
782+
if node["mode"] == "external":
783+
node["rpc_host"] = self._get_value("rpc_host", node, parsed)
784+
node["rpc_port"] = self._get_value("rpc_port", node, parsed, converter=lambda v: int(v))
785+
node["certpath"] = self._get_value("certpath", node, parsed)
786+
node["macaroonpath"] = self._get_value("macaroonpath", node, parsed)
787+
736788
def update_connext(self, parsed):
737789
"""Update Connext related configurations from parsed TOML connext section
738790
:param parsed: Parsed connext TOML section
@@ -1029,6 +1081,7 @@ def dump_attr(attr: str) -> None:
10291081
if isinstance(value, bool):
10301082
value = str(value).lower()
10311083
print("{}=\"{}\"".format(key, value), file=f)
1084+
10321085
dump_attr("branch")
10331086
dump_attr("disable_update")
10341087
dump_attr("external_ip")
@@ -1078,15 +1131,15 @@ def dump_node_attr(node: str, attr: str) -> None:
10781131
if node in ["bitcoind", "litecoind"]:
10791132
dump_node_attr(node, "external_rpc_host")
10801133
dump_node_attr(node, "external_rpc_port")
1081-
#dump_node_attr(node, "external_rpc_user")
1082-
#dump_node_attr(node, "external_rpc_password")
1134+
# dump_node_attr(node, "external_rpc_user")
1135+
# dump_node_attr(node, "external_rpc_password")
10831136
dump_node_attr(node, "external_zmqpubrawblock")
10841137
dump_node_attr(node, "external_zmqpubrawtx")
10851138
elif node == "geth":
10861139
dump_node_attr(node, "external_rpc_host")
10871140
dump_node_attr(node, "external_rpc_port")
1088-
#dump_node_attr(node, "infura_project_id")
1089-
#dump_node_attr(node, "infura_project_secret")
1141+
# dump_node_attr(node, "infura_project_id")
1142+
# dump_node_attr(node, "infura_project_secret")
10901143
dump_node_attr(node, "cache")
10911144
elif node == "arby":
10921145
dump_node_attr(node, "test_centralized_baseasset_balance")
@@ -1098,6 +1151,6 @@ def dump_node_attr(node: str, attr: str) -> None:
10981151
dump_node_attr(node, "live_cex")
10991152
dump_node_attr(node, "test_mode")
11001153
dump_node_attr(node, "cex")
1101-
#dump_node_attr(node, "cex_api_key")
1102-
#dump_node_attr(node, "cex_api_secret")
1154+
# dump_node_attr(node, "cex_api_key")
1155+
# dump_node_attr(node, "cex_api_secret")
11031156
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)