Skip to content

Commit 3e43db5

Browse files
committed
added apply_kubernetes_yaml_obj
1 parent 8563954 commit 3e43db5

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed

src/warnet/cli/k8s.py

+14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import json
2+
import yaml
3+
import tempfile
24
from importlib.resources import files
5+
from pathlib import Path
36
from typing import Any, Dict
47

58
from kubernetes import client, config
@@ -89,6 +92,17 @@ def apply_kubernetes_yaml(yaml_file: str):
8992
return stream_command(command)
9093

9194

95+
def apply_kubernetes_yaml_obj(yaml_obj: str):
96+
with tempfile.NamedTemporaryFile(mode="w", suffix=".yaml", delete=False) as temp_file:
97+
yaml.dump(yaml_obj, temp_file)
98+
temp_file_path = temp_file.name
99+
100+
try:
101+
apply_kubernetes_yaml(temp_file_path)
102+
finally:
103+
Path(temp_file_path).unlink()
104+
105+
92106
def delete_namespace(namespace: str):
93107
command = f"kubectl delete namespace {namespace} --ignore-not-found"
94108
return stream_command(command)

src/warnet/cli/network.py

+26-4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
from .bitcoin import _rpc
1212
from .k8s import (
13+
apply_kubernetes_yaml_obj,
1314
create_kubernetes_object,
1415
delete_namespace,
1516
get_edges,
@@ -32,10 +33,29 @@ def network():
3233
"""Network commands"""
3334

3435

35-
def create_edges_map(graph):
36+
class Edge:
37+
def __init__(self, src: str, dst: str, data: Dict[str, Any]):
38+
self.src = src
39+
self.dst = dst
40+
self.data = data
41+
42+
def to_dict(self):
43+
return {"src": self.src, "dst": self.dst, "data": self.data}
44+
45+
46+
def edges_from_network_file(network_file: Dict[str, Any]) -> List[Edge]:
47+
edges = []
48+
for node in network_file["nodes"]:
49+
if "connect" in node:
50+
for connection in node["connect"]:
51+
edges.append(Edge(node["name"], connection, ""))
52+
return edges
53+
54+
55+
def create_edges_map(network_file: Dict[str, Any]):
3656
edges = []
37-
for src, dst, data in graph.edges(data=True):
38-
edges.append({"src": src, "dst": dst, "data": data})
57+
for edge in edges_from_network_file(network_file):
58+
edges.append(edge.to_dict())
3959
config_map = create_kubernetes_object(
4060
kind="ConfigMap",
4161
metadata={
@@ -44,7 +64,7 @@ def create_edges_map(graph):
4464
},
4565
)
4666
config_map["data"] = {"data": json.dumps(edges)}
47-
return config_map
67+
apply_kubernetes_yaml_obj(config_map)
4868

4969

5070
def setup_logging_helm() -> bool:
@@ -107,6 +127,8 @@ def start(network_name: str, logging: bool, network: str):
107127
if temp_override_file_path:
108128
Path(temp_override_file_path).unlink()
109129

130+
create_edges_map(network_file)
131+
110132

111133
@network.command()
112134
def down():

0 commit comments

Comments
 (0)