mirror of
https://github.com/vacp2p/wakurtosis.git
synced 2026-01-09 14:58:02 -05:00
Refactored more system variables
This commit is contained in:
committed by
Alberto Soutullo Rendo
parent
009bb25956
commit
9fdec86e1d
@@ -17,10 +17,9 @@ def run(plan, args):
|
||||
config_json = read_file(src=config_file)
|
||||
config = json.decode(config_json)
|
||||
|
||||
kurtosis_config = config['kurtosis']
|
||||
wsl_config = config['wsl']
|
||||
interconnection_batch = kurtosis_config['interconnection_batch']
|
||||
nodes_per_container = kurtosis_config['nodes_per_container']
|
||||
kurtosis_config = config[vars.KURTOSIS_KEY]
|
||||
wsl_config = config[vars.WLS_KEY]
|
||||
interconnection_batch = kurtosis_config[vars.INTERCONNECTION_BATCH_KEY]
|
||||
|
||||
# Load network topology
|
||||
network_topology = read_file(src=vars.TOPOLOGIES_LOCATION + vars.DEFAULT_TOPOLOGY_FILE)
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# System Imports
|
||||
vars = import_module("github.com/logos-co/wakurtosis/src/system_variables.star")
|
||||
|
||||
|
||||
def get_configuration_file_name(plan, input_args):
|
||||
# Parse command line argument (config file)
|
||||
config_file = vars.DEFAULT_CONFIG_FILE
|
||||
if hasattr(input_args, "config_file"):
|
||||
if hasattr(input_args, vars.CONFIG_FILE_STARLARK_PARAMETER):
|
||||
config_file = input_args.config_file
|
||||
plan.print("Got config file: %s" %config_file)
|
||||
else:
|
||||
plan.print("Got default config file: %s" %config_file)
|
||||
|
||||
return config_file
|
||||
|
||||
|
||||
@@ -19,17 +19,19 @@ def get_toml_configuration_artifact(plan, config_file, name, testing):
|
||||
return artifact_id
|
||||
|
||||
|
||||
def generate_template_node_targets(services, port_id):
|
||||
def generate_template_node_targets(services, port_id, key_value):
|
||||
template_data = {}
|
||||
targets_data = []
|
||||
for service_name in services["nodes"].keys():
|
||||
service_ip = services["nodes"][service_name]["ip_address"]
|
||||
service_port_number = str(services["nodes"][service_name]["ports"][port_id+"_"+service_name][0])
|
||||
for service_name in services[vars.GENNET_NODES_KEY].keys():
|
||||
service_info = services[vars.GENNET_NODES_KEY][service_name]
|
||||
|
||||
service_ip = service_info[vars.IP_KEY]
|
||||
service_port_number = str(service_info[vars.PORTS_KEY][port_id+"_"+service_name][0])
|
||||
targets_data.append('"' + service_ip + ":" + service_port_number + '"')
|
||||
|
||||
data_as_string = ",".join(targets_data)
|
||||
targets_payload = "[" + data_as_string + "]"
|
||||
template_data["targets"] = targets_payload
|
||||
template_data[key_value] = targets_payload
|
||||
|
||||
return template_data
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ def create_prometheus_targets(plan, network_topology):
|
||||
# get ip and ports of all nodes
|
||||
|
||||
template_data = files.generate_template_node_targets(network_topology,
|
||||
vars.PROMETHEUS_PORT_ID)
|
||||
vars.PROMETHEUS_PORT_ID, "targets")
|
||||
|
||||
template = templates.get_prometheus_template()
|
||||
|
||||
@@ -55,7 +55,7 @@ def create_prometheus_targets(plan, network_topology):
|
||||
data=template_data,
|
||||
)
|
||||
},
|
||||
name="prometheus_targets"
|
||||
name=vars.PROMETHEUS_TEMPLATE_NAME
|
||||
)
|
||||
|
||||
return artifact_id
|
||||
|
||||
@@ -10,14 +10,14 @@ gowaku_builder = import_module(vars.GOWAKU_BUILDER_MODULE)
|
||||
|
||||
|
||||
service_builder_dispatcher = {
|
||||
"go-waku": gowaku_builder.prepare_gowaku_service,
|
||||
"nim-waku": nwaku_builder.prepare_nwaku_service
|
||||
vars.GENNET_GOWAKU_IMAGE_VALUE: gowaku_builder.prepare_gowaku_service,
|
||||
vars.GENNET_NWAKU_IMAGE_VALUE: nwaku_builder.prepare_nwaku_service
|
||||
# nomos: nomos_builder.prepare_nomos_service
|
||||
}
|
||||
|
||||
ports_dispatcher = {
|
||||
"go-waku": waku_builder._add_waku_ports_info_to_topology,
|
||||
"nim-waku": waku_builder._add_waku_ports_info_to_topology
|
||||
vars.GENNET_GOWAKU_IMAGE_VALUE: waku_builder._add_waku_ports_info_to_topology,
|
||||
vars.GENNET_NWAKU_IMAGE_VALUE: waku_builder._add_waku_ports_info_to_topology
|
||||
# nomos: nomos_builder._add_nomos_ports_info_to_topology
|
||||
}
|
||||
|
||||
@@ -77,19 +77,10 @@ def _add_service_info_to_topology(plan, all_services_information, network_topolo
|
||||
node_peer_id = waku.get_wakunode_peer_id(plan, node_info[vars.GENNET_NODE_CONTAINER_KEY],
|
||||
node_rpc_port_id)
|
||||
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.GENNET_PEER_ID_KEY] = node_peer_id
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.PEER_ID_KEY] = node_peer_id
|
||||
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.GENNET_IP_KEY] = \
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.IP_KEY] = \
|
||||
all_services_information[node_info[vars.GENNET_NODE_CONTAINER_KEY]].ip_address
|
||||
|
||||
ports_adder = ports_dispatcher[node_info[vars.GENNET_IMAGE_KEY]]
|
||||
ports_adder(network_topology, all_services_information, node_info, node_id)
|
||||
|
||||
|
||||
def prepare_config_files_in_service(node_names, artifact_ids):
|
||||
prepared_files = {}
|
||||
|
||||
for i in range(len(node_names)):
|
||||
prepared_files[vars.CONTAINER_NODE_CONFIG_FILE_LOCATION + node_names[i]] = artifact_ids[i]
|
||||
|
||||
return prepared_files
|
||||
|
||||
@@ -40,8 +40,7 @@ def _add_waku_ports_info_to_topology(network_topology, all_services_information,
|
||||
|
||||
|
||||
def _add_waku_port(network_topology, all_services_information, node_id, node_info, port_id):
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.TOPOLOGY_PORTS_KEY] = {}
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.TOPOLOGY_PORTS_KEY][port_id] = \
|
||||
network_topology[vars.GENNET_NODES_KEY][node_id][vars.PORTS_KEY][port_id] = \
|
||||
(all_services_information[node_info[vars.GENNET_NODE_CONTAINER_KEY]].ports[
|
||||
port_id].number,
|
||||
all_services_information[node_info[vars.GENNET_NODE_CONTAINER_KEY]].ports[
|
||||
|
||||
@@ -2,11 +2,16 @@
|
||||
NWAKU_IMAGE = "statusteam/nim-waku:019f357d"
|
||||
GOWAKU_IMAGE = "gowaku"
|
||||
|
||||
NODE_IMAGES_FROM_GENNET = ["go-waku", "nim-waku"]
|
||||
RPC_PORT_ID = "rpc"
|
||||
NODE_CONFIG_FILE_LOCATION = "github.com/logos-co/wakurtosis/config/topology_generated/"
|
||||
CONTAINER_NODE_CONFIG_FILE_LOCATION = "/node/configuration_file/"
|
||||
GENERAL_ENTRYPOINT = ["/bin/sh", "-c"]
|
||||
CONFIG_FILE_STARLARK_PARAMETER = "config_file"
|
||||
|
||||
# Config file keys
|
||||
KURTOSIS_KEY = "kurtosis"
|
||||
WLS_KEY = "wls"
|
||||
INTERCONNECTION_BATCH_KEY = "interconnection_batch"
|
||||
|
||||
# Waku Configuration
|
||||
WAKU_RPC_PORT_PROTOCOL = "TCP"
|
||||
@@ -28,6 +33,8 @@ PROMETHEUS_PORT_ID = "prometheus"
|
||||
PROMETHEUS_PORT_PROTOCOL = "TCP"
|
||||
PROMETHEUS_PORT_NUMBER = 8008
|
||||
PROMETHEUS_CONFIGURATION_PATH = "github.com/logos-co/wakurtosis/monitoring/prometheus.yml"
|
||||
PROMETHEUS_TEMPLATE_NAME = "prometheus_targets"
|
||||
|
||||
|
||||
CONTAINER_CONFIGURATION_LOCATION_PROMETHEUS = "/test/"
|
||||
CONTAINER_CONFIGURATION_LOCATION_PROMETHEUS_2 = "/tmp/"
|
||||
@@ -57,9 +64,13 @@ GENNET_ALL_CONTAINERS_KEY = "containers"
|
||||
GENNET_IMAGE_KEY = "image"
|
||||
GENNET_CONFIG_KEY = "node_config"
|
||||
GENNET_NODE_CONTAINER_KEY = "container_id"
|
||||
GENNET_PEER_ID_KEY = "peer_id"
|
||||
GENNET_IP_KEY = "ip_address"
|
||||
TOPOLOGY_PORTS_KEY = "ports"
|
||||
GENNET_STATIC_NODES_KEY = "static_nodes"
|
||||
GENNET_GOWAKU_IMAGE_VALUE = "go-waku"
|
||||
GENNET_NWAKU_IMAGE_VALUE = "nim-waku"
|
||||
|
||||
PEER_ID_KEY = "peer_id"
|
||||
IP_KEY = "ip_address"
|
||||
PORTS_KEY = "ports"
|
||||
|
||||
# WSL Configuration
|
||||
WSL_IMAGE = "wsl:0.0.1"
|
||||
@@ -67,6 +78,8 @@ WSL_SERVICE_NAME = "wsl"
|
||||
WSL_CONFIG_PATH = "/wsl/config"
|
||||
WSL_TARGETS_PATH = "/wsl/targets"
|
||||
WSL_TOMLS_PATH = "/wsl/tomls"
|
||||
WLS_CMD = ["python3", "wsl.py"]
|
||||
|
||||
CONTAINER_WSL_CONFIGURATION_FILE_NAME = "wsl.yml"
|
||||
CONTAINER_TARGETS_FILE_NAME_WSL = "targets.json"
|
||||
|
||||
@@ -79,9 +92,9 @@ GET_PEERS_METHOD = "get_waku_v2_admin_v1_peers"
|
||||
# Import locations
|
||||
WAKU_MODULE = "github.com/logos-co/wakurtosis/src/waku.star"
|
||||
NODE_BUILDERS_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/node_builders.star"
|
||||
WAKU_BUILDER_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/waku_builder.star"
|
||||
NWAKU_BUILDER_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/nwaku_builder.star"
|
||||
GOWAKU_BUILDER_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/gowaku_builder.star"
|
||||
WAKU_BUILDER_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/types/waku_builder.star"
|
||||
NWAKU_BUILDER_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/types/nwaku_builder.star"
|
||||
GOWAKU_BUILDER_MODULE = "github.com/logos-co/wakurtosis/src/node_builders/types/gowaku_builder.star"
|
||||
PROMETHEUS_MODULE = "github.com/logos-co/wakurtosis/src/monitoring/prometheus.star"
|
||||
GRAFANA_MODULE = "github.com/logos-co/wakurtosis/src/monitoring/grafana.star"
|
||||
ARGUMENT_PARSER_MODULE = "github.com/logos-co/wakurtosis/src/arguments_parser.star"
|
||||
|
||||
@@ -59,7 +59,7 @@ def test_create_waku_id(plan):
|
||||
ports={vars.WAKU_LIBP2P_PORT_ID: PortSpec(number=1234)})
|
||||
services_example = {"service_info": service_struct, "peer_id": "ASDFGHJKL"}
|
||||
|
||||
waku_id = waku.create_waku_id(services_example)
|
||||
waku_id = waku.create_node_multiaddress(services_example)
|
||||
|
||||
plan.assert(value=waku_id, assertion="==", target_value='"/ip4/1.1.1.1/tcp/1234/p2p/ASDFGHJKL"')
|
||||
|
||||
|
||||
@@ -35,10 +35,10 @@ def get_wakunode_peer_id(plan, service_name, port_id):
|
||||
|
||||
|
||||
# todo better name for this function
|
||||
def create_waku_id(node_id, node_information):
|
||||
ip = node_information["ip_address"]
|
||||
port = node_information["ports"][vars.WAKU_LIBP2P_PORT_ID + "_" + node_id][0]
|
||||
waku_node_id = node_information["peer_id"]
|
||||
def create_node_multiaddress(node_id, node_information):
|
||||
ip = node_information[vars.IP_KEY]
|
||||
port = node_information[vars.PORTS_KEY][vars.WAKU_LIBP2P_PORT_ID + "_" + node_id][0]
|
||||
waku_node_id = node_information[vars.PEER_ID_KEY]
|
||||
|
||||
return '"/ip4/' + str(ip) + '/tcp/' + str(port) + '/p2p/' + waku_node_id + '"'
|
||||
|
||||
@@ -59,16 +59,6 @@ def connect_wakunode_to_peers(plan, service_name, node_id, port_id, peer_ids):
|
||||
plan.print(response)
|
||||
|
||||
|
||||
def post_waku_v2_relay_v1_message_test(plan, service_name, topic):
|
||||
waku_message = '{"payload": "0x1a2b3c4d5e6f", "timestamp": 1626813243}'
|
||||
params = '"' + topic + '"' + ", " + waku_message
|
||||
|
||||
response = send_json_rpc(plan, service_name, vars.RPC_PORT_ID,
|
||||
vars.POST_RELAY_MESSAGE_METHOD, params)
|
||||
|
||||
plan.assert(value=response["code"], assertion="==", target_value = 200)
|
||||
|
||||
|
||||
def make_service_wait(plan, service_name, time):
|
||||
exec_recipe = struct(
|
||||
service_name=service_name,
|
||||
@@ -90,15 +80,16 @@ def get_waku_peers(plan, waku_service_name):
|
||||
|
||||
def interconnect_waku_nodes(plan, topology_information, interconnection_batch):
|
||||
# Interconnect them
|
||||
for node_id in topology_information["nodes"].keys():
|
||||
peers = topology_information["nodes"][node_id]["static_nodes"]
|
||||
nodes_in_topology = topology_information[vars.GENNET_NODES_KEY]
|
||||
|
||||
for node_id in nodes_in_topology.keys():
|
||||
peers = nodes_in_topology[node_id][vars.GENNET_STATIC_NODES_KEY]
|
||||
|
||||
for i in range(0, len(peers), interconnection_batch):
|
||||
x = i
|
||||
peer_ids = [create_waku_id(peer, topology_information["nodes"][peer])
|
||||
for peer in peers[x:x + interconnection_batch]]
|
||||
peer_ids = [create_node_multiaddress(peer, nodes_in_topology[peer])
|
||||
for peer in peers[i:i + interconnection_batch]]
|
||||
|
||||
connect_wakunode_to_peers(plan, topology_information["nodes"][node_id]["container_id"],
|
||||
connect_wakunode_to_peers(plan, nodes_in_topology[node_id][vars.GENNET_NODE_CONTAINER_KEY],
|
||||
node_id, vars.RPC_PORT_ID, peer_ids)
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ def create_config(plan, wls_config):
|
||||
def create_targets(plan, services):
|
||||
|
||||
# Get private ip and ports of all nodes
|
||||
template_data = files.generate_template_node_targets(services, vars.RPC_PORT_ID)
|
||||
template_data = files.generate_template_node_targets(services, vars.RPC_PORT_ID, "targets")
|
||||
|
||||
# Template
|
||||
template = """
|
||||
@@ -66,7 +66,7 @@ def init(plan, services, wsl_config):
|
||||
vars.WSL_TARGETS_PATH: wsl_targets,
|
||||
vars.WSL_TOMLS_PATH: tomls_artifact
|
||||
},
|
||||
cmd=["python3", "wsl.py"]
|
||||
cmd=vars.WLS_CMD
|
||||
)
|
||||
wsl_service = plan.add_service(
|
||||
service_name=vars.WSL_SERVICE_NAME,
|
||||
|
||||
Reference in New Issue
Block a user