Skip to content

Commit ead7fa4

Browse files
committed
caddy: add extra services from network.yaml
1 parent 45141ce commit ead7fa4

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

src/warnet/deploy.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,8 @@ def deploy_caddy(directory: Path, debug: bool):
280280
services.append(
281281
{"title": "Fork Observer", "path": "/fork-observer/", "host": "fork-observer", "port": 2323}
282282
)
283+
# add any extra services
284+
services += network_file.get("services", {})
283285

284286
click.echo(f"Adding services to dashboard: {json.dumps(services, indent=2)}")
285287

test/data/services/network.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,8 @@ fork_observer:
3535
enabled: true
3636
caddy:
3737
enabled: true
38+
services:
39+
- title: Ringo REST
40+
path: /ringo/
41+
host: ringo.default
42+
port: 18443

test/services_test.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ class ServicesTest(TestBase):
1515
def __init__(self):
1616
super().__init__()
1717
self.network_dir = Path(os.path.dirname(__file__)) / "data" / "services"
18+
self.ingress_ip = None
1819

1920
def run_test(self):
2021
try:
2122
self.setup_network()
23+
self.get_ingress_ip()
2224
self.check_fork_observer()
25+
self.check_extra_services()
2326
finally:
2427
self.cleanup()
2528

@@ -29,25 +32,25 @@ def setup_network(self):
2932
self.wait_for_all_tanks_status(target="running")
3033
self.wait_for_all_edges()
3134

32-
def check_fork_observer(self):
33-
self.log.info("Creating chain split")
34-
self.warnet("bitcoin rpc john createwallet miner")
35-
self.warnet("bitcoin rpc john -generate 1")
36-
35+
def get_ingress_ip(self):
3736
self.log.info("Waiting for ingress controller")
3837
wait_for_ingress_controller()
39-
4038
self.log.info("Waiting for ingress host")
41-
ingress_ip = None
4239
attempts = 100
43-
while not ingress_ip:
44-
ingress_ip = get_ingress_ip_or_host()
40+
while not self.ingress_ip:
41+
self.ingress_ip = get_ingress_ip_or_host()
4542
attempts -= 1
4643
if attempts < 0:
4744
raise Exception("Never got ingress host")
4845
sleep(1)
46+
47+
def check_fork_observer(self):
48+
self.log.info("Creating chain split")
49+
self.warnet("bitcoin rpc john createwallet miner")
50+
self.warnet("bitcoin rpc john -generate 1")
51+
4952
# network id is 0xDEADBE in decimal
50-
fo_data_uri = f"http://{ingress_ip}/fork-observer/api/14593470/data.json"
53+
fo_data_uri = f"http://{self.ingress_ip}/fork-observer/api/14593470/data.json"
5154

5255
def call_fo_api():
5356
# if on minikube remember to run `minikube tunnel` for this test to run
@@ -77,6 +80,12 @@ def call_fo_api():
7780
lambda: len(json.loads(self.warnet("bitcoin rpc george getpeerinfo"))) > 1
7881
)
7982

83+
def check_extra_services(self):
84+
self.log.info("Checking extra web services added to caddy")
85+
uri = f"http://{self.ingress_ip}/ringo/rest/chaininfo.json"
86+
rest_data = requests.get(uri)
87+
rest_json = rest_data.json()
88+
assert rest_json["chain"] == "regtest"
8089

8190
if __name__ == "__main__":
8291
test = ServicesTest()

0 commit comments

Comments
 (0)