Commit 0c1f5036 authored by Victor Colombo's avatar Victor Colombo Committed by GitHub

Merge pull request #46 from kurtosis-tech/vcolombo/refactor-exec

Refactor exec command
parents 87c0eeaa 421be647
......@@ -12,6 +12,9 @@
### Breaking changes
- Updated `struct` to `PortSpec` for declaring port definitions
### Changes
- Change `exec` syntax
# 0.0.5
### Fixes
......
......@@ -48,7 +48,7 @@ def get_config(config_files_artifact_uuid):
image = IMAGE_NAME,
ports = USED_PORTS,
files = {
config_files_artifact_uuid: FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE,
FORKMON_CONFIG_MOUNT_DIRPATH_ON_SERVICE: config_files_artifact_uuid,
},
cmd = ["--config-path", config_file_path]
)
......
......@@ -57,8 +57,8 @@ def get_config(grafana_config_artifacts_uuid, grafana_dashboards_artifacts_uuid)
ports = USED_PORTS,
env_vars = {CONFIG_DIRPATH_ENV_VAR: GRAFANA_CONFIG_DIRPATH_ON_SERVICE},
files = {
grafana_config_artifacts_uuid : GRAFANA_CONFIG_DIRPATH_ON_SERVICE,
grafana_dashboards_artifacts_uuid: GRAFANA_DASHBOARDS_DIRPATH_ON_SERVICE
GRAFANA_CONFIG_DIRPATH_ON_SERVICE: grafana_config_artifacts_uuid,
GRAFANA_DASHBOARDS_DIRPATH_ON_SERVICE: grafana_dashboards_artifacts_uuid
}
)
......
......@@ -227,7 +227,7 @@ def get_beacon_config(
ports = BEACON_USED_PORTS,
cmd = cmd,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNTPOINT_ON_CLIENTS
GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: genesis_data.files_artifact_uuid
},
env_vars = {
RUST_BACKTRACE_ENVVAR_NAME: RUST_FULL_BACKTRACE_KEYWORD
......@@ -288,8 +288,8 @@ def get_validator_config(
ports = VALIDATOR_USED_PORTS,
cmd = cmd,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNTPOINT_ON_CLIENTS,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS,
GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: genesis_data.files_artifact_uuid,
VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS: node_keystore_files.files_artifact_uuid,
},
env_vars = {
RUST_BACKTRACE_ENVVAR_NAME: RUST_FULL_BACKTRACE_KEYWORD
......
......@@ -203,7 +203,7 @@ def get_beacon_config(
ports = USED_PORTS,
cmd = cmd,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER
GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
)
......@@ -255,8 +255,8 @@ def get_validator_config(
ports = USED_PORTS,
cmd = cmd,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER
GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: node_keystore_files.files_artifact_uuid,
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
)
......
......@@ -211,8 +211,8 @@ def get_config(
cmd = [cmd_str],
entrypoint = ENTRYPOINT_ARGS,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNTPOINT_ON_CLIENT,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT
GENESIS_DATA_MOUNTPOINT_ON_CLIENT: genesis_data.files_artifact_uuid,
VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENT: node_keystore_files.files_artifact_uuid
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
)
......
......@@ -220,7 +220,7 @@ def get_beacon_config(
ports = BEACON_NODE_USED_PORTS,
cmd = cmd,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER,
GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
)
......@@ -278,9 +278,9 @@ def get_validator_config(
ports = VALIDATOR_NODE_USED_PORTS,
cmd = cmd,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER,
prysm_password_artifact_uuid: PRYSM_PASSWORD_MOUNT_DIRPATH_ON_SERVICE_CONTAINER,
GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
VALIDATOR_KEYS_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: node_keystore_files.files_artifact_uuid,
PRYSM_PASSWORD_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: prysm_password_artifact_uuid,
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
)
......
......@@ -213,8 +213,8 @@ def get_config(
cmd = [cmd_str],
entrypoint = ENTRYPOINT_ARGS,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER,
node_keystore_files.files_artifact_uuid: VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER
GENESIS_DATA_MOUNT_DIRPATH_ON_SERVICE_CONTAINER: genesis_data.files_artifact_uuid,
VALIDATOR_KEYS_DIRPATH_ON_SERVICE_CONTAINER: node_keystore_files.files_artifact_uuid,
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
)
......
......@@ -122,7 +122,7 @@ def get_config(network_id, genesis_data, image, existing_el_clients, log_level,
ports = USED_PORTS,
cmd = [launch_node_command_str],
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER
GENESIS_DATA_DIRPATH_ON_CLIENT_CONTAINER: genesis_data.files_artifact_uuid
},
entrypoint = ENTRYPOINT_ARGS,
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
......
......@@ -123,7 +123,7 @@ def get_config(network_id, genesis_data, image, existing_el_clients, verbosity_l
ports = USED_PORTS,
cmd = [command_arg_str],
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH
GENESIS_DATA_MOUNT_DIRPATH: genesis_data.files_artifact_uuid
},
entrypoint = ENTRYPOINT_ARGS,
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
......
......@@ -170,8 +170,8 @@ def get_config(network_id, genesis_data, prefunded_geth_keys_artifact_uuid, pref
ports = USED_PORTS,
cmd = [command_str],
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH,
prefunded_geth_keys_artifact_uuid: PREFUNDED_KEYS_MOUNT_DIRPATH
GENESIS_DATA_MOUNT_DIRPATH: genesis_data.files_artifact_uuid,
PREFUNDED_KEYS_MOUNT_DIRPATH: prefunded_geth_keys_artifact_uuid
},
entrypoint = ENTRYPOINT_ARGS,
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER
......
......@@ -117,7 +117,7 @@ def get_config(genesis_data, image, existing_el_clients, log_level, extra_params
ports = USED_PORTS,
cmd = command_args,
files = {
genesis_data.files_artifact_uuid: GENESIS_DATA_MOUNT_DIRPATH
GENESIS_DATA_MOUNT_DIRPATH: genesis_data.files_artifact_uuid,
},
private_ip_address_placeholder = PRIVATE_IP_ADDRESS_PLACEHOLDER,
)
......
......@@ -60,8 +60,8 @@ def generate_cl_genesis_data(
# TODO(old) Make this the actual data generator - comment copied from the original module
launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{
genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR,
el_genesis_data.files_artifact_uuid: EL_GENESIS_DIRPATH_ON_GENERATOR,
CONFIG_DIRPATH_ON_GENERATOR: genesis_generation_config_artifact_uuid,
EL_GENESIS_DIRPATH_ON_GENERATOR: el_genesis_data.files_artifact_uuid,
},
)
......@@ -81,7 +81,8 @@ def generate_cl_genesis_data(
(" && ").join(all_dirpath_creation_commands),
]
exec(launcher_service_id, dir_creation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
dir_creation_cmd_result = exec(struct(service_id=launcher_service_id, command=dir_creation_cmd))
assert(dir_creation_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
# Copy files to output
......@@ -97,7 +98,8 @@ def generate_cl_genesis_data(
filepath_on_generator,
OUTPUT_DIRPATH_ON_GENERATOR,
]
exec(launcher_service_id, cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cmd_result = exec(struct(service_id=launcher_service_id, command=cmd))
assert(cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
# Generate files that need dynamic content
content_to_write_to_output_filename = {
......@@ -114,7 +116,8 @@ def generate_cl_genesis_data(
destFilepath,
)
]
exec(launcher_service_id, cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cmd_result = exec(struct(service_id=launcher_service_id, command=cmd))
assert(cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cl_genesis_generation_cmd = [
......@@ -127,7 +130,8 @@ def generate_cl_genesis_data(
"--state-output", shared_utils.path_join(OUTPUT_DIRPATH_ON_GENERATOR, GENESIS_STATE_FILENAME)
]
exec(launcher_service_id, cl_genesis_generation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_generation_result = exec(struct(service_id=launcher_service_id, command=cl_genesis_generation_cmd))
assert(genesis_generation_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cl_genesis_data_artifact_uuid = store_service_files(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR)
......
......@@ -64,7 +64,8 @@ def generate_cl_validator_keystores(
command_str = " && ".join(all_sub_command_strs)
exec(service_id, ["sh", "-c", command_str], SUCCESSFUL_EXEC_CMD_EXIT_CODE)
command_result = exec(struct(service_id=service_id, command=["sh", "-c", command_str]))
assert(command_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
# Store outputs into files artifacts
keystore_files = []
......@@ -94,7 +95,8 @@ def generate_cl_validator_keystores(
PRYSM_PASSWORD_FILEPATH_ON_GENERATOR,
),
]
exec(service_id, write_prysm_password_file_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
write_prysm_password_file_cmd_result = exec(struct(service_id=service_id, command=write_prysm_password_file_cmd))
assert(write_prysm_password_file_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
prysm_password_artifact_uuid = store_service_files(service_id, PRYSM_PASSWORD_FILEPATH_ON_GENERATOR)
......
......@@ -53,7 +53,7 @@ def generate_el_genesis_data(
# TODO(old) Make this the actual data generator - comment copied from the original module
launcher_service_id = prelaunch_data_generator_launcher.launch_prelaunch_data_generator(
{
genesis_generation_config_artifact_uuid: CONFIG_DIRPATH_ON_GENERATOR,
CONFIG_DIRPATH_ON_GENERATOR: genesis_generation_config_artifact_uuid,
},
)
......@@ -78,7 +78,8 @@ def generate_el_genesis_data(
]
exec(launcher_service_id, dir_creation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
dir_creation_cmd_result = exec(struct(service_id=launcher_service_id, command=dir_creation_cmd))
assert(dir_creation_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_config_filepath_on_generator = shared_utils.path_join(CONFIG_DIRPATH_ON_GENERATOR, GENESIS_CONFIG_FILENAME)
genesis_filename_to_relative_filepath_in_artifact = {}
......@@ -93,7 +94,9 @@ def generate_el_genesis_data(
" ".join(cmd)
]
exec(launcher_service_id, cmd_to_execute, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
cmd_to_execute_result = exec(struct(service_id=launcher_service_id, command=cmd_to_execute))
assert(cmd_to_execute_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
genesis_filename_to_relative_filepath_in_artifact[output_filename] = shared_utils.path_join(
shared_utils.path_base(OUTPUT_DIRPATH_ON_GENERATOR),
......@@ -110,7 +113,8 @@ def generate_el_genesis_data(
)
]
exec(launcher_service_id, jwt_secret_generation_cmd, SUCCESSFUL_EXEC_CMD_EXIT_CODE)
jwt_secret_generation_cmd_result = exec(struct(service_id=launcher_service_id, command=jwt_secret_generation_cmd))
assert(jwt_secret_generation_cmd_result["code"], "==", SUCCESSFUL_EXEC_CMD_EXIT_CODE)
elGenesisDataArtifactUuid = store_service_files(launcher_service_id, OUTPUT_DIRPATH_ON_GENERATOR)
......
......@@ -42,7 +42,7 @@ def get_config(config_files_artifact_uuid):
image = IMAGE_NAME,
ports = USED_PORTS,
files = {
config_files_artifact_uuid : CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS
CONFIG_DIR_MOUNTPOINT_ON_PROMETHEUS: config_files_artifact_uuid
},
cmd = [
# You can check all the cli flags starting the container and going to the flags section
......
......@@ -19,7 +19,8 @@ def run_synchronous_testnet_verification(params, el_client_contexts, cl_client_c
add_service(SERVICE_ID, config)
command = get_cmd(params, el_client_contexts, cl_client_contexts, True)
exec(SERVICE_ID, command)
exec_result = exec(struct(service_id=SERVICE_ID, command=command))
assert(exec_result["code"], "==", 0)
def get_cmd(params, el_client_contexts, cl_client_contexts, add_binary_name):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment